事件概要

机器学习研究员兼作家 Sebastian Raschka 发布了一篇关于编码 Agent 架构的详细参考文章,面向其 Build a Large Language Model (From Scratch)Build a Large Reasoning Model (From Scratch) 书籍 的读者。该文章聚焦于六个核心构建模块,这些模块将编码 Agent 与普通 LLM 聊天界面区分开来,以 Claude Code 和 OpenAI 的 Codex CLI 作为主要案例。

核心论点:Claude Code 等工具之所以比原始模型访问更强大,并非因为底层模型 不同,而是因为周围系统——Raschka 称之为「Agentic Harness」——处理了代码仓库上下文、工具调用、提示缓存稳定性、记忆和长会话连续 性。

技术深度解析

LLM vs. 推理模型 vs. Agent

Raschka 提出了一个三层区分概念,而从业者经常将其混 为一谈:

  • LLM:核心的下一个 Token 预测模型(如 GPT-4o、Claude 3.5 Sonnet)
  • 推理模型:经过微调或 提示的 LLM,在输出最终答案前生成扩展的思维链追踪(如 o3、支持扩展思考的 Claude 3.7 Sonnet)
  • Agent:任何模型类型都 通过应用层进行封装,实现工具调用、上下文管理和记忆功能

这种框架对基准测试至关重要。当 SWE-bench 分数 被报告时,该数字反映的是完整的 Agent 技术栈,而非孤立的模型能力。一个较弱模型配合精心 设计的 Harness,其表现可以优于直接查询的较强模型。

六大构建模块

虽然完整 文章详述了所有六个组件,但 Raschka 识别的结构类别映射到标准 Agent 设计模式:

  • 代码仓库上下文管理:编码 Agent 必须高效地将相关文件内容加载到上下文窗口中,同时不超过 Token 限制。这通常涉及对本地代码库的检索,而非简单的全 文件注入。
  • 工具设计:Agent 暴露离散工具——文件读写、Shell 执行、 测试运行器——LLM 可通过结构化输出调用这些工具。例如,Claude Code 使用 bash 工具和文件编辑工具作为主要原语。
  • 提示缓存稳定性: 为了成本和延迟,系统提示和静态上下文必须在各个轮次间保持字节级一致,以命中 Anthropic 或 OpenAI 的提示缓存层。动态内容追加在末尾。
  • 记忆:区分临时上下文内记忆与持久存储(如 CLAUDE.md 文件或向量存储),后者可在会话重置后存活。
  • 长会话连续性:管理多小时会话中的上下文窗口增长,包括 窗口填满时的摘要或压缩策略。
  • 推理行为:决定是使用快速非思考模型进行工具调用,使用较 慢的推理模型进行规划步骤,还是两者使用统一模型。

Agentic Harness 模式

Raschka 描述的 Harness 模式是一个循环:LLM 接收任务,输出工具调用或最终答案,Harness 执行工具并将结果追加到上下文,然后循环重复 。用伪代码的最小实现如下:

while not done:     response = llm.complete(messages)     if response.tool_calls:         for call in response.tool_calls:             result = execute_tool(call)              messages.append(tool_result(result))     else:         done = True         return response.content

Claude Code 和 Codex CLI 都实现了这个循环,但在上下文压缩、破坏性工具调用的权限控制 以及终端流式输出方面添加了大量工程工作。

适用人群

这篇文章与 三类人群直接相关。构建内部编码工具的工程师会发现组件分解对规划哪些需要 实现、哪些委托给托管 Agent 非常有用。评估 Agent 框架的 ML 从业者(Lang Graph、OpenAI Agents SDK、smolagents)将受益于理解每个框架处理哪些组件,以及哪些仍由开发者负责。在 Claude Code、Codex CLI、Cursor 或 Devin 之间做选择的技术负责人可以使用六组件框架作为评估标准,而非仅 依赖基准分数。

这篇文章明确定位为参考文档,意味着它被设计为可反复查阅,而非仅阅读一次。

本周行动建议
  • 如果你正在评估 Claude Code 或 Codex CLI,请审计每个工具对六个组件暴露了哪些可自定义项 。Claude Code 支持 CLAUDE.md 文件用于持久记忆;检查你的代码库是否配置了此文件。
  • 如果你正在构建 Agent,请使用 Anthropic 或 OpenAI 的使用量仪表板分析你的提示缓存命中率。长的系统提示上的缓存未命中可能使每 轮成本增加 3-5 倍。
  • 阅读 Raschka 的完整文章,网址为 magazine.sebastianraschka.com,获取完整的六组件分解,特别是源 摘录中截断的工具设计和推理模型集成部分。
  • 如果你使用 LangGraph 或 OpenAI Agents SDK,请将六个 组件中的每一个映射到框架的抽象,以识别你的生产代码必须手动填补的空白。