AI Pulse
📡 X 信号

3M+ 行代码的 AI 项目,靠 skill 让 Agent 不瞎改

3M+ 行代码的 AI 项目,靠 skill 让 Agent 不瞎改

如果你正在用 AI 做正经项目,而且觉得自己还不够专业,我建议你读一读这篇。下面是我自己某个项目的 skill 结构截图。之前有人问过,我一直没腾出时间分享。

这篇会有点长,但如果你正在用 AI 做正经项目,会非常有用。

这个项目相当大。代码量超过 300 万行(不含依赖包)。是一个 monorepo,多语言,在不同服务器上跑着微服务,有大量 AI 处理流程,还有一个我自己微调过的小型 8B 模型。

项目规模不同,skill 数量会变,但 skill 的逻辑不变。

workflow skill 的数量不多。我更多是用 skill 而不是文档。因为 Codex 和 Claude 会自动把 skill 纳入上下文,把文档写成 skill 形式能带来很大好处。

软件的每个工作流和每个模块都有一个 skill。

agent 接到任务后,第一件事就是确定任务范围,然后读取与该范围相关的 skill。完成工作、通过测试后,如果需要,它会更新 skill;如果新增了模块或工作流,它会提醒我需要写新的 skill。这样一来,skill 也就是文档,始终保持最新。

因为 agent 在开始工作前会先读 skill,所以它知道自己要处理的代码的范围、功能、架构决策、当初为什么那样写、哪些东西不能改、哪些需要用户批准。

另一个重要的点是,在大型工作流和模块中,要把 skill 拆分。agent 读完 skill 后,应该能看到该领域下各子领域的文件引用,并且只读取与自己具体工作相关的子文件。这既节省 token,也有利于上下文管理。

图中是我的 audit skill 的文件夹内容。它会根据要审计的范围选择并读取子定义,然后据此分配任务。

全局 skill 里是我在每个项目中都会用到的工作流和规则,而像图中这种项目内 skill,则只包含该项目特有的内容。把两者分开非常重要,否则在不同项目中会造成大量混乱。

以后我会在 AGENTS.md / CLAUDE.md 里写。

注:图中涂黑的部分是因为写了我项目的名字,所以我把那些地方涂掉了。

本文由 AI 翻译自英文原帖,技术名词保留英文。

查看 X 原帖

订阅 AI Pulse

每天 08:00 · 12:30 · 18:30 · 23:50 更新