上一期: AI 辅助编程

AI 编程工具

Claude Code

Anthropic 官方出品的 AI 编程智能体命令行工具,提供了 TUI 界面,支持使用 MCP 工具、全局记忆和项目记忆文件 CLAUDE.md 、自动压缩上下文。

类似命令行工具产品还有 Gemini CLI,OpenCode,Codex 等。

常用功能有:

  1. 切换主代理(main agent)模式:
    1. 编辑模式
    2. 规划模式:只进行方案设计规划,不修改代码
  2. 自定义子代理(sub agent):
    1. 使用 md 文件创建子代理,可指定模型及模型参数、系统提示词、允许的工具等,还需要编写子代理描述,用于给主代理判断调用子代理的时机
    2. 输入框中通过 @ 可直接调用子代理
  3. 自定义斜杠命令(slash commands):
    1. 添加 md 文件创建自定义命令,输入框中通过 / 来调用命令
    2. 原理:将自定义命令中的内容直接填充进输入框中,与主代理对话
    3. 命令内容中可添加参数,如 $ARGUMENTS , $1, $2 ,在用户使用命令并提交输入内容时,会将用户的输入内容带入到这些参数中
      1. $ARGUMENTS 会被替换为全部的用户参数
      2. $1, $2 会被替换为第 1, 2 个用户参数(空格区分不同参数)
  4. 引用文件:
    1. 除了调用子代理,在输入框中使用 @ 还会触发文件选择列表,可选择项目中的具体文件
  5. Claude Skills 技能:
    1. 将针对某个领域问题的详细描述抽象为一个 skill 技能包,对于 AI 它只需要了解技能包的作用,不用了解技能详情内容,这可节省 token 消耗,提高 AI 执行速度和效率
    2. 如果 AI 需要使用技能包,再通过工具调用获取具体技能的详细内容
    3. 技能包中可按照树状结构排列 md 提示词内容,将细枝末节放在叶子 md 文件中,而在根 md 文件中,指引 AI 技能的核心原则及查询相关详细信息所对应的 md 文件
  6. 接入 MCP 工具

OpenCode

开源 Claude Code 平替,同样是命令行工具,提供 TUI (类似 Vim nano 的全屏 TUI)。

相比 Claude Code ,OpenCode 除了同样提供子代理、模式切换、自定义命令、MCP 工具之外,它的定制能力更加强大:

  1. 支持设置不同的模型,可来自不同模型提供商
  2. 可使用 TypeScript 编写自定义工具
  3. 可编写插件,在不同事件触发时进行处理: Plugins | opencode
  4. 提供 HTTP API,通过 API 控制 OpenCode
  5. 提供 LSP 能力: LSP Servers | opencode
    1. 根据代码文件后缀启动对用 Language Server
    2. 可检查代码中的错误问题

Roo Code

VSCode 插件,具体可以参考前文 AI 辅助编程,在此文之后 Roo Code 更新了很多功能,暂未跟进了解。

Trae

字节跳动出品的 AI IDE,基于 VSCode,产品对标 Cursor ,也加入了 Claude Code 的功能。

AI 编程范式

规范驱动编程(Spec Driven Development)

为了在工程项目中实际使用上 AI 编程,我们需要让 AI 生成符合我们工程规范的代码,而不是生成一堆无法提交合并的垃圾代码。

因此需要将工程规范告知 AI ,让它了解期望的代码结构和规范是什么样的。这就是规范驱动编程最核心的想法。

规范驱动编程的产品或工具有 Amazon 的 Kiro,开源的提示词库 spec-kitOpenSpec

spec-kit 与 OpenSpec 二者比较,前者更复杂,将开发流程拆得更细碎,而后者流程简单,更专注于保留和区分项目当前功能设计和进行中的功能设计。

我们以更简单的 OpenSpec 为例,来实践规范驱动编程。

OpenSpec

安装和项目初始化可参考 OpenSpec 文章中的步骤,此处不再赘述。

项目初始化完成后,OpenSpec 会提示我们可以初始化项目介绍。

项目、组件工具库文档建设