客户端 Native AI使用探索
Context Engineering

本文记录 VAS 团队围绕 Native 开发 AI 辅助实践的完整演进路径:从 Rule 到 Code Graph,再到 Agent Skill + Rules 的协同方案,探索 AI 在复杂原生工程中的落地之道。


一、背景

1.1 行业 AI 趋势

AI 进入研发流程,带来的不只是一个新工具,更是一种新的协作方式。在 AI 时代下,学习使用 AI 不仅是应用新技术,更是一场需要主动拥抱的认知升级。

1.2 团队需求:从 Lua 走向 Native

VAS 业务目前已完成 AI 在 Lua 场景的使用探索,并应用在日常版本开发中(主要用于代码 Review 和 Lua 模块辅助开发)。

然而在实际研发结构里,原生需求与开发量占比约在 70% 左右,是团队研发的绝对主体。相比 Lua 脚本开发,原生开发涉及平台差异、架构历史、模块耦合、真机适配、联调链路等一系列更复杂的问题。因此,探索 AI 在原生场景的使用,是当前阶段最迫切的提效方向。


二、现状

2.1 Native 开发的 AI 使用困境

原生由于平台多样性、系统版本分散、设备繁多、代码复杂度高等问题,导致 AI 使用难度远高于 Lua 场景。具体困难来自三个维度:

技术栈层面

模型层面

业务层面


三、目标

探索适用团队的 AI 使用方式,重点解决以下关键问题:

  1. 原生开发里,AI 适合在哪些场景使用?
  2. 如何把项目上下文高效、准确地传递给 AI?
  3. 如何在提升效率的同时,把风险控制在可接受范围内?
  4. 如何规范团队使用方式,保证多人多次使用的一致性,完成团队技术沉淀?

四、方案演进

4.1 阶段一:Rule(通用规范约束)【2025.Q4】

Rule 是 AI 的持久约束,用于规范代码风格和编码习惯。

作用: 解决「怎么写代码」——安全、可维护性、异常处理等通用规范。

使用:

局限: 无法解决「代码在哪、逻辑是什么」的上下文问题;有长度限制,需 alwaysApply 设置。

《codereview.mdc》 · 《聊天室Android 代码审查方案》 · 《聊天室iOS 代码审查方案》


4.2 阶段二:Code Graph(代码图谱)【2025.12–2026.01】

为了解决 Rules 无法解决的上下文问题,尝试把项目分模块构建 Code Graph,在需求迭代时,AI Agent 可参考相关模块的 Code Graph 快速理解架构。

使用:

sequenceDiagram
    participant User as 用户
    participant Agent as AI Agent
    participant Graph as Code Graph 文档
    participant Code as 代码库
    
    User->>Agent: 提出需求:"修改PK数值加成"
    Agent->>Graph: 识别相关模块 (@booster)
    Agent->>Graph: 读取模块文档
    Graph-->>Agent: 返回架构文档内容
    Agent->>Agent: 解析架构、组件、API
    Agent->>Code: 搜索相关代码文件
    Code-->>Agent: 返回代码内容
    Agent->>Agent: 结合 Code Graph 生成实现
    Agent->>User: 提交代码变更

优缺点:

类型要点说明
优点知识结构化将分散在多个文件中的代码逻辑集中整理;通过架构图、时序图直观展示模块设计;新人可快速了解模块结构。
AI 上下文增强通过架构图快速理解(无需逐文件阅读);时序图直接展示调用关系;可参考接入示例;Token 效率高、精准定位关键代码。
模块化复用一次编写 Code Graph,多个场景复用;接入新场景时参考已有接入示例;减少重复的架构分析工作。
团队知识沉淀核心开发者的设计思路固化到文档;项目迭代过程中持续更新 Code Graph;减少对特定人员的依赖。
降低 AI 错误率AI 有上下文不易误改无关代码;明确的架构约束减少不符合规范的实现;参考示例降低 API 调用错误。
缺点Token 消耗过大单模块约 5000–10000 tokens,多模块叠加易耗尽;挤占对话上下文,无法加载足够实际代码;关键信息可能被截断。
缺乏智能分析无法实时分析代码与 Code Graph 的偏离、自动发现违反规范的代码、根据历史推荐最佳实践;文档需人工维护,易过时。
上下文丢失风险对话初期 Code Graph 占大量上下文;多轮对话后早期内容被推出窗口;AI 可能在不完整架构约束下生成错误代码。
信息冗余与缺失并存冗余:通用说明、Mermaid 图表语法占 token;缺失:实现细节、边界条件、历史变更原因、已知坑;代码更新后文档易不同步。
维护成本高每次代码变更需同步更新文档;Mermaid 图表不易编辑;成员易遗忘更新;缺乏文档与代码一致性的自动检测工具。
缺乏层级化加载机制无法按需求复杂度动态决定加载深度;不支持「概览 → 细节」的渐进式加载;缺少智能路由(优先加载哪些部分)。

