DHARNESS / UNPACKED
STAR ON GITHUB ★
SOURCE FIELD REPORT / RC.5

DeepSeek Harness
源码解构

当你在 Web 客户端发出一条消息,背后究竟发生了什么?从 Cordis 插件树到 Agent Loop,从持久事件日志到 UI 投影——沿真实源码还原一次完整运行。

0仓库文件
0K+TS / TSX 行
0Workspace 包
100%插件化
SCROLL TO DECOMPILE
00 / THESIS
“不存在需要打补丁的特权内核。”

Harness 最重要的设计不是又一个 Agent Loop,而是让模型适配器、工具注册表、会话日志,乃至循环本身都成为可挂载、可替换、可卸载的 Cordis 插件。

01

一切皆插件

能力通过共享上下文注册;插件卸载时,副作用随之撤销。

02

日志即真相

模型可见的输入必须可由 SessionEvent 日志完整重建。

03

Seam 可替换

接口、Provider 与 Consumer 分离,让本地能力可整体切换到远程沙箱。

01 / SYSTEM MAP

运行时是一棵
插件树

Profile 不是固定应用,而是一组按顺序叠加的组合包。点击节点查看它向运行时贡献了什么。

LLM · Tools · Session
Server · Client · RPC
Replace · Insert
Last-mile config
PACKAGE DIRECTORY

49 个领域 · 0 个包

02 / AGENT LOOP

一次消息的
完整旅程

Turn 可以包含多个 Step;每个 Step 都是一次模型请求及其工具调用。横向滚动,跟踪控制权的交接。

01INPUT

followup()

消息进入 Agent inbox,唤醒 driver。

agent/inbox/inserted
02PERSIST

Turn 开启

领取输入,并在会话日志写入边界。

turn/start
03ASSEMBLE

构造上下文

拼接提示词片段、工具 schema 与历史。

agent/pre-step
04STREAM

模型生成

流式 chunk 先落日志,再投影到 UI。

assistant/chunk*
05EXECUTE

工具批次

按屏障与滚动池调度,结果保持模型顺序。

tool/call → result
06SETTLE

继续或结束

仍欠工作则下一 Step,否则关闭 Turn。

turn/end
LIVE EVENT TRACE
01 / INPUT

消息进入 Inbox

03 / WEB CLIENT

UI 不是状态源
而是事件投影

浏览器端通过连接层驱动 Agent,并消费 session/event。原始 chunk 被保留,因此刷新、回放与流式 UI 可以共享同一事实源。

BROWSERTRANSPORTHOSTRUNTIME
apps/web

Vite 应用入口、静态资源、端到端测试

VIEW SHELL
packages/client/*

React 渲染、连接、布局、轨迹、主题、设置

CLIENT PLUGINS
webserver + sdk/jsonrpc

承载静态前端,跨边界传递命令与事件

BRIDGE
Agent + Session

活跃状态走 agent/*,可回放事实走 session/event

SOURCE OF TRUTH
USER INTENTAGENT INBOXSESSION EVENTSREACT NODES
04 / TOOL PIPELINE

工具调用不是
直接执行

权限、沙箱、超时、守卫和结果重写都作为瀑布事件插入流水线,不必侵入工具实现。

MODEL-VISIBLE CATALOG

52 个工具 · 按职责展开的完整工具树

EXECUTION PIPELINE

每个工具都会经过这条执行流水线

SELECTED STAGE

模型产出的 tool-call 先写入会话日志,UI 此时即可渲染 pending 卡片。

05 / COMMAND CATALOG

Web 客户端里
真正注册的命令

这些命令直接由人触发,不需要先走一轮模型。列表来自 Web 组合包及其 Host、Client 插件。

06 / REPOSITORY ATLAS

从哪里开始读

不要从 7,000 多个文件里随机漫游。这条路线覆盖 Web 客户端最重要的边界。

THE SOURCE IS THE SPEC

现在,你知道
消息去了哪里。

继续阅读原始仓库,或在本地启动 Web 客户端,亲手 dump 出自己的插件树。

打开 GitHub ↗