ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

DeepSeek Harness 架构拆解(三):Agent Loop 内部

DeepSeek Harness 架构拆解(三):Agent Loop 内部 先破一个误解很多人对 Agent 系统的想象是这样的一个大模型 一个聊天网页 Agent拆开 DeepSeek Harness 之后会发现这个理解漏掉了绝大部分东西。模型确实在里面但它只占一小块而且是最被动的那一块。DeepSeek Harness 不是模型外面套一个网页而是一套用插件组合出来的 Agent 运行系统。一个能干活的 Agent 系统至少要有这几层模型推理服务 上下文组装 工具执行环境 生命周期调度 可恢复的事件记录 人机交互界面这篇用最朴素的方式把这套系统的整体架构讲清楚。用一家公司来理解 DeepSeek HarnessDeepSeek Harness 的七个核心部件正好对应一家公司里的七个角色。记住这张表后面就都好懂了系统部件公司里的角色干什么Browser前台接待用户、展示结果Host公司本体掌握办公室、资源、权限、保险柜Model外聘顾问只出主意不亲自动手Agent Loop项目经理安排流程、来回传话、决定什么时候收工Session会议纪要唯一的事实记录谁说了什么都在这Plugin各个部门真正干活的能力单元Cordis人事行政招人、分配工位、离职时回收工牌下面逐个说每个只讲最关键的一点。Browser前台手上没有钥匙它是那个聊天网页——聊天框、文件面板、模型选择、审批弹窗。关键点前台不直接联系顾问不直接调用模型也没有保险柜钥匙拿不到 API Key 和本机文件权限。它只做两件事把用户意图递进去把结果显示出来。Host公司本体一切权力所在它是跑在你电脑上的那个进程握着所有实权工作目录、会话存储、模型凭据、文件和 Shell 能力、权限与沙箱。关键点Host ≠ Agent Loop。Host 是公司这个实体和它的信任边界Agent Loop 只是在里面上班的一个角色。同一套 Agent 核心换掉网页也能在无界面模式下跑。Model外聘顾问只动嘴不动手模型收到的是系统提示词 消息历史 可用工具清单 本次配置。它返回的是文本、推理内容或者结构化的工具调用。关键点模型不会亲自打开文件。read(path)不是模型读了文件而是模型提了一个请求请帮我读这个文件。真正去读的是系统不是模型。顾问说把三月份的账本拿来我看看跑腿的是行政不是顾问自己。Agent Loop项目经理负责来回跑它管着轮次Turn和步骤Step一个 Step 一次模型请求 这次响应要求执行的工具一个 Turn 可以包含很多个 Step它的核心逻辑简单到一句话能说完调用模型 → 如果模型要用工具就去执行 → 把执行结果交回给模型 → 模型不再要工具了收工关键点这个循环被刻意做得很小。这里的小不是代码少而是职责集中——重试、上下文压缩、权限、持久化、界面统统不写在循环里而是由插件挂在扩展点上参与。Session会议纪要唯一的事实来源这是最容易被误解的一块。Session不是一个聊天记录数组而是一条只能追加、不能修改的事件日志。里面记的东西比聊天多得多用户消息、模型输出的每个片段、完整回复、工具调用、工具结果、轮次和步骤的边界、权限事件……关键点模型看到的历史不等于 Session 本身而是从 Session 里投影出来的一个视图。同一份日志能投影出好几种不同的东西┌──→ 模型历史喂给模型的消息 Session 事件日志 ─┼──→ 聊天界面给人看的对话 唯一事实 ├──→ 执行轨迹给人排查问题用 └──→ 恢复状态断了能接着跑这四个不是四份各自独立的数据而是同一份账本的四种读法。Plugin干活的都是它模型适配器、工具、会话、循环本身、持久化、权限、沙箱、界面——全都是插件。插件能做的事提供服务、注册工具、监听事件、注册接口路由、注册界面区块以及卸载时把自己占的资源撤干净。Cordis人事行政不做业务决策它负责创建上下文、加载卸载插件、等待依赖就绪、查找服务、分发事件、回收资源。关键点是它不负责什么——这一条比它负责什么更重要Cordis 不做不选模型不决定要不要调工具不保存会话不执行 Shell不审批危险操作不渲染业务界面这些全是插件的活。人事部门不替业务部门做决定它只管让大家能各就各位地一起干活。一条消息怎么走完全程用户输入检查并修复登录模块系统内部会这样跑用户 │ 输入任务 ▼ Browser ──────────────► Host │ 进入待办队列 ▼ Agent Loop │ ┌───────────────────┼───────────────────┐ │ │ │ ▼ ▼ ▼ 写入 Session 组装请求发给模型 执行工具 (turn/step 开始) (提示词历史工具) (read/edit/test) │ │ │ │ ▼ │ │ 模型返回 tool-call ────────┘ │ │ │ ▼ │ 工具结果写回 Session │ │ │ ▼ │ 下一 Step 带着结果再问模型 │ │ │ ▼ │ 模型给出最终文本不再要工具 ▼ │ Session 追加事件 ◄──────┘ │ ▼ 推送给 Browser → 用户看到结果这里有六个关键点每一个都值得单独记住Browser 不直接调模型——它只把意图交给 HostHost 负责组装请求——提示词、历史、工具清单都是它拼的模型只提出工具调用——不亲自执行系统执行工具结果写进 Session下一次请求历史是从 Session 重新派生的——不是维护另一份隐藏记忆Browser 只展示 Host 推给它的投影三个最容易搞错的地方常见误解实际情况模型就是 Agent模型只是一项推理能力。Agent 还需要循环、工具、上下文、状态和执行边界Session 就是模型的上下文Session 是更细的权威记录模型上下文只是它的一个投影界面上打开的文件模型就看得到不会。没进入请求组装的东西模型根本不知道它存在还有一条设计原则特别值得单拎出来模型可见即已记录。任何进入过模型请求的信息都必须能从 Session 重建出来。这条原则的分量在于它杜绝了有一份模型看得到、但系统没记下来的隐藏状态。没有隐藏状态才谈得上可恢复、可回放、可审计。数据都存在哪一个容易被忽略但很实用的点存的东西位置用哪套组装配置配置档案目录会话日志会话目录普通设置设置文件凭据单独的凭据文件界面偏好草稿、面板宽度浏览器本地存储注意最后一行浏览器本地存的东西不是权威数据只是 UI 偏好。真正的事实全在 Host 这边。DeepSeek Harness 的两条设计哲学拆完一圈两句话可以概括整套设计第一每一部分都是插件。没有一个必须被所有人修改的特权核心。循环、模型、工具、权限、界面全是可以换掉的部件。这让同一套核心既能装成带网页的版本也能装成无界面的版本。第二只有一份事实。所有视图都从同一条事件日志投影出来而不是各自维护一份。这是能恢复、能回放、能排查的地基。下一篇《DeepSeek Harness 架构拆解二概念地图》会把 ReAct、Agent Loop、Harness、Loop Engineering 这几个总被混着用的词一个个区分开。它们经常被当成同义词但其实处在完全不同的层级上——搞混了架构讨论就会一直对不上频道。
返回列表