前言¶
在 DeepSeek Harness(DSH)里做 Agent,常见做法是固定工作区、持久会话、技能目录或一套写死的工具。这些选择能加快产品落地,也会把「文件在哪、历史怎么恢复、说明从哪加载」写进架构里。换执行环境(例如从本机迁到沙箱)、换机器续聊、或让用户按任务自由选资源,往往要改 Agent 本体或搬会话文件。
下面介绍社区插件 DSH Context OS(weijiafu14/dsh-context-os)。它把一轮运行的基础收窄为:在特定上下文组合下执行的 Agent loop;执行环境、代码、会话历史、文档等以「完整服务」接入,由框架装配上下文并路由事件,DSH 仍负责模型交互与原生执行循环。
这是什么¶
DSH Context OS 是 DeepSeek Harness 的插件,维护者为 weijiafu14,在 SkillHub 社区目录中归类为工作流。项目 slogan 为:ReAct is all you need. Everything is a context connector. —— 用完整、可替换的资源服务组合每一轮 Agent 运行。
当前为实验版 0.2.0(MIT 许可)。README 写明:上下文组合运行时与 Web 拖拽界面已可用;完整模式通过随包启动器配合固定 commit 的 DSH 构建运行。统一资源审计、Agent 辅助选连接器等属于后续步骤。
设计思路与文章 《以上下文装配与反馈作为框架边界》 一致。SkillHub(https://www.skillhub.cn/plugins/weijiafu14/dsh-context-os)是独立社区站点,与 DeepSeek / 幻方无官方从属关系;DSH 生态理念是「一切皆插件」,安装前请自行审阅源码与许可证。
三层架构与一轮运行的路径¶
flowchart TB
services["上下文连接器 · 完整服务"]
os["DSH Context OS"]
dsh["DSH · Agent loop"]
services <-->|上下文贡献 / 事件| os
os <-->|装配输入 / 调用与记录| dsh
一个 connector 对应一个完整服务:说明、可调用能力、执行反馈、持久化与收尾在同一边界内。框架负责贡献身份、顺序、校验与装配;DSH 负责底层 loop。服务依赖沿用 DSH/Cordis(例如仓库服务依赖执行环境服务)。
每轮运行的大致步骤:
- 选中的连接器初始化,贡献说明、能力及合法历史。
- 每次模型步骤前,框架合并各服务当前贡献为下一次输入。
- 模型发起操作,框架路由到拥有该能力的连接器。
- 服务操作自有资源并返回结果,必要时更新后续上下文。
- 记录与收尾事件回传服务,用于持久化、业务收尾与释放资源。
同一套边界既用于启动前的装配,也用于运行中的反馈(按需加载知识、新日志、工具结果等)。
核心功能(0.2.0 已核实范围)¶
| 本版已提供 | 需集成方或后续建设 |
|---|---|
| 统一事件与上下文贡献、归属隔离与冲突检查 | 统一资源读写账本、任意网络与 Shell 副作用拦截 |
| DSH Web 拖拽组合器、可复用宿主 UI | 通过 Agent 对话辅助选择连接器 |
| 原生执行工具、Skill、MCP、会话历史、子 Agent 适配及 PTC 执行投影 | 面向生产的沙箱、远端会话、企业服务后端 |
| 独立框架入口与完整文档服务示例 | 通用上下文预算、压缩策略插件 |
| 已验证的更新、撤销、冷恢复、服务替换与持久化行为 | 跨机器迁移执行中进程、多写入方会话同步 |
连接器实现 { id, events, handle(event) }。运行时核心事件包括 run/initialize、agent/prepare-step、tools/execute、session/event、run/settled;处理后可 put / remove / append / answer 等上下文贡献。协议细节见仓库 docs/protocol.md。
产品侧可组合的典型意图(来自 README 表格,具体连接器需你在环境中自行配置):
| 本轮任务 | 选中的服务(示例) |
|---|---|
| 修复 Bug | 任务输入 + 仓库 + 沙箱 + 指定历史 |
| 评审设计 | 任务输入 + 团队文档 + 架构知识 + 会话历史 |
| 排查线上问题 | 任务输入 + 日志来源 + 代码服务 + 事件处理历史 |
Web 端已支持将可用连接器拖入本轮、编辑配置并创建独立 DSH 会话;开发者也可用 /core 等入口以 API 构造相同组合。
公开包入口:dsh-context-os 插件本体、组合核心 /core、兼容适配 /compat、React 组合器 /ui。需要 Node.js ≥ 24.9。
安装与启用¶
官方要求:除 npm 版本号外,还须使用已构建的 DSH commit 22ddee3792402c3e70ec5f86a63c3e3e895a2f60(标签 0.2.1-rc.3)。请将 /absolute/path/to/pinned/deepseek-harness 换成你本机该构建的实际路径。
从 npm 安装到兼容的 DSH Web profile:
dsh plugin --profile web add dsh-context-os@0.2.0 --ignore-scripts --config.auto-install-peers=false -w
"${DSH_HOME:-$HOME/.dsh}/profiles/web/node_modules/.bin/dsh-context-os" --dsh-root /absolute/path/to/pinned/deepseek-harness --profile web
上述第二行通过随包 CLI 启动:在 DSH 启动前装入经版本核对的上下文准备与接纳适配,并启用完整事件驱动模式。进入 Web 后打开 上下文组合,选择连接器、输入任务并开始运行。
也可从 GitHub Releases 获取安装包;自行构建时在项目源码目录设置 DSH_SOURCE_ROOT 后执行 npm run build 与 npm pack,再用 dsh plugin --profile web add /absolute/path/dsh-context-os-0.2.0.tgz ... 安装(命令格式与 npm 安装相同,见 README.zh-CN)。
典型用法示例¶
向文档连接器投递来源事件(假设已装配 examples/documentService.ts 所示的完整文档服务):
const receipt = await run.send(
'documents/changed',
{ policy: '采用更新后的评审规则。' },
'documents',
);
await receipt.completed;
send() 确认事件已被接纳;completed 等待执行、子任务与持久化结束。跨机器续聊在架构上可表述为:选择历史 + 选择本轮服务 + 执行 Agent loop,历史由会话服务负责,执行资源由环境服务负责。
0.2 还支持宿主向连接器授予受限的 catalog、start、send、wait、stop 等运行管理能力;子运行与父运行共用同一套组合机制,详见 docs/run-control.md。参考应用:DSH COS Super-agent。
适用场景与注意¶
适合谁: 需要在 DSH 上按任务组合执行环境、仓库、文档、历史、Skill/MCP 等,并希望用「替换单个完整服务」验证行为(例如本地文件后端换 HTTP 后端)的开发者;需要 Web 拖拽配置一轮连接器组合的团队。
务必注意:
- 插件在 当前 DSH 进程权限 下运行;README 明确本包不提供不可信插件代码隔离,也不会自动记录任意 Shell 命令的全部外部影响。安装前请阅读源码、MIT LICENSE 与
NOTICE。 - 状态为 experimental;peer 运行时由兼容 DSH 提供,独立 Electron 安装发行版尚未单独验证。
- 压缩仍主要由底层运行时提供,Context OS 尚未开放通用预算与压缩策略插件接口。
结尾¶
DSH Context OS 把 ReAct 循环与外部世界的关系做成可组合的「上下文连接器」:框架管装配与事件,服务管资源与持久化,换环境或换历史往往只需换选中服务而非重写 Agent。
- 社区目录:https://www.skillhub.cn/plugins/weijiafu14/dsh-context-os
- 源码与文档:https://github.com/weijiafu14/dsh-context-os