《Code Graph 方案》


4.3 阶段三:Agent Skill(模块业务知识包)+ Rule【2026.02 开始】

为了解决 CodeGraph 方式遇到的问题,尝试在 Rule 的基础上,为每个核心模块构建 Agent Skill,该 Skill 可以理解为本地 CodeGraph。

Skill 的核心价值在于:把模块的 Code Graph 拆分为对应的 Skill + References,执行时按需分层加载,保证正确理解上下文、调用链路、历史信息等

Skill 渐进式加载机制:

  1. 优先加载name + description(约 100 词,用于语义匹配)
  2. 触发时加载SKILL.md 主体(建议 < 200 行)
  3. 需要时加载references/ 下的详细文档

使用 Skill 之后:

SKILLs + Rules 协同工作时序图:

sequenceDiagram
    participant U as 用户
    participant C as Cursor
    participant R as Rules
    participant S as 场景 SKILL

    U->>C: 发起请求(CCD描述文档+Prompt)
    C->>R: 加载 全局rules(始终生效)
    R-->>C: 规范要点 + 检查清单 + 完整规范引用
    C->>C: 按描述/关键词/@ 匹配场景
    C->>S: 加载对应 SKILL(如 on-mic-list、运营位、booster 等)
    S-->>C: 模块架构、数据流、关键类、何时用
    C->>C: 综合 Rules 约束 + SKILL 上下文
    C->>U: 生成/修改代码(符合规范且贴合模块设计)

《Agent Skills》


五、聊天室新旧需求上的 AI 使用

按照日常版本开发,场景分为两大类:新需求开发旧需求迭代

维度新需求开发旧需求迭代
定义全新功能,从 0 到 1在现有功能上优化/修复/增强,从 1 到 N
开发复杂度⭐⭐⭐⭐ 高⭐⭐⭐ 中等
影响范围相对独立,可控可能牵一发动全身
AI 使用重点需求整理、方案分析、结构化编码代码定位、业务梳理、复杂排查
上线风险可灰度验证,失败可降级难以快速回滚

5.1 新需求场景(以 PK 暴击时刻功能为例)

新需求场景下,AI 的使用路径如下:

  1. 需求整理:AI 辅助梳理业务背景,输出层级分明、分类规划的需求文档
  2. AI 技术分析:输出系统架构(含 Mermaid 流程图)、模块划分、业务逻辑详解
  3. 需求重塑:结合设计稿,将需求转化为 AI 可直接执行的结构化编码指令(类型枚举、宽高、布局库指定等)
  4. AI Coding:基于重塑后的需求,生成符合项目规范的代码【遵循全局 Rules】
  5. 人工确认 + 联调验证:工程师验收业务逻辑、边界场景与真机表现

5.2 旧需求迭代场景

旧需求迭代下,AI 的使用路径如下:

  1. 需求整理:AI 辅助梳理业务背景,输出层级分明、分类规划的需求文档
  2. AI 技术分析:输出系统架构(含 Mermaid 流程图)、模块划分、业务逻辑详解
  3. 需求重塑:结合设计稿,将需求转化为 AI 可直接执行的结构化编码指令(类型枚举、宽高、布局库指定等)
  4. 使用 Agent Skill:加载对应模块 Skill,让 AI 具备业务上下文
  5. 生成代码:AI 基于 Skill 精准定位改动位置,生成符合现有架构的修改代码【遵循全局 Rules】
  6. 人工确认 + 联调验证:确认改动范围、回归影响面,真机验证

不同场景下 AI 的前置成本编码增效对比(以单次需求为基准估算):

场景类型是否有 SKILL前置成本编码阶段增效验证阶段成本整体增效
新需求10%【整理CCD】约 50–70%0约 40–60%
旧需求迭代10%【整理CCD】约 50–70%0约 40–60%
旧需求迭代无(首次)10%【整理CCD】+ 20%【整理SKILL】约 50–70%10%【验证SKILL】约 10–30%

