Insight Detail
AI Agent 自我文档化实践报告
AI Agent 自我文档化实践报告
日期: 2026-04-04
背景: 在 innate-websites 项目中实现自动化文档维护机制
1. 问题背景
1.1 观察到的现象
在开发过程中,发现 AI Agent 能够自动完成以下行为:
当完成 Task 4 和 Task 5 后,AI Agent 自动更新了
docs/tasks/workflow.md,将任务标记为完成状态并添加了详细的完成摘要。
这引发了一个问题:为什么 AI 会自动更新文档?这是使用了某种 Skill 吗?
1.2 根本原因
经过分析,发现自动更新文档的行为源于项目 AGENTS.md 中的一条规定:
If you modified any files/styles/structures/configurations/workflows/...
mentioned in `AGENTS.md` files, you MUST update the corresponding
`AGENTS.md` files to keep them up-to-date.
这意味着:
- AI 读取了项目规范
- 识别出文档需要更新的场景
- 自动执行了更新操作
2. 解决方案:WriteAgent Skill
基于以上观察,我们设计了一个专门的 WriteAgent Skill,用于规范和自动化 AI Agent 的文档维护行为。
2.1 Skill 定位
名称: write-agent
用途: AI Agent 自我文档化
目标: 确保代码与文档始终保持同步
位置: .trae/skills/write-agent/SKILL.md
2.2 核心设计原则
| 原则 | 说明 |
|---|---|
| 及时更新 | 将文档更新视为任务的一部分,不延迟到"后面再补" |
| 精确描述 | 准确描述实现的内容,更新具体的文件路径和代码示例 |
| 保持结构 | 遵循现有文档的格式和风格,使用一致的标题层级 |
| 版本追踪 | 记录重要的变更历史,标记已完成的任务 |
3. 实现细节
3.1 触发条件(何时更新)
WriteAgent Skill 定义了 5 种必须更新文档的场景:
-
修改了 AGENTS.md 中提到的文件/结构/配置
- 添加了新的目录结构
- 修改了配置文件
- 更改了代码模式或约定
-
完成了任务或里程碑
- Task 状态变更(进行中 → 完成)
- 添加了新的功能模块
- 修复了问题或 bug
-
创建了新的组件/模块/功能
- 新的 UI 组件
- 新的 API 端点
- 新的工具函数
-
修改了架构或设计决策
- 技术栈变更
- 架构模式调整
- 依赖关系变化
-
发现了文档中的过时信息
- 代码与文档描述不符
- 链接失效
- 示例代码过时
3.2 更新模板(如何更新)
模板 1: 任务完成更新
## Task X: 任务标题 ✅
**状态**: 已完成
**完成内容**:
1. [x] 功能点 A
2. [x] 功能点 B
3. [x] 功能点 C
**实现细节**:
- 关键文件: `path/to/file.ts`
- 主要变更: 描述具体修改
- 技术方案: 简要说明实现方式
**验证方式**:
```bash
# 测试命令或验证步骤
相关提交: commit-hash (可选)
#### 模板 2: AGENTS.md 架构更新
```markdown
## Architecture
### 新增模块: ModuleName
project/ ├── new-module/ │ ├── components/ # 新增组件 │ ├── hooks/ # 新增 hooks │ └── utils/ # 工具函数
**功能**: 简要描述模块用途
**依赖**: 列出关键依赖
**入口**: `path/to/index.ts`
模板 3: 组件文档更新
### ComponentName
**用途**: 组件功能描述
**Props**:
| 属性 | 类型 | 必填 | 说明 |
|------|------|------|------|
| prop1 | string | 是 | 说明 |
| prop2 | number | 否 | 说明,默认: 0 |
**使用示例**:
```tsx
<ComponentName prop1="value" prop2={42} />
位置: packages/ui/src/components/component-name.tsx
### 3.3 自动化规则
WriteAgent Skill 定义了 4 条自动化规则:
规则 1: Task 状态同步 当: 用户说"完成 Task X" 或 "Task X 已完成" 做: 自动将对应文档中的 Task X 标记为 ✅,并添加完成摘要
规则 2: 文件创建同步 当: 在特定目录创建新文件 做: 检查 AGENTS.md 是否需要更新目录结构说明
规则 3: 配置变更同步 当: 修改配置文件 (如 next.config.mjs, tsconfig.json) 做: 更新 AGENTS.md 中的配置说明部分
规则 4: 依赖变更同步 当: 添加/删除/更新 npm 依赖 做: 更新文档中的依赖列表和版本说明
---
## 4. 实践收获
### 4.1 显式优于隐式
**收获**: 将"自动更新文档"的行为从隐式规则变为显式 Skill
| 方式 | 特点 | 问题 |
|------|------|------|
| **隐式** | AI 自己决定何时更新 | 不一致、不可预测 |
| **显式** | 明确定义触发条件和更新模板 | 可预期、可维护 |
### 4.2 文档即代码
**收获**: 将文档维护纳入开发流程,像对待代码一样对待文档
- 版本控制:文档变更纳入 git 管理
- 自动化:AI 辅助减少手动维护工作量
- 一致性:统一的格式和风格
### 4.3 上下文传承
**收获**: 通过 AGENTS.md + Skill 的组合,实现项目知识的传承
项目知识层级: ├── AGENTS.md # 项目特定的规则和需求 ├── .trae/skills/ # 可复用的 Skill 定义 │ └── write-agent/ # 文档维护 Skill └── docs/ # 实际的项目文档
### 4.4 人机协作新模式
**收获**: AI 不仅是代码生成工具,更是文档维护的协作者
传统模式:
开发 → 编码 → (遗忘文档)→ 代码与文档不同步
新模式:
开发 → 编码 → AI 自动提醒/更新文档 → 代码与文档同步
---
## 5. 最佳实践建议
### 5.1 项目初始化时
1. **创建 AGENTS.md**
- 定义项目架构
- 明确编码规范
- 添加文档更新规则
2. **创建 WriteAgent Skill**
- 定义文档更新模板
- 明确触发条件
- 建立检查清单
### 5.2 日常开发中
1. **使用状态标记**
```markdown
## Task Name ⏳ // 待开始
## Task Name 🔄 // 进行中
## Task Name ✅ // 已完成
## Task Name ❌ // 已取消/阻塞
-
添加时间戳
**最后更新**: 2026-04-04 **完成时间**: 2026-04-04 -
保留变更历史
### 变更历史 - 2026-04-04: 初始实现 - 2026-04-03: 修复 bug #123 - 2026-04-02: 添加新功能 X
5.3 代码审查时
检查清单:
- 代码变更是否伴随文档更新?
- 新组件是否有文档说明?
- API 变更是否更新了接口文档?
- 架构变更是否更新了 AGENTS.md?
6. 实际应用案例
案例:Task 4 & 5 完成过程
场景: 修复 GitHub Token 问题并完成 fetch project support
AI 行为:
- 识别出这是 workflow.md 中定义的 Task 4 和 Task 5
- 完成任务后,自动更新 workflow.md
- 按照模板添加完成摘要:
- 任务状态标记为 ✅
- 列出完成的功能点
- 添加验证方式
- 记录运行结果
效果:
- 无需人工干预,文档自动同步
- 其他开发者可以立即看到最新进度
- 历史记录完整可追溯
7. 未来展望
7.1 可能的扩展
-
自动生成变更日志
- 基于 git commit 生成 CHANGELOG
- 自动分类:Features / Bug Fixes / Breaking Changes
-
智能文档检查
- 检测代码与文档的不一致
- 自动提醒需要更新的文档
-
多语言文档同步
- 自动翻译文档到多种语言
- 保持各语言版本同步
7.2 推广建议
将 WriteAgent Skill 应用于:
- 开源项目维护
- 团队协作开发
- 个人项目管理
- API 文档维护
8. 参考资源
- Skill 定义:
.trae/skills/write-agent/SKILL.md - 项目 AGENTS.md:
AGENTS.md - 任务文档示例:
docs/tasks/workflow.md - 相关 Skill:
claude-frontendcodex-frontendglm-frontendkimi-frontend
总结
通过创建 WriteAgent Skill,我们将 AI Agent 的文档维护行为从隐式变为显式,实现了:
- 标准化 - 统一的文档更新规范
- 自动化 - 减少手动维护工作量
- 一致性 - 代码与文档始终保持同步
- 可追溯 - 完整的变更历史记录
这是一种新的人机协作模式,AI 不再是单纯的代码生成工具,而是成为项目文档的主动维护者。