AI Agent 设计团队最佳实践指南

不是更多工具
更好的架构

基于费曼学习法整理自 Claude Code 架构逆向工程研究。 本指南为 AI Agent 设计者提供可落地的架构决策框架—— 从 8 个通用失败模式到 5 大设计支柱, 涵盖工具选择、记忆分层、权限设计与扩展机制。

方法论 费曼学习法
参考系统 Claude Code
适用对象 Agent Designer
涵盖章节 7 个核心模块
STEP 01
用简单语言解释
把复杂架构概念翻译成任何人都能理解的比喻
STEP 02
找到理解盲区
识别哪些环节解释不清晰——那里就是真正的难点
STEP 03
填补知识缺口
回到原材料,补充缺失的理解,关联前沿技术
STEP 04
极简化表达
删掉所有冗余,只保留核心洞见和可执行结论

8 个让 Agent 翻车的结构性缺陷

费曼第一步:用最简单的语言说清楚"问题是什么"。这 8 个不是 bug,是架构级别的盲点。

FAILURE_MODE_01
🔁
失控循环
Agent 在无意义的任务上无限烧 token,没有任何杀死机制。就像一个永不停止的 while(true)。
RUNAWAY LOOPS
FAILURE_MODE_02
💥
上下文崩塌
把所有信息塞进单个窗口,窗口满了之后开始幻觉,前面做的决策全部失忆。
CONTEXT COLLAPSE
FAILURE_MODE_03
🎲
权限轮盘赌
要么问用户每一个操作(烦死人),要么完全信任(危险)。没有精细化的权限分级。
PERMISSION ROULETTE
FAILURE_MODE_04
🧠
会话失忆症
每次新会话都从零开始。用户要把项目背景、团队约定、个人偏好重新解释一遍。
AMNESIA
FAILURE_MODE_05
🏔️
单一巨型上下文
研究、规划、执行挤在同一个对话里。信息量碾压模型,输出质量随会话变长急剧下降。
MONOLITHIC CONTEXT
FAILURE_MODE_06
🔒
硬编码行为
想要新能力只能改源代码。业务方无法自行扩展,工程师被琐碎需求淹没。
HARD-CODED BEHAVIOR
FAILURE_MODE_07
🕳️
黑盒操作
不知道 Agent 做了什么、为什么这么做、能不能拦截。出了事故没有任何审计线索。
BLACK BOX
FAILURE_MODE_08
🐢
单线程执行
一次只能做一件事,无法并行。大型任务只能排队串行,效率极低。
SINGLE-THREADED
GPT-4o Tool Use Gemini 2.0 Multi-turn LangGraph Checkpointing OpenAI Assistants API Anthropic Batch API CrewAI Multi-Agent AutoGen v0.4

三代 LLM 应用架构的控制权转移

费曼第二步:理解"为什么需要 Agent 架构"。关键洞见——谁掌控循环,谁就掌控智能。

第一代 · 2022
单次 LLM
输入进去,输出出来。无状态、无工具、无记忆。摘要、分类、提取。
代码控制一切
第二代 · 2023
🔗
工作流 / 链
代码编排 LLM 调用。DAG 式流程,确定性强但极度脆弱——没预设的路径走不通。
代码 → LLM → 代码
第三代 · 2024+
🚀
自主 Agent
模型决定下一步做什么。运行时只是一个哑循环,所有智能在模型里。自适应、灵活、强大。
模型控制循环

工作流的问题:研究阶段发现需要先澄清需求,但 DAG 里这条路不存在。只有自主循环才能应对真实世界的不确定性。这是架构失败 #6(硬编码行为)的根源。

// 费曼法则:能用一句话解释"工作流为什么不够",才算真正理解了 Agent 架构

TAOR 循环——50 行代码,无限能力

费曼第三步:找到核心机制。整个 Agent 系统的心脏只是一个死简单的循环——复杂性全部委托给模型本身。

THINK → ACT → OBSERVE → REPEAT
🧠 THINK
ACT
👁 OBSERVE
🔀 DECIDE
THINK — 接收上下文,推理下一步
ACT — 输出文本 或 调用工具
OBSERVE — 把结果追加到历史
DECIDE — 模型决定:继续 or 结束
三级自主度控制
🟢 轻量任务 全自动
在 GitHub Issue 上 @claude,它自己完成 PR
🟡 中等任务 先对齐方案
进入 Plan Mode,确认方案后切换自动执行
🔴 复杂任务 人主导
Claude 做研究和原型,核心逻辑自己写
⚡ 护栏机制
maxTurns 上限防止失控循环
→ 权限门控暂停等待人工审批
模型决定何时停止,而非硬编码退出

4 个原语工具 > 100 个专用集成

最被低估的架构决策。给模型一个 Shell,它就能执行人类工程师能执行的任何工作流。

📖
READ — 理解现实
读取、搜索、发现
  • Read读取任意文件(cat, less)
  • Glob按模式查找文件(find, ls)
  • Grep搜索文件内容(grep, rg)
