在 AI 领域,我们经历了从简单的提示词工程到复杂的 Agent 系统设计的演进。Claude Code 核心开发者 Thariq (@trq212) 的系列实践分享,揭示了一个重要真相:构建可靠、可规模化的 AI Agent,关键不在于模型有多聪明,而在于系统工程(Harness Engineering)。
本文将梳理五大核心主题,带你理解从“提示工程”走向“环境设计”的范式转变。
一、Skills:Agent 能力的可复用基础
1.1 超越 Markdown 文件的复合体
Skills 不是简单的 Markdown 文档,而是一个包含文件夹、脚本、资产和钩子的复合体。这种设计支持渐进披露(progressive disclosure),让模型能够按需深入,而非一次性加载所有信息。
1.2 高价值 Skills 类别(按 ROI 排序)
- 库/API 参考 + gotchas - 最常见高回报
- 产品验证 - 自动化测试、断言、录屏验证
- 数据获取与分析 - 漏斗、cohort、Grafana 映射
- 业务流程自动化 - standup、ticket 创建、weekly recap
- 代码脚手架与模板
- 代码质量与审查 - adversarial review、style enforcement
- CI/CD 与部署 - babysit PR、渐进 rollout、cherry-pick
- Runbooks - 症状 → 工具 → 报告
- 基础设施运维 - orphans 清理、成本调查
1.3 关键实践要点
- 聚焦 gotchas:记录常见陷阱而非显而易见的知识
- 文件系统分层组织:让模型自主决定何时深入读取
- 持久化存储记忆:使用
${CLAUDE_PLUGIN_DATA} 保存日志、JSON、SQLite 数据
- 辅助脚本优先:让模型专注组合而非重写 boilerplate
- 描述字段写成触发条件:而非简单摘要
- Hooks 动态行为:如
/careful 防止 rm -rf、/freeze 限目录等
- 分发方式:小团队检入 repo,大团队建内部 marketplace + 审核机制
- 度量迭代:PreToolUse 钩子记录使用率,优化低活跃 skill
1.4 核心价值
Skills 是将组织专有知识、流程、陷阱转化为可共享、可演化、可组合的能力,是 Agent 工程从“提示”转向“环境设计”的核心跃迁。
二、Action Space 设计:以模型真实能力为导向
2.1 不要预设工具集
不要预先假设模型需要什么工具集,而是通过持续观察模型输出来迭代 action space。
2.2 典型演进路径
| 维度 |
演进前 |
演进后 |
| 用户交互 |
纯文本 |
结构化 AskUserQuestion(多选项、阻塞等待) |
| 任务管理 |
Todo |
Task(支持依赖、Sub Agents 协作、可修改) |
| 上下文构建 |
被动 RAG |
Grep + 渐进披露(模型自主层层挖掘) |
2.3 核心原则
- 小而精:优先小而精的工具,避免过载
- Sub Agents 模式:处理元问题,保持主上下文干净
- 像 Agent 一样思考:如果你是模型,面对这个问题最想要什么工具?
2.4 设计本质
好的 action space 是实验 + 观察的产物,随模型能力提升而演进。
三、Prompt Caching:生产级长会话的经济基础
3.1 缓存依赖前缀匹配
缓存依赖前缀匹配,任何前缀变更会导致整条缓存失效。
3.2 布局铁律:静态在前、动态在后
system prompt + tools + claude.md → session context → messages
静态部分 动态部分
3.3 常见破坏点
3.4 应对策略
| 策略 |
说明 |
| 更新信息用消息 |
不改 prompt,用消息传递更新 |
| 避免中途加/删工具 |
用 Enter/ExitPlanMode 模拟状态变化 |
| Tool search 延迟加载 |
使用 defer_loading(轻量 stub,按需加载完整 schema) |
| Cache-safe forking |
Compaction 必须复用父会话前缀 + compaction prompt 作为 user message |
3.5 监控要点
像监控可用性一样监控hit rate,掉几个百分点就是严重问题。
3.6 设计约束
缓存不是优化,而是整个系统的设计约束。围绕它构建 Plan Mode、Tool Search、Compaction,才能真正规模化长会话。
四、文件系统 + Bash:Agent 的持久状态与通用计算能力
4.1 文件系统的核心价值
文件系统是天然的持久记忆、验证、多代理协作层(远优于全塞上下文)。
典型用途:
- 邮件分析
- 规划草稿
- Sub Agents 协作
- 架构记忆银行
4.2 非编码 Agent 也需要 Bash
| 即使非编码 Agent 也强烈需要 Bash: |
用途 |
说明 |
| 保存中间结果 + grep |
支出统计、API 链式调用等复杂处理 |
| 视频处理 |
ffmpeg 视频剪辑 |
| 定时任务 |
cron 定时任务 |
| 组合性与可验证性 |
模型可多次尝试、验证输出 |
4.3 安全保障
沙箱 + 权限控制(Claude Agent SDK 已内置)。
4.4 核心价值
文件系统 + Bash = Agent 的“外部大脑 + 双手”,让模型能迭代、验证、组合,而非一次性猜对。
五、Playgrounds:可视化交互的突破
5.1 生成独立 HTML 界面
Playgrounds 能够生成独立 HTML 界面,实现终端难以表达的交互:
- 架构可视化 + 用户评论
- UI 迭代、游戏平衡
- 写作审阅(inline 建议、接受/拒绝)
5.2 核心思路
把“独特交互方式”描述给模型,让它自己表达成 HTML。
5.3 核心价值
突破纯文本局限,开启视觉 + 交互闭环迭代。
六、整体工程哲学
6.1 Agent 成功的关键
Agent 成功的关键不是模型聪明程度,而是系统工程(Harness Engineering):
- 文件系统
- Skills
- Bash
- 渐进披露
- 缓存优化
- 持续观察模型行为
6.2 范式转变
从 “提示工程” → “环境设计”
6.3 核心方法论
- 持续实验
- 认真读输出
- 像 Agent 一样思考
- 迭代工具与抽象
6.4 适用性
这些经验对任何想构建可靠、可规模化 AI Agent 的人都有极高参考价值。
七、行动建议
强烈建议:把这份清单当作 Agent 工程 Checklist,逐条对照实践。
结语
AI Agent 的成功,是一场从“如何更好地告诉模型做什么”到“如何为模型创造更好的工作环境”的范式转变。
在这条路上,我们不再是简单的提示词工程师,而是系统设计师。我们的任务是构建一个让智能能够自然涌现、可靠执行、持续进化的环境。
正如 Thariq 所强调的:Agent 工程的核心不是让模型变得更聪明,而是让环境变得更聪明。
本文基于 Claude Code 核心开发者 Thariq 的系列实践分享整理,涵盖了 Agent 工程的关键实战经验。
想要持续获得此类关于人工智能与系统工程的深度技术分享,欢迎关注技术社区的动态。