荣耀文档
80.56M · 2026-04-14
Claude Code 是一个纯本地运行、深度集成于终端的 AI 智能体应用。它的源码结构(特别是 src/ 目录下)清晰地展示了 Anthropic 在构建生产级 Agent 时的工程化思考。
QueryEngine 是整个 Agent 的大脑和心脏(核心代码位于 QueryEngine.ts 和 query.ts)。
针对大语言模型(LLM)的 Context Window 和 Token 成本,Claude Code 设计了一套非常精细的管理机制:
SYSTEM_PROMPT_DYNAMIC_BOUNDARY)。静态层可以跨会话被缓存(命中 Anthropic 的 Prompt Caching),极大降低了高频调用的延迟和成本。src/memdir/),Agent 可以把重要的项目背景、规范记录到特定的记忆目录中,避免每次启动都要重新探索。FileReadTool、FileEditTool、GlobTool、GrepTool 等)。值得注意的是,它没有用一个笼统的“执行命令”工具包打天下,而是将不同意图拆分为高内聚的单一工具。src/services/mcp/)。这使得 Claude Code 可以不修改核心代码,通过标准化协议直接挂载外部数据库、API 或者其他工具集。exploreAgent,分治解决后再汇总结果。React Ink 构建的 CLI 界面(src/ink/ 与 src/components/),让纯文本的终端具备了流式输出、进度条更新、组件级局部刷新的能力。极大地缓解了 Agent 执行长耗时任务时的“黑盒焦虑”。不要再把所有历史记录“傻傻地”塞给大模型
autoCompact 的滑动窗口总结机制。不仅要总结用户的意图,还要把中间那些失败的 Tool Calls、冗长的报错堆栈“折叠”起来。全面拥抱 MCP 协议(放弃硬编码集成)
工程化的细粒度工具链
replace 工具。Claude Code 的工具粒度非常细(精确到 Grep 搜索和 AST 级别的编辑)。工具的精细度和容错率,决定了 Agent 的落地能力上限。任务的分治与 Sub-Agent 模式
AgentTool,在主循环中遇到“探索代码库”、“调试特定 bug”等子任务时,派发给一个隔离了上下文的子 Agent(甚至使用更便宜的模型),只把最终结果返回给主进程。交互即正义:透明的思考与执行过程
如果您是一家普通的 AI Agent 创业公司,希望最快复刻或借鉴这套架构,请遵循以下三步落地路径:
streamText 和原生的 tools 字段。@modelcontextprotocol/sdk。让你的系统只需要两步:连接用户的 MCP Server -> 将工具 Schema 注入给大模型。@clack/prompts 或 Ink;如果做 Web,使用 Next.js 的原生流式 UI。cache_control 标记。tiktoken 估算),一旦超过阈值(如 20k tokens),立刻开一个后台子线程,用一个小模型将最早的 N 轮对话和中间的废弃试错总结为一段简要记录,替换掉原始长文本。search_files (Glob), search_code (Grep), read_file (按行/分页读取), edit_file (基于块替换,坚决不要让 LLM 重写整个文件)。Spawn_Sub_Agent 工具,传入目标和独立上下文,阻塞主进程等待结果返回。.agent_memory/)。每次长周期任务结束后,强制大模型总结“这个项目的架构特点或踩坑记录”并写入该目录。下次启动时,自动读取这些文件并注入 System Prompt。总结:不要陷入重复造轮子(手写 API 对接、写死板的提示词)的泥潭。“基于 MCP 构建标准化扩展底座 + 精细的 Token 上下文压缩管理 + 流式透明的交互 UI”,这是普通公司通往工业级 Agent 的最快、最稳妥的路径。