首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >深度解析 AI 编程 Agent 的六大核心组件

深度解析 AI 编程 Agent 的六大核心组件

作者头像
阿特拉斯
发布2026-06-15 17:54:13
发布2026-06-15 17:54:13
1790
举报

为什么 Claude Code、Codex CLI 比直接用聊天界面强大得多?答案藏在 Agent 架构里。

引言

你有没有好奇过:为什么 Claude Code 或 Codex CLI 用起来比在聊天界面中直接用同样的模型要强大得多?

很多人直觉上认为这是因为“模型更好”或“有特殊优化”。但 Sebastian Raschka 博士在最新文章中指出:真正的差异在于 Agent Harness,也就是围绕模型的软件框架。

Raschka 是《Build a Large Language Model From Scratch》和《Build a Reasoning Model From Scratch》两本书的作者。这篇文章把编程 Agent 的核心架构拆得比较清楚,拿来理解 Claude Code、Codex CLI 这类工具很合适。

一、核心概念:LLM、推理模型与 Agent

在深入技术细节前,先厘清几个容易混淆的概念:

1. LLM(大语言模型)

核心的“下一词预测”引擎。它是所有智能体系统的发动机。

2. 推理模型

仍是 LLM,但经过特殊训练,会在推理时花更多计算资源做中间推理、验证和搜索。可以理解为升级版引擎,更强,也更贵。

3. Agent(智能体)

在模型之上的控制层。给定目标后,Agent 决定:

• 下一步检查什么

• 调用哪些工具

• 如何更新状态

• 何时停止

4. Agent Harness

围绕 Agent 的软件脚手架,负责管理上下文、工具使用、提示词、状态和控制流。

5. Coding Harness

Agent Harness 的特化版本,专门针对软件工程任务:管理代码上下文、工具、执行和迭代反馈。

概念关系图
概念关系图

二、一个形象的比喻

Raschka 用了一个形象的比喻:

LLM 像汽车引擎

推理模型 像升级版引擎,更强但更费油

Agent Harness 像驾驶系统,帮你把车真正开起来

这个比喻不完美,LLM 也可以独立使用,但它有一个点很准确:模型决定“能跑多快”,Harness 决定“能开多远”。

更关键的是,在现在各大模型能力逐渐拉近的背景下,Harness 往往是决定体验差异的关键因素。 Raschka 甚至推测:如果把 GLM-5 放进类似 Claude Code 的 Harness 里,它的实际体验很可能不输给 GPT-5.4。

三、编程 Agent 的六大核心组件

Raschka 将编程 Agent 拆解为六个核心组件:

六大组件总览
六大组件总览

组件一:实时代码库上下文

这是最显而易见,也最重要的一层。

当用户说“修复测试”时,模型需要知道:

• 这是不是一个 Git 仓库

• 当前在哪个分支

• 项目有什么结构

• 有没有 AGENTS.mdREADME 说明

为什么重要?

“修复测试”不是自包含的指令。如果 Agent 看到了项目文档,就能知道运行哪个测试命令。如果知道仓库布局,就能在正确位置查找,而不是瞎猜。

实现要点通常是:

• 在开始工作前先收集一组稳定事实

• 包含 Git 状态、分支、最近提交

• 这些信息不要每次都从零重建

组件二:提示词形状与缓存复用

编程会话通常是重复性的:

• Agent 规则基本不变

• 工具描述基本不变

• 工作区摘要基本不变

主要变化的是:

• 用户请求

• 对话历史

• 短期记忆

聪明的设计不会每次都重建一个巨大的提示词。

提示词与记忆分层
提示词与记忆分层

核心洞见是:收集仓库事实,和打包缓存事实,是两个独立步骤。

组件三:工具访问与使用

这是从“聊天”变成“智能体”的关键。

普通模型只能用自然语言建议命令。编程 Agent 则会:

• 实际执行命令

• 获取结果

• 将结果反馈到下一轮推理

但也不是让模型放飞自我。实际流程更接近这样:

工具调用流程
工具调用流程

安全边界一般包括:

• 预定义的允许工具列表

• 路径检查,只在仓库内操作

• 用户审批机制

这些边界看起来像限制,真正作用是提高可靠性和可用性。

组件四:最小化上下文膨胀

