
当 AI Agent 展现出越来越强的自主能力时,很多开发者容易产生一种错觉:
只要提示词写得足够好,AI 就能自动完成复杂任务。
但真正做过 Agent 落地的人都知道,现实远比这复杂。一个能够稳定运行的 Agent 系统,决定成败的往往不是提示词本身,而是它所处的环境。
最近,Anthropic 分享了他们在内部构建数百个 Claude Code Skills(技能)过程中的经验。这些实践揭示了一个重要趋势:AI 工程正在从 Prompt Engineering(提示工程)转向 Context Engineering(上下文工程)。
而这,或许才是 Agent 时代真正的工程学。
从提示词到环境设计:技能并不只是 Markdown
很多人第一次接触 Claude Code Skills 时,会把它理解成一份增强版提示词文档。
事实上,这种理解并不准确。
在 Claude Code 的设计里,一个 Skill 本质上是一个完整的资源目录,而不仅仅是一段文本。
一个典型的技能目录中,往往包含:
指令文档 自动化脚本 测试工具 静态资源 参考数据 动态 Hooks
这种设计带来的变化非常关键。
传统 Prompt 更像是在给 AI 发指令,而 Skill 则是在为 AI 搭建工作环境。
Agent 不再只是阅读文字,而是能够像工程师一样浏览目录、调用脚本、访问数据,并根据任务需要动态寻找资源。
尤其是 Hook 机制的引入,使 Agent 可以实时感知环境变化并作出响应。
这意味着,技能已经不再是一份说明书,而是一套可执行的工作系统。
Anthropic 将这种方式称为 Context Engineering——通过设计上下文环境,而非堆砌提示词,来提升模型能力。
为什么验证能力是最高投资回报率的技能
Anthropic 在内部对技能进行了多个类别划分。
其中,对结果质量提升最明显的一类,是验证技能(Verification Skills)。
简单来说,这类技能专门负责回答一个问题:
你怎么知道自己真的做对了?
很多 Agent 最大的问题并不是不会执行,而是不知道如何验证结果。
Claude 可能认为自己已经完成了支付流程,但实际上后台数据并未写入。
它可能认为测试通过了,但真实用户场景仍然存在漏洞。
因此,Anthropic 花了大量精力为 Agent 构建自动验证体系。
他们引入了:
Playwright Tmux 自动化断言脚本 支付测试工具 视频录制系统
例如在支付链路验证中,仅仅看到接口返回 200 并不足够。
Claude 必须进一步检查数据库中的 payment_events 表,确认业务事件真实发生。
甚至在部分场景下,系统还会要求 Agent 录制完整操作视频,供工程师后续复核。
这种思路非常值得借鉴。
真正可靠的 Agent,不是相信自己的判断,而是不断寻找证据证明自己是正确的。
验证能力,本质上是在降低 AI 的幻觉风险。
而这往往比提升模型本身更有效。
AI 是文档的第一用户
Anthropic 还提出了一个有趣的概念:
除了关注开发者体验(DX),我们还需要关注模型体验(MX)。
过去写文档,是为了让人阅读。
未来写文档,很大程度上是在为模型服务。
因此,许多传统文档写作原则需要重新审视。
其中最重要的一条就是:
不要写显而易见的内容。
Claude 本身已经具备极强的代码理解能力。
重复描述代码逻辑,不仅不会增加价值,反而会浪费上下文窗口。
真正高价值的信息,是那些代码中看不出来的经验知识。
Anthropic 将这类内容称为 Gotchas(坑点)。
例如:
subscriptions 表采用 Append-Only 模式,必须读取最新 version,而非最新时间戳; Stripe Webhook 在未真正处理时也可能返回 200; API 网关中的 request_id 与计费系统中的 trace_id 实际是同一个字段。
这些经验无法通过静态阅读代码获得,却经常决定任务成败。
对于 Agent 来说,它们的价值远高于一百行常规说明。
未来最重要的工程文档,可能不再是架构图,而是一份高质量的踩坑记录。
技能描述的真正作用:触发模型记忆
Anthropic 还分享了一个非常反直觉的经验。
很多开发者会把 Skill 的 Description 字段写成功能介绍。
但实际上,这个字段最重要的作用并不是介绍功能。
而是触发模型。
Claude 在启动时会扫描所有技能描述,并决定哪些技能需要加载。
因此,Description 的本质是激活词(Trigger)。
举个例子。
如果一个技能负责长期监控 Pull Request。
与其写:
“用于持续监控代码仓库状态并自动执行重试任务……”
不如直接写:
“Babysit PRs”。
对于大模型而言,“Babysit”这个词背后天然关联着:
持续观察 异常处理 状态维护 长时间跟踪
这些语义会比冗长说明更容易激活正确技能。
这是一种典型的面向模型编程思维。
未来的文档不再只是给人看的语言,而会越来越像模型检索系统中的关键词设计。
动态加载上下文,让 Agent 像人一样查资料
随着技能数量增加,一个新的问题出现了:
如何避免一次性给模型塞入太多信息?
Anthropic 的解决方案是渐进式披露(Progressive Disclosure)。
Skill 的主文档并不包含全部内容。
它更像一个导航目录。
只有当任务触发特定场景时,Claude 才会继续打开对应子文件。
例如:
当检测到任务积压时,
才去读取:
stuck-jobs.md
当检测到支付问题时,
才去读取:
payment-debugging.md
这种按需加载机制与人类工程师的工作方式高度相似。
没有人会把整个 Wiki 背下来。
大家都是遇到问题再查资料。
Agent 同样如此。
合理的信息组织结构,往往比更多的信息本身更重要。
让技能拥有记忆
更进一步,Anthropic 还尝试让技能具备跨会话记忆能力。
实现方式并不复杂。
通过持久化目录或日志文件即可完成。
例如:
standups.log task_history.log deployment_notes.log
下一次运行时,Claude 可以读取历史记录。
于是它能够知道:
昨天做了什么;
今天发生了哪些变化;
哪些任务已经完成;
哪些问题仍然悬而未决。
这意味着 Agent 开始具备真正意义上的连续性。
它不再是一次性工具,而是在逐渐成长为长期协作者。
从软件工程师到“技能架构师”
Anthropic 的这些实践透露出一个越来越清晰的趋势:
未来最重要的能力,可能不再是写代码。
而是设计让 AI 写代码的系统。
Skill 的演化过程,本质上是一套持续迭代的知识沉淀机制:
发现问题;
记录坑点;
补充验证;
增加工具;
优化触发条件;
积累长期记忆。
经过一次又一次迭代之后,原本简单的提示词最终会成长为一套完整的工程能力体系。
在这个过程中,工程师的角色也正在发生变化。
过去,我们编写程序。
未来,我们设计能够自主工作的 Agent 环境。
过去,我们关注代码逻辑。
未来,我们关注上下文结构。
过去,我们是开发者。
未来,我们更像是 AI 团队的组织者和架构师。
或许在不远的将来,“首席技能架构师(Principal Skill Architect)”将成为软件行业最重要的新岗位之一。
因为当代码越来越容易生成时,真正稀缺的,将是那些能够构建 AI 能力生态的人。
夜雨聆风