AgentHarness 课程

/init 代码库分析

2.9K字·8分钟·

引言

接手一个陌生的代码库,第一件事是什么?

传统做法:花几小时甚至几天阅读代码、画架构图、理解业务逻辑。

CodeBuddy 的做法:一个 /init 命令,几分钟内完成代码库的全面分析。

核心价值:让 AI 在最短时间内"理解"你的项目,为后续的智能协作打下基础。


一、/init 做了什么?

1.1 分析流程

/init 执行流程:

1. 仓库结构分析
   ├── 识别目录结构
   ├── 识别编程语言
   ├── 识别框架和库
   └── 识别配置文件

2. 调用链与依赖分析
   ├── 模块间依赖关系
   ├── 函数调用链
   ├── API 路由映射
   └── 数据库模型关系

3. 业务知识提取
   ├── 核心业务模块识别
   ├── 数据流向分析
   └── 关键业务逻辑提取

4. 生成项目文档
   ├── README 摘要
   ├── 架构图
   └── 模块说明

1.2 Agentic Workflow

/init 不是一次性扫描,而是通过假设→工具调用→验证的循环来理解系统:

假设:这个项目使用 Express 框架
  → 工具调用:读取 package.json
  → 验证:确认 express 在 dependencies 中
  → 结论:✅ Express 项目

假设:用户认证使用 JWT
  → 工具调用:搜索 "jwt" 关键词
  → 验证:找到 auth/middleware.ts 中的 jwt.verify
  → 结论:✅ JWT 认证

这种 Agentic Workflow 让 AI 能够像人类开发者一样"阅读"代码。


二、Memory 三层体系

/init 分析的结果会存入 Memory 系统:

2.1 短期记忆(Session)

生命周期:当前会话

内容:

  • /init 的分析过程
  • 中间的假设和验证
  • 临时发现

2.2 中期记忆(Project)

生命周期:当前项目

内容:

  • 模块解释和架构推断
  • 技术栈识别结果
  • 代码风格和规范

存储位置:.codebuddy/memory/

{
  "architecture": "Express + Prisma + PostgreSQL",
  "modules": {
    "auth": "JWT 认证,位于 src/auth/",
    "api": "RESTful API,位于 src/api/",
    "utils": "工具函数,位于 src/utils/"
  },
  "conventions": {
    "style": "ESLint + Prettier",
    "testing": "Jest"
  }
}

2.3 长期记忆(Organizational)

生命周期:跨项目

内容:

  • 通过 Rules 沉淀的团队知识
  • 最佳实践和编码规范
  • 常见问题和解决方案

存储位置:~/.codebuddy/rules.md


三、后续自动化

3.1 自动生成文档

/init 分析完成后,可以调用文档 Skill 自动生成:

# /init 分析完成后
/skill docs-generator

AI:基于项目分析结果,已生成:
  ✅ README.md(项目概述)
  ✅ docs/architecture.md(架构文档)
  ✅ docs/api.md(API 文档)

3.2 自动生成测试

/skill test-generator

AI:基于项目结构,已生成:
  ✅ tests/auth.test.ts(认证模块测试)
  ✅ tests/api.test.ts(API 测试)
  ✅ tests/utils.test.ts(工具函数测试)

四、实战案例

案例:接手一个 3 年历史的项目

你:我刚接手这个项目,帮我了解一下

AI:执行 /init 分析...

    📁 项目结构
    ├── src/
    │   ├── api/          (Express 路由,23 个接口)
    │   ├── models/       (Prisma 模型,8 个表)
    │   ├── services/     (业务逻辑,12 个服务)
    │   ├── middleware/    (中间件,5 个)
    │   └── utils/        (工具函数,34 个)
    ├── tests/            (测试文件,45 个)
    └── docs/             (文档,缺失)

    🔍 技术栈识别
    - 框架:Express 4.18
    - ORM:Prisma 5.0
    - 数据库:PostgreSQL 15
    - 缓存:Redis 7.0
    - 测试:Jest 29

    📊 代码质量
    - 总代码行数:12,450
    - 测试覆盖率:62%(低于 80% 目标)
    - TODO 注释:23 个
    - 未使用导入:7 个

    ⚠️ 发现的问题
    - 3 个 SQL 注入风险
    - 5 个未处理的异常
    - 2 个硬编码的密钥
    - docs/ 目录为空,缺少文档

    已将分析结果存入项目记忆。后续对话中我会基于这些信息工作。

五、常见陷阱

陷阱 1:大项目分析耗时长

原因:项目文件太多,逐个分析需要时间
解决:使用 /init --quick 模式,只分析核心模块

陷阱 2:分析结果不准确

原因:项目结构不规范,AI 推断错误
解决:手动修正 .codebuddy/memory/ 中的记录

陷阱 3:/init 不是一次性的

原因:项目会演进,分析结果会过时
解决:重大项目变更后重新执行 /init

六、总结

问题答案
/init 是什么?代码库自动分析命令
分析什么?结构、依赖、业务逻辑、代码质量
结果存在哪?Memory 三层体系
后续能做什么?自动生成文档、测试、重构建议
最佳实践?接手新项目先 /init,大变更后重新 /init