上下文膨胀是 LLM 的通病,编程 Agent 尤其严重:

• 重复的文件读取

• 冗长的工具输出

• 大量日志信息

如果保留所有内容,很快就会耗尽上下文窗口。

原文这里总结了两种核心压缩策略:

• 截断:缩短长文档、截断大输出、压缩记忆笔记

• 对话压缩:将历史转为摘要,保持最近事件更详细

额外技巧包括:

• 对旧文件读取去重,避免重复看到同一内容

• 保持最近事件更详细

• 对旧事件做更激进的压缩

原文这里有一句话很值得记:很多看似的模型能力问题,本质上是上下文质量问题。

组件五:结构化会话记忆

这一层和上一组件紧密相关,但关注点不同。

压缩对话历史与工作记忆
压缩对话历史与工作记忆

两层状态管理可以概括成:

• 完整对话记录:存储所有请求、输出、响应,只追加,不修改,支持会话恢复

• 工作记忆:小型、精炼的状态,记录当前任务、重要文件、最近笔记,会被修改和压缩

组件六:委托与有界子智能体

为什么要委托?

• 并行化子任务

• 避免单一循环承载所有工作

• 例如查找符号、检查配置、诊断测试失败

核心挑战是:如何绑定子智能体。

子智能体需要继承足够上下文才能工作,但必须有边界:

• 只读模式:子智能体不能修改文件

• 递归深度:限制子智能体再启动子智能体

• 工作范围:限制操作的目录或文件

原文对这里的总结是:继承足够上下文才能有用,但约束边界防止失控。

四、完整架构总览

把这六个组件整合起来,大致是这样一层结构:

完整架构图
完整架构图

这个总览图最重要的地方在于,它把 harness 放在了模型外面一整层。 也就是说,用户请求不是直接丢给模型,而是先经过:

• 代码库上下文

• 稳定提示词前缀

• 工具访问与使用

• 上下文管理

• 会话记忆

• 子智能体委托

最后才进到 LLM 或推理模型。

五、编程 Agent vs 通用 Agent 平台

Raschka 还对比了编程 Agent(如 Claude Code)与通用 Agent 平台(如 OpenClaw):

编程 Agent 与通用 Agent 平台
编程 Agent 与通用 Agent 平台

核心差异是:

• 编程 Agent 优化的是“一个人在仓库中工作”的场景

• OpenClaw 优化的是“跨多个聊天、通道、工作区运行多个长期 Agent”

编程只是其中一种工作负载。

六、核心洞见总结

1. 模型不是全部

在很多实际应用里,围绕模型的系统和模型本身同样重要。这也是为什么同样的模型放进 Claude Code 后,体验会和聊天界面差很多。

2. Harness 是差异化因素

在模型能力逐渐拉近的情况下,Agent Harness 往往就是体验差异的来源。一个设计良好的 Harness,可以让模型的能力更稳定地落出来。

3. 上下文质量 = 模型表现

很多看起来像模型能力的问题,最后都会落到上下文质量。

4. 边界即自由

预定义工具、路径检查、审批机制这些边界,看起来像限制,实际会提高可靠性和实用性。

七、实践建议

如果你想构建自己的编程 Agent,或者想理解现有系统:

• 从最小实现开始

• 重视上下文管理

• 工具设计要有边界

• 会话记忆要分层

• 提示词缓存尽量复用

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2026-04-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 超级AI技术 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 引言
  • 一、核心概念:LLM、推理模型与 Agent
    • 1. LLM(大语言模型)
    • 2. 推理模型
    • 3. Agent(智能体)
    • 4. Agent Harness
    • 5. Coding Harness
  • 二、一个形象的比喻
  • 三、编程 Agent 的六大核心组件
    • 组件一:实时代码库上下文
    • 组件二:提示词形状与缓存复用
    • 组件三:工具访问与使用
    • 组件四:最小化上下文膨胀
    • 组件五:结构化会话记忆
    • 组件六:委托与有界子智能体
  • 四、完整架构总览
  • 五、编程 Agent vs 通用 Agent 平台
  • 六、核心洞见总结
    • 1. 模型不是全部
    • 2. Harness 是差异化因素
    • 3. 上下文质量 = 模型表现
    • 4. 边界即自由
  • 七、实践建议
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档