只管插件加载、卸载与依赖,不承载具体 Agent 能力。
先说结论:它不是一个固定的 Agent,而是一台“可换零件的 Agent 运行机”
DeepSeek Harness 的架构主轴是:Cordis 插件树负责组装,Agent Loop 负责推进,Session Event Log 负责记忆与回放,Capability Seams 负责替换模型、工具、沙箱和 UI。它把传统 Agent 框架里写死的能力拆成插件,通过服务、事件和配置叠层组合成不同运行形态。
模型可见内容、工具调用、轮次与步骤都从同一事件流派生。
标准、PTC、极简、创造模式,本质是不同插件组合。
核心 API 仍快速演进,官方明确提示会有破坏性变更。
查看范围与证据边界
本报告于 2026-08-23 只读取证。查看了官网首页、官方 Quickstart、数据处理说明、安全政策、GitHub README、仓库架构文档、会话/工具/Agent/LLM/API Gateway 子系统文档与根目录 package.json。未实际安装或运行 Harness,未触发模型调用、工具执行和插件安装。
直接可见
产品定位、入口、运行模式、配置组合、核心包职责、事件域、轮次流程、Session 事件结构、本地优先与安全建议。
基于公开实现推导
架构优势、复杂度迁移、企业落地阻力、插件生态治理重点与运维观测压力。
本轮没有验证
真实运行性能、并发上限、长会话存储成本、插件兼容性、故障注入表现、各操作系统沙箱强度。
核心来源:官网 · 架构文档 · Quickstart · GitHub 仓库
六个核心功能域
从产品视角看,DeepSeek Harness 不是“聊天 + 工具”两层结构,而是六个互相咬合的域。
01 运行时组装域
对象:Profile、Bundle、Patch、Plugin Tree。
作用:从空树开始叠加 dsh-base、Web/Headless 组合包、用户 patch 与命令行 overlay,得到本次真正启动的配置树。E-006
02 Agent 执行域
对象:Agent、Inbox、Turn、Step、Agent Loop。
作用:领取输入、组装请求、调用模型、执行工具、判断是否继续下一步或结束轮次。E-008
03 能力插件域
对象:模型适配器、工具、Skills、沙箱、终端、文件系统、子 Agent、Goals、Jobs。
作用:用 Service Definition / Provider / Consumer 三角色构成可替换 seam。E-010
04 会话与轨迹域
对象:SessionEvent、RequestHeader、Message Surface、Trajectory。
作用:以仅追加日志记录模型所见与执行事实,并支持派生历史、回放、恢复和分叉。E-003E-011
05 交互与接入域
对象:Web UI、Headless Runner、CLI、Python SDK、Client Connection、Remote API。
作用:把同一运行时能力暴露给浏览器、命令行与自动化调用方。E-005E-012
06 治理与执行环境域
对象:Workspace、Approval Policy、Sandbox、Credentials、Telemetry、Persistence。
作用:限定 Agent 能看什么、做什么、在哪执行、如何持久化与审计。E-005E-013E-014
一条任务如何穿过 Harness
以下主链把用户交互、控制流、工具流、状态流和产物流放在一起。关键分界是:配置先决定“这次有哪些能力”,事件流再记录“这些能力具体做了什么”。
-
01启动与组装
E-006 · 配置流dsh web选择 Web profile;Bundle、profile patch、home patch 和--patch按顺序叠加,形成插件树。 -
02依赖就绪
Cordis 按依赖加载插件;插件向共享
E-002 / E-010 · 控制流ctx注册服务、事件监听与副作用,卸载时撤销。 -
03用户准备环境
在 Web UI 配置模型、选择 workspace;未选工作区时输入框不可用。模型路由可即时生效。
E-005 · 用户交互流 -
04输入进入 Inbox
新消息唤醒 Agent Loop,先写入
E-008 · 状态流turn/start,再领取下一步输入和一条排队消息。 -
05构造模型请求
E-007 / E-011 · 上下文流agent/pre-step可改写或拒绝输入;系统提示词片段与工具 schema 被组装,请求头与路由上下文写入日志。 -
06模型流式输出
E-008 / E-009 · 模型流agent/request → llm/stream,原始 chunk 与组装后的 assistant message 依次落为持久事件。 -
07工具受控执行
工具调用进入
E-005 / E-008 / E-010 · 动作流pre-execute → execute → post-execute流水线;权限策略可要求人工审批,沙箱/文件系统/终端提供方决定实际执行世界。 -
08继续或收束
工具若仍欠一次请求,或 Inbox 收到新输入,则进入下一 Step;否则
E-008 · 状态机agent/turn-stopping → turn/end。 -
09展示、恢复与复用
UI/Trajectory 从同一 Session Event Log 渲染;恢复、fork、transcript、遥测和持久化都从事件流派生。
E-003 / E-009 · 资产与观察流
分层架构:从界面一路拆到执行世界
核心数据不是“聊天记录”,而是可重建运行的事件账本
SessionEvent 是完整交互历史的唯一真源。模型历史并不另存一份,而是从日志派生;请求配置、系统提示词、工具 schema、模型路由、原始流片段、工具调用与结果都能被定位到具体 Turn / Step。
| 核心实体 | 公开语义 | 关键关系 | 事实等级 |
|---|---|---|---|
| Profile | 具名运行时组装 | 按序引用多个 Bundle,并拥有个人 patch | 已确认 E-006 |
| Plugin | 导出 apply(ctx) 的能力单元 | 注册 Service、Event Listener、Effect;可声明依赖 | 已确认 E-001 / E-010 |
| Agent | 活跃执行实例 | 拥有作用域 Context、Inbox、Step 与状态 | 已确认 E-007 / E-008 |
| Session | 仅追加事件日志 | 包含多个 Turn;可恢复、fork、回放 | 已确认 E-009 / E-011 |
| Turn | 从领取输入到不再欠工作 | 包含 0..N 个 Step | 已确认 E-008 |
| Step | 一次模型请求及其要求的工具调用 | 属于一个 Turn,产出 message 与 tool events | 已确认 E-008 |
| RequestHeader | 可重建的请求信封 | 记录模型调用配置、系统提示词与工具 schema | 已确认 E-011 |
| ToolCall / Result | 动作请求与模型可见结果 | 以 callId 成对,经过执行流水线 | 已确认 E-008 / E-011 |
| Workspace | Agent 文件系统工作根 | Web UI 启动任务前必须选中 | 已确认 E-005 |
| Approval / Sandbox | 高风险动作的人机门与执行约束 | 约束工具和子进程,不应只靠 Prompt | 已确认 E-005 / E-010 |
产品全景架构主图
主图同时画出组件、调用、配置、事件、状态与失败门。实线为官方文档明确关系;虚线为基于公开结构的归纳。
当前架构:四个强点,三个代价
强点
能力可替换,不需改主干
模型、工具、沙箱、存储、循环、调度与 UI 都能由插件提供;Profile 与 Patch 负责组装。
运行可重建
请求头、模型可见上下文、消息、工具调用和结果进入同一日志,减少“UI 显示一套、模型实际看了另一套”的黑箱。
扩展点有明确归属
持久事实用 Session Events;活跃工作用 Agent Events;能力策略用 fs/tools/telemetry 等事件域。
本地优先,治理点可插拔
默认本地处理与存储,同时把 sandbox、approval、credentials、telemetry 作为独立能力装配。
代价
复杂度从源码迁到配置图
插件越多,排查“到底加载了谁、谁覆盖了谁”越重要;--dump-config 会成为基本运维能力。
事件契约是新耦合点
插件虽然松耦合,但都依赖服务键、事件顺序、waterfall 的 next() 传递以及可重建性不变量。
预览期兼容风险高
官方明确表示核心插件和基础 API 会持续迭代,并会出现破坏兼容性的变更。
如果拿去做企业级 Agent 平台,优先补的不是“更多插件”
现有架构已经给了可插拔点。企业化更需要把“能组合”升级为“可治理地组合”。
插件供应链与兼容矩阵
为 Plugin / Bundle 增加签名、来源、权限声明、依赖锁定、版本兼容和回滚策略;开发者预览阶段尤其需要。
Profile 变更的可视化 Diff
把最终配置树、覆盖来源、服务提供方和事件监听顺序做成可读视图,降低配置叠层的排障成本。
策略即代码的审批与沙箱基线
围绕工具类别、路径、网络域、命令风险和数据敏感度定义强制策略,不让安全只停留在 Prompt 与用户自觉。
长会话成本与数据保留
为 append-only 日志建立分层存储、压缩、脱敏、保留期与可验证删除策略,同时保住回放与审计能力。
运行级质量门
把“任务完成”拆为模型声明、工具结果、文件/测试/业务状态验证三个层级,并在 Trajectory 中显示证据。
架构风险排序
| 优先级 | 风险 | 触发机制 | 影响 | 证据强度 | 建议检测/控制 |
|---|---|---|---|---|---|
| P0 | 不可信插件获得高权限 | 插件可以注册工具、事件与执行环境能力 | 本地文件、进程、凭据与网络暴露 | 已确认 E-014 | 来源签名、权限清单、隔离运行、默认拒绝高风险能力 |
| P0 | 提示注入穿透到工具执行 | Agent 会读取外部内容并代表用户执行操作 | 误删、泄露、越权动作 | 已确认 E-014 | 内容与指令分层、工具策略门、敏感操作人工确认 |
| P1 | 配置叠层漂移 | Bundle + 多级 patch + overlay 覆盖 | 环境间行为不一致、难复现 | 合理推断 E-006 | 锁定 Profile 快照、展示来源 Diff、运行记录绑定配置摘要 |
| P1 | API / 插件兼容性断裂 | 开发者预览期快速迭代 | 第三方插件升级后失效 | 已确认 E-016 | 能力版本协商、兼容测试矩阵、灰度更新与回滚 |
| P1 | 事件日志增长与敏感数据沉积 | 模型所见与工具结果均进入仅追加日志 | 存储成本、隐私与删除困难 | 合理推断 E-009 / E-013 | 保留策略、字段级脱敏、压缩归档、租户密钥与删除证明 |
| P2 | 拦截器顺序造成隐性行为 | waterfall 事件依赖监听器调用 next() | 请求被改写、短路或策略绕过 | 合理推断 E-008 | 事件链可视化、顺序单测、短路原因强制落日志 |
| P2 | 外部 Provider / MCP 数据外传 | 用户可配置外部模型、网络工具、MCP 和插件 | 数据离开本地边界 | 已确认 E-013 | 出站域白名单、数据分类、调用前提示、可审计连接清单 |
架构组件—证据追溯表
| 编号 | 来源 | 页面/位置 | 支持结论 | 等级 |
|---|---|---|---|---|
| E-001 | Harness 官网 | 首屏与“设计思路” | 模型、工具、技能、会话、沙箱、存储、循环、调度、UI 均由插件提供,通过 Cordis 服务与事件协作 | 已确认 |
| E-002 | Harness 官网 | “Cordis 内核” | Cordis 只负责插件加载、卸载和依赖,不承载具体 Agent 能力 | 已确认 |
| E-003 | Harness 官网 | “每一次运行都有迹可循” | 系统提示词、思维链、工具调用与结果、子 Agent 调度、上下文注入写入仅追加会话日志;Trajectory 支持来源查看 | 已确认 |
| E-004 | Harness 官网 | “多种运行模式” | 标准、PTC、极简、创造四种模式及其工具边界 | 已确认 |
| E-005 | 官方 Quickstart | 配置模型 / 选择工作区 / 运行任务 | 模型路由即时可用;workspace 是任务前置;Agent 可读写文件、运行命令、委派、维护计划;策略需要时先询问审批 | 已确认 |
| E-006 | 官方架构文档 | Profile 与组合包 | 运行实例是插件树;Bundle、profile patch、home patch、--patch 按序叠加 | 已确认 |
| E-007 | 官方架构文档 | 核心包 | session、system-prompt、tools、agent、agent-loop、scope、llm 的职责与 ctx 键 | 已确认 |
| E-008 | 官方架构文档 | 事件 / 轮次流程 | Session、Agent、Capability 三类事件域,以及 turn/step/model/tool 的完整流转 | 已确认 |
| E-009 | 官方架构文档 | 会话日志 | 模型可见即已记录;历史、fork、恢复、transcript、遥测和持久化从事件流派生 | 已确认 |
| E-010 | 官方架构文档 | 能力 seam / 新行为归属 | Seam 的 Definition、Provider、Consumer 三角色,以及模型、工具、shell、sandbox、UI 等扩展点 | 已确认 |
| E-011 | Session 子系统文档 | SessionEventMap / RequestHeader | 仅追加事件词汇、消息 surface、请求信封、路由上下文与 callId 配对 | 已确认 |
| E-012 | API Gateway 文档 | 组件职责 / 运行时调用 | Host/Client Remote、严格描述符与 schema、Connection carrier、RPC 信任边界 | 已确认 |
| E-013 | 数据处理说明 | 全文 | 产品本地优先;默认本地处理与存储;外部模型、网络工具、MCP、插件可能向外部服务传输数据 | 已确认 |
| E-014 | 安全使用政策 | 安全建议 | 建议 VM/容器、有限权限、人工确认、可信插件与防提示注入 | 已确认 |
| E-015 | 根 package.json | engines / workspaces / scripts | Node 版本边界、TypeScript/pnpm monorepo、Host/Client/Web 构建与测试门 | 已确认 |
| E-016 | 官方 README | 开发者预览 | 当前处于开发者预览,快速迭代,未来会有破坏兼容性的变更 | 已确认 |
仍然未知,不能从文档硬猜
性能与规模
没有跑基准,不能确认并发 Agent 数、事件写入吞吐、长会话恢复时延与 Web UI 大轨迹渲染上限。
默认持久化实现
公开架构确认存在持久化 seam,但本轮未逐个验证 profile 实际选用的后端、压缩与保留策略。
跨平台沙箱等价性
能确认 sandbox 是可替换后端,不能确认 macOS、Windows、Linux 在默认 profile 下提供相同隔离强度。
插件市场治理
能看到社区插件入口,未看到完整的审核、签名、恶意撤回、评分和兼容性认证机制。