《Native 使用AI探索》


六、Skill + Rules 方案规范

6.1 Skill + Rules 在项目中的使用流程

AI使用时序图
AI 使用时序图

6.1.1 构建 Code Config Document(CCD)

技术根据 PRD 文档 + 设计稿,在需求宣讲过后,结合自己对需求的理解,整理需求,编写 Code Config Document(CCD 文档)。

CCD 示例
CCD 示例 — 需求整理格式
CCD 示例2
CCD 示例 — 结构化指令

要求:人工或者借助 AI 整理 PRD 文档。

6.1.2 补充 Prompt

在 CCD 的基础上,按需补充指令:

用 OC/Swift 实现、使用 Masonry 布局、自定义初始化方法传入枚举、新建数据模型...

6.1.3 使用 Rule + Skill 生成代码

Rule 始终生效保证代码规范;触发对应模块的 Skill 后,AI 基于业务知识直接定位代码位置、生成符合架构规范的实现代码,无需每次重新建立上下文。

6.1.4 验证

真机联调验证 + 回归测试,确认生成代码在复杂场景下的稳定性。

分工不是"AI 负责开发,人负责验收",而是让 AI 在最适合的位置提效,人工始终保留业务判断和质量控制权。


6.2 Skill 知识沉淀成果

SKILL 按场景/模块划分,目标是:独立、完整、稳定,并降低 SKILL 的长期维护成本

维度说明目的
独立性该能力对应一块相对独立的基础功能,边界清晰,与其它模块耦合少。一个 SKILL 只描述一个「领域」,AI 只加载相关上下文,减少干扰。
完整性该能力是「完整的基础功能」,从数据来源、状态/流程到 UI/交互可闭环描述。SKILL 内能说清「怎么用、在哪用、和谁配合」,便于 AI 给出可落地的实现。
低频修改对应代码与设计相对稳定,不会频繁大改。降低 SKILL 文档与 references 的更新频率,减少维护成本。

围绕聊天室核心模块,已逐步完成一批 Skill 沉淀:

基础模块Android SKILLiOS SKILL
RTC聊天室 媒体 Skill媒体SKILL
IM聊天室 IM SkillIM模块SKILL
公屏聊天室公屏标签快速添加Skill公屏SKILL
在麦列表聊天室 在线列表 Skill麦位列表SKILL
运营位聊天室 运营位 Skill运营位SKILL
房间 tabbar聊天室底栏和更多菜单Skill底部InputBar SKILL · 顶部栏SKILL
个人资料 / 房间资料页聊天室 个人资料卡 Skill · 房间资料页 Skill资料卡 SKILL · 房间资料页 SKILL
更多菜单聊天室底栏和更多菜单Skill更多菜单SKILL
创建新玩法模板聊天室原生AI - 模板创建 Skill
代码 review聊天室Android 代码Review Skill

6.3 总结

探索出一套团队在 Native 使用 AI 的方式,完成了既定目标:

  1. 原生开发里,AI 适合在哪些场景使用?【新需求开发、旧需求迭代都可以】
  2. 如何把项目上下文高效、准确地传递给 AI?【按模块构建 SKILL】
  3. 如何在提升效率的同时,把风险控制在可接受范围内?【SKILL + RULES + 人工在各个环节协同】
  4. 如何规范团队使用方式,保证多人多次使用的一致性,完成团队技术沉淀?【沉淀项目 RULES、SKILLS】

核心结论: Rule 兜底通用规范,Skill 补模块上下文,人工始终保留业务判断与最终验收权。这套组合拳,是当前阶段原生 AI 协作最可落地的方式。


七、问题与挑战

#问题说明方案
1Skill 的维护成本业务迭代后,Skill 内容可能过时,需要持续同步更新,否则会误导 AI低频独立基础模块,修改后需要同步更新 SKILL
2Context 边界与精度权衡Skill 写得太简会信息不足,写得太详细会 Context 过大,如何找到平衡需要持续调整实践验证
3AI 生成代码的验证成本原生场景下,生成代码需要编译 + 真机验证,出错后定位成本高人工全程把控【对人工能力有要求】
4模型对原生工程理解能力有限当前模型训练数据以 API 或小型开源项目为主,对大型原生工程的复杂调用链路理解仍有局限持续关注 AI 发展