Digital Strategy Review | 2026
Claude Code 十大亮点解读 06|Agent Definition 不是 Prompt,而是 Runtime Spec
文 / 果叔 · 阅读时间 / 8 Min

写在前面
很多产品说支持自定义 Agent,最后给你的往往只是一段 system prompt。这一篇值得细看,因为 Claude Code 把 agent definition 往前推了一层,直接做成了运行时规格。
01
Agent Definition 不是 Prompt,而是 Runtime Spec
很多产品说“支持自定义 Agent”,最后给你的其实只是:
• 一个名字
• 一段系统提示词
Claude Code 对 Agent 的理解明显更深。 在这里,Agent definition 不是简单 prompt,而更像一份运行时规格说明。
核心实现集中在:
• src/tools/AgentTool/loadAgentsDir.ts
• src/tools/AgentTool/builtInAgents.ts
• src/tools/AgentTool/built-in/*
02
一、Claude Code 的 Agent Definition 到底能描述什么
在 Claude Code 里,一个 Agent definition 可以包含:
• agentType
• whenToUse
• tools
• disallowedTools
• skills
• mcpServers
• hooks
• model
• effort
• permissionMode
• maxTurns
• background
• initialPrompt
• memory
• isolation
• omitClaudeMd
这套字段说明了一个重要事实:
Claude Code 里的 Agent 不是“提示词角色”,而是“运行时对象模板”。

一旦把角色提升成规格,Claude Code 的 built-in 与自定义 Agent 才能共享同一条运行路径。
03
二、为什么这比自定义 Prompt 强太多
1. 它能控制工具边界
普通 prompt 只能“建议”模型不要乱用工具。 Agent definition 则可以真正裁剪工具表面。
比如:
• Explore Agent 禁止编辑
• Plan Agent 保持只读
• Verification Agent 强调验证而非修改
这不是行为建议,而是系统边界。
2. 它能控制运行方式
Agent 不只是“说话风格”不同,它还可以:
• 默认后台执行
• 启用 memory
• 指定 isolation
• 指定 permission mode
这意味着 Agent 的差异不再停留在 prompt 语气层,而进入系统执行层。
3. 它能控制依赖能力
通过 mcpServers、skills、hooks 等字段,Agent definition 可以声明:
• 启动时依赖哪些能力
• 运行时需要哪些附加机制
这就把 Agent 从“人格模板”升级成“能力模板”。
04
三、Claude Code 为什么能同时支持多来源 Agent
因为它把 Agent definition 设计成了统一配置对象,于是自然支持:
• built-in agent
• user agent
• project agent
• policy agent
• plugin agent
并且还能做覆盖优先级。
这件事非常关键。 因为一旦你不是把 Agent 写死在代码里,而是把它们抽象成统一 spec,系统就能稳定支持:
• 个人定制
• 项目约束
• 组织策略
• 插件扩展
这是真正的平台能力。
05
四、Built-in Agents 很能说明这套 spec 的力量
Explore Agent
它不是“会搜索”的 prompt,而是一个:
• 只读
• 强调快速搜索
• 限制编辑工具
• 模型策略可调
的运行时角色。
Plan Agent
它不是“会做计划”的 prompt,而是一个:
• 只读
• 偏架构分析
• 要求输出 critical files
的运行时角色。
Verification Agent
它甚至带有很强的行为规约:
• 要跑命令
• 要贴输出
• 要给 verdict
• 禁止修改项目目录
这已经非常接近一种“可执行审计规则”,而不是提示词。
06
五、为什么我说它更像 Runtime Spec
如果从软件工程角度看,一个 Agent definition 在 Claude Code 里类似于:
• 容器镜像的运行配置
• K8s 的 workload spec
• CI job 的执行声明
因为它决定的是:
• 用什么模型
• 能做什么
• 不能做什么
• 在什么上下文里运行
• 是否持久化记忆
• 是否带额外依赖能力
Prompt 只是其中一项。
这就是为什么我认为这一层特别值得学习。
07
六、它的代价是什么
当然,这种设计也会增加系统复杂度。
1. Agent 不再只是文本资产
你需要维护的是一整套运行时字段,而不是一份 prompt 文件。
2. 需要更强的加载、校验、覆盖逻辑
Claude Code 里 loadAgentsDir.ts 的复杂度,正是这件事的代价。
3. 要非常谨慎地管理插件和策略来源
因为 Agent 已经有真实运行能力,覆盖顺序和安全边界必须清晰。
但这些复杂度换来的,是 Agent 真正从“内容资产”变成“系统资产”。
08
七、一张图看懂这个亮点

09
八、结论
Claude Code 这套 Agent Definition 最强的地方在于,它让“Agent”不再只是提示词世界里的角色扮演,而是进入了运行时工程体系。
这一步的意义非常大:
• 角色边界更清晰
• 扩展方式更统一
• 插件与策略更容易接入
• Agent 行为更容易被治理
一句话总结:
在 Claude Code 里,Agent 是声明式定义的执行角色,而不是披着 prompt 外衣的函数调用。