✏️
WRITE — 修改世界
创建、修改、修补
  • Write创建/覆盖文件
  • Edit精确补丁式修改(sed, patch)
EXECUTE — 执行任何操作
THE UNIVERSAL ADAPTER
  • Bash运行任意 shell 命令
npm test → 运行测试
git commit → 提交代码
docker build → 构建镜像
kubectl get pods → 查集群状态
🔌
CONNECT — 连接外部
HTTP 请求、子 Agent
  • WebFetchHTTP 请求(curl)
  • Task生成子 Agent(fork)

为什么放弃向量嵌入?连续重新索引脆弱、部署面积大、企业安全审查难通过。让模型用 Bash + Grep + Glob 迭代搜索代码库——同样准确,部署简单得多。这就是"原语工具哲学"应用于检索的例子。

// 对比:LlamaIndex / LangChain RAG vs Agentic Search

5 大支柱 × 8 个失败模式的精确映射

费曼第四步:找出每个架构决策背后的"为什么"——每个支柱都精确对应特定的失败模式。

1
模型驱动自主
MODEL-DRIVEN AUTONOMY
运行时是哑循环,模型是 CEO。不是代码编排模型,是模型编排工具。彻底解耦业务逻辑与执行框架。
#1 失控循环 #6 硬编码行为
2
上下文即稀缺资源
CONTEXT AS A RESOURCE
200K token 的窗口是最稀缺的资源。自动压缩、子 Agent、分叉上下文、语义工具搜索——所有机制都在保护它。
#2 上下文崩塌 #5 单一巨型
3
分层记忆
LAYERED MEMORY
6 层记忆在会话启动时加载合并。组织规范 → 项目约定 → 个人偏好 → 自动学习模式。Agent 永远不从零开始。
#4 会话失忆
4
声明式可扩展
DECLARATIVE EXTENSIBILITY
Skills、Agents、Hooks、MCP、Plugins——全部用 .md 和 .json 配置,无需改代码。PM 可以写 CLAUDE.md,DevOps 可以加 Hook。
#6 硬编码行为 #7 黑盒操作
5
可组合权限
COMPOSABLE PERMISSIONS
工具级别的 allow/deny/ask,支持 glob 模式。6 个权限模式从"全部询问"到"绕过一切"。按工具、按路径精确控制。
#3 权限轮盘赌

6 层记忆系统——Agent 永远不从零开始

最影响留存率的产品特性。用户期望 Agent 记住一切,6 层分层记忆是实现这一点的工程路径。

