← 全部文章

用 Claude Code 写 Agent:上下文应该流向哪里

2026-05-17#Agent578 字 · 约 1 分钟Read in English ↗

结论先行

写 Agent 的核心不是工具调用编排,而是决定每一步把"什么"塞进上下文。

已实测Agent

一句话结论

Agent 的瓶颈不是模型能力,是上下文管理。

写 Agent 前我以为难点是 tool calling 的编排,做完才意识到:模型每一步看到的"世界"由你决定,你给得太多它会迷失,给得太少它会臆造。

三个被反复验证的原则

  1. 每个步骤只见它需要见的:搜索结果不要原样喂回,先提取要点。
  2. 历史可压缩:上一轮的工具结果如果已经被用过,下一轮就总结成一句话。
  3. 失败信号要明确:模型重复犯错通常是因为它根本没意识到上一次失败了——把 error 显式写进上下文。
// 反例:把工具原始 JSON 全部塞回
messages.push({ role: 'tool', content: JSON.stringify(rawResult) })

// 正例:先压缩成 Agent 真正需要的信息
messages.push({
  role: 'tool',
  content: summarize(rawResult, { keep: ['id', 'title', 'status'] })
})

一个反直觉的发现

给 Agent 看自己的 reasoning,效果远不如给它看 reasoning 的结果。

让模型每步输出思考过程是流行做法,但把这些思考链全部留在上下文里,会让后续步骤被前面的"自我说服"绑架。我的做法是:thinking 用完即丢,只保留最终决策。

Agent 写得好,本质上是上下文设计师做得好。

这篇对你有用吗?

如果这篇文章对你有帮助,可以请博主喝杯咖啡 ☕