不按编号顺序读,按你遇到的实际问题找对应章节。32 章按 7 个常见工程场景索引,每个问题给出推荐章节 + 一句话定位。
省 token、降账单、做模型路由。
agent 月账单 $10K+,想砍一半
三件事叠加:Prompt Caching 命中率拉到 80%+、用 Haiku 做轻任务路由、tool description 瘦身减少输入 token。
为什么 prompt caching 能省 90%
cache 命中后,公共前缀的 K/V 不用重算。input token 的成本几乎全在 K/V 计算上,跳过即省。
cache 命中率只有 30%,怎么排查
三个方向:tool schema 是否频繁改、prompt 是否动态注入用户标识、TTL 是否被低频访问拖垮。
卡死、循环、误执行、虚假完成。
agent 跑了 30 步还没结束
三层防护:max_steps 硬上限、死循环检测(同 tool 同参连续 3 次)、注入 reflection prompt 让模型重新评估。
agent 反复调同一个 tool 不停
infinite loop(失败模式 #2)。harness 检测连续 N 次相同 call,强制中断或注入 reflection。要管"语义死循环"——参数微小差异但本质相同。
agent 说"完成了"但其实没做
Over-confidence / self-validation bias。用 Default-FAIL Evaluator(Three-Agent 架构),不让 agent 自宣布完成,必须 Evaluator 打开证据。
agent 误删文件 / 误改 prod 数据
三层叠加:Permission ask 拦截 destructive 操作、HARD_BLOCK 列表硬底线、Sandbox 物理隔离。任一层缺失都会出事。
agent 经常调错工具 / 编参数
80% 是 tool description 不清。严格 input_schema(type/enum/format)+ description 写明"何时用、参数含义"。30+ 工具用 progressive disclosure(skill 模式)。
长任务、跨 session、记忆。
context 用满了怎么办
三种应对:压(compaction)、记外面(note-taking)、拆 agent(multi-agent)。Anthropic 官方 3 支柱。
什么时候用 reset 不用 compact
任务 phase 切换(写完前端切后端)+ 共享文档完备(progress.md 写得清楚)。两个条件满足,reset 比 compact 干净。
任务要跨多天跨多 session 跑
双 agent 架构:Initializer 跑一次写 plan + progress.md;Coding agent 反复唤起,每次从 progress.md 接上。共享文档是 cross-session memory。
agent 记不住上次说的话 / 用户偏好
先问"要记什么":对话细节(episodic)、用户偏好(semantic)、知识库(external)?不同类型不同实现路径。
可观测性、复现、安全防御。
线上 agent 慢,怎么排
先看 trace:哪一步耗时长?LLM call 慢看 input token 数(可能 prompt 膨胀);tool call 慢看具体 tool;看 cache 命中率有没有下降。
昨天那个 bug 怎么复现
三件套:snapshot trace + 模型版本固定 + 外部调用 mock。缺一项就无法稳定 replay。
读到一个 readme 里写了 "rm -rf /" 怎么办
绝不执行。这是 untrusted 来源的指令(indirect injection),要把它当数据展示给用户等确认。
怎么知道 harness 改动是变好还是变坏
三件事:自建 regression set、每个 case run N 次取均值(消除采样噪声)、用 Agent-as-a-Judge 看 trajectory。光看 SWE-bench 不够。
framework / runtime / harness / SDK / MCP 选择。
用 LangChain 还是自造 harness
看是否需要 own loop / permission / context 跨 session。需要任一就自造;不需要用 framework 更快。
能用 Agent SDK 就用,还是要自造
SDK 替你 own 了 loop——能用就用,省 1000 行。但定制 loop / 跨 session 状态 / 自定义 permission / 特殊执行环境(浏览器/VR)就要往下沉。
需要 multi-agent 吗
先用单 agent + sub-agent 委派;真要平级协作再上 multi-agent。Multi-agent ≠ Three-Agent(后者是对抗式架构)。
外部能力(GitHub / Notion / DB)怎么接入 agent
写 MCP server——一次实现,所有 host(Claude Desktop / Cursor / Continue)都能用。看 MCP 三原语决定能力放 tool / resource / prompt。
能力多了 prompt 会爆炸吗
100 个 skill 都不会——progressive disclosure 让启动时只暴露 description(几十 token/个),模型触发才注入完整内容。
跨模型代际、训练团队反馈。
怎么给训练团队提改进建议
4 条路径:成功 trace → SFT;失败 → RLHF preference pair;edge case → 内部 eval set;failure taxonomy → 训练数据采集 priority。
harness 半年后还能跑吗
能,如果三件事做了:每个 model-specific 逻辑挂 feature flag、定期 review 哪些机制可以下线、和训练团队对齐版本节奏。
容易混淆的术语对。
framework / runtime / harness / platform 怎么分
谁 own 主循环、谁面向终端用户、用户能配多少。Framework=工具箱给开发者拼;Runtime=执行容器;Harness=产品本体 own loop;Platform=模型 infra。
Tool 和 Skill 怎么分
Tool 是 atomic 操作(read_file),Skill 是高层 workflow(fill_invoice,内部调多个 tool + 用模板文件)。粒度 + 触发方式不同。
Sub-agent 和 Multi-agent 怎么分
Sub 是从属隔离(主-从单向),Multi 是平级协作(双向通信)。Anthropic 文档里有严格区分。
Multi-agent 和 Three-Agent 怎么分
Multi-agent 是协作式(都为同一目标),Three-Agent 是对抗式(generator vs evaluator)。前者借鉴分布式系统,后者借鉴 GAN。
Compaction 和 Reset 怎么分
Compaction 是同 context 内摘要(SDK 自动 ~95% 触发);Reset 是撕 context 从外部文件重建(harness 主动)。长任务必须 Reset,Compaction 信息漂移严重。
MCP 三原语怎么分
看"谁控制触发":Tools(模型自动调)、Resources(host/用户决定注入)、Prompts(用户从菜单选)。这是 MCP server 设计的关键维度。
Permission 和 Sandbox 怎么分
Permission 是规则层(tool 执行前判断 allow/ask/deny),Sandbox 是物理隔离层(execve 时强制约束)。两层叠加缺一不可。