L1 · MANAGED
组织级策略
/Library/Application Support/Claude/CLAUDE.md
L2 · PROJECT
项目约定
./CLAUDE.md(Git 仓库根目录)
L3 · RULES
功能级规则集
./.claude/rules/*.md
L4 · USER
个人偏好
~/.claude/CLAUDE.md
L5 · LOCAL
Git 忽略的本地覆盖
./CLAUDE.local.md(不提交到仓库)
L6 · AUTO
自动学习模式
MEMORY.md(Agent 自动写入的观察)

高级模式:「地图,而非百科全书」— 巨型 CLAUDE.md 最终会腐烂。最佳实践是把根文件当作极简目录(指向 docs/design、docs/api、docs/plans),强迫 Agent 有意识地导航文档结构,而非把无关规则全部塞入上下文。对比:Cursor Rules / Windsurf Rules 的演化路径。

// 参考:GitHub Copilot Instructions、Cursor .cursorrules 最佳实践

200K Token 的战争——用尽之前如何防御

⚠️ 危险区:85%+ 使用率 → 触发自动压缩 85% / 200K
已使用上下文
⚡ 触发压缩
📊 正常工作区 50% / 200K
工作中
✅ 压缩后恢复 15% / 200K
压缩摘要
AUTO-COMPACTION
约 50% 时自动触发。LLM 把历史替换为有损摘要,保留决策丢弃细节。永远启用。
SUB-AGENTS
把重型任务(研究、探索)offload 给独立上下文窗口。只把摘要返回主上下文。
FORKED CONTEXT
Skill 在隔离上下文运行,完成后丢弃。不污染主对话。context: fork 配置。
TODO TOOL
Agent 管理自己的任务列表。独立于压缩存活——压缩不丢失 10 步计划的第 8-10 步。
PRECOMPACT HOOK
压缩前注入必须保留的关键上下文。像"钉住重要事实"再生成摘要。
MCP TOOL SEARCH
有 100+ MCP 工具时,语义搜索只注入相关工具定义,避免工具列表本身吃掉上下文。

6 个扩展点——全部声明式,无需写代码

这是 Agent 从工具变成平台的关键跨越。PM 可以写 CLAUDE.md,运维可以加 Hooks,平台团队可以发布 Plugins。

📄
CLAUDE.md
.md 文件 · 每轮注入
项目级记忆和规则。每一轮对话都注入上下文。解决"Agent 不了解你的项目"问题。
# 项目约定
使用 pnpm 而不是 npm
忽略 legacy/ 目录
测试框架:Vitest
Skills
.md + YAML · /斜杠命令
可复用的指令束,通过 /slash-command 触发。支持隔离上下文运行,零 LLM 调用的纯注入模式。
/deploy → 触发部署流程
/review → 代码审查
disable-model-invocation: true
🤖
Sub-Agents
YAML frontmatter · 独立循环
在独立上下文窗口运行自己的 TAOR 循环,返回摘要。研究不污染执行,执行不污染研究。
model: haiku # 快速探索
tools: Read, Grep, Glob
permissionMode: plan
🪝
Hooks
shell 脚本 · 确定性执行
在 LLM 循环外运行的确定性脚本。保存自动 lint、执行前审计、部署门控——无需 LLM 参与。
PostToolUse → eslint --fix
PreToolUse → 安全检查
PreCompact → 注入关键上下文
🔌
MCP Servers
标准协议 · 外部服务桥接
通过 Model Context Protocol 连接任意外部服务。Stdio 本地工具、HTTP 远程服务、SSE 流式更新。
Chrome DevTools MCP
→ Agent 能看到 DOM 错误
Postgres MCP → 直接查库
📦
Plugins
plugin.json · 可分发包
把 Skills + Agents + Hooks + MCP 打包成可安装单元。平台团队一次发布,所有人一键安装。
my-plugin/
├── skills/
├── agents/
└── hooks/
隔离光谱——选哪种取决于你需要多少隔离
Skills
同进程
同上下文
成本:低
Sub-Agents
同进程
独立上下文
成本:中
Agent Teams
独立进程
独立上下文
成本:高
← 低隔离,低成本 高隔离,高成本 →

用 8 个失败模式评估任何 Agent 系统

把这张表带进下次 Agent 选型会议或设计评审。每行是一个你必须问的问题。

失败模式 解法 评估问题
🔁 失控循环
maxTurns + Kill
有 turn 上限吗?能终止卡住的会话吗?
💥 上下文崩塌
Auto-Compact
如何管理上下文窗口大小?触发阈值是多少?
🎲 权限轮盘赌
Glob 规则
能按命令/路径精确 allow/deny?共享白名单吗?
🧠 会话失忆
6层记忆
跨会话记住项目背景了吗?记忆怎么组织的?
🏔️ 巨型上下文
Sub-Agents
能把子任务委托给独立上下文吗?
🔒 硬编码行为
声明式扩展
不改代码能添加新能力吗?PM 能自助扩展吗?
🕳️ 黑盒操作
Hooks 审计
能在每个生命周期事件拦截、审计、记录吗?
🐢 单线程
Agent Teams
能并行运行多个任务或多个 Agent 吗?

写给 Agent Designer 的 6 条军规

费曼最终步:极简化。删掉所有废话,只留下你下次设计 Agent 时真正会用到的东西。

01
建哑循环,不建聪明编排器
运行时越哑越好,智能全部留给模型
TAOR 循环大约 50 行逻辑。所有智能来自模型 + 系统提示 + 工具。编排器越聪明,架构越脆。改提示比改代码快 10 倍。
02
给 Shell,不给 100 个专用工具
Bash 是最强大的工具,因为人类写的所有 CLI 工具都在里面
不要为 npm test 写工具包装,不要为 git commit 写工具包装。给模型 Shell,让它组合。每有新模型,主动删工具——这是架构健康的信号。
03
从第一天起设计上下文预算
上下文是你最稀缺的资源,比 GPU 时间更贵
每个架构决策都要问:这会消耗多少 token?Sub-Agent 用于隔离重型任务,Auto-Compact 永远打开,PreCompact Hook 钉住关键信息,Todo 工具外部化任务状态。
04
权限设计就是 UX 设计
从 read-only 到 bypass-all 的信任光谱决定你能不能卖给企业
没有精细权限控制的 Agent 永远停留在 demo 阶段。团队共享 settings.json 白名单,让 npm test 这类安全命令自动运行,把真正危险的操作锁在 hook 门控后面。
05
记忆是产品功能,不是工程细节
用户留存与"Agent 是否记得我"高度相关
CLAUDE.md 的单一文件模式已被证明效果显著。6 层分层不是过度工程,而是最低要求。Auto-Memory 让 Agent 自己学习用户偏好,闭环持续改善。
06
模型越强,你的代码越少
如果每次模型升级你的 harness 变更复杂了,架构方向错了
Claude Code 在每次新模型发布后主动删系统提示。这是健康 Agent 架构的北极星:harness 随时间变薄,不是变厚。为当前最好的模型打造最佳体验,即使那意味着下次要推翻重写。

一句话总结整个架构:一个模型无关的 harness,给任何支持工具调用的 LLM 提供文件系统访问、Shell、分层记忆和声明式可扩展性——全部运行在一个受可组合权限约束的自主循环中。

// 适用范围:不只是 Coding Agent,任何 Customer Support Bot / Research Agent / Data Analysis Agent 都面对同样的 8 个失败模式
前沿参考系统: Claude Code OpenAI Agents SDK Google ADK LangGraph Persistence AutoGen 0.4 CrewAI Flows Mastra AI Composio MCP Model Context Protocol Gemini 2.5 Multi-Agent