dsh-Agentlink

by hootandy321

5 会话与消息github未核验到 manifest收录于 08-16

Codex及其他代理框架到DeepSeek Harness的呼叫方桥接,支持可观察会话、跟进、取消和人工门控批准。

Caller-side bridge from Codex and other agent frameworks to DeepSeek Harness, with observable sessions, follow-up, cancellation, and human-gated approvals.

安装

dsh plugin --profile web add github:hootandy321/dsh-Agentlink

GitHub 源码安装:首次需按提示配置 allowBuilds 构建授权后重试

安装与环境配置指引、插件开发教程见 DSH 中文社区文档 ↗

安装即在你的机器上以你的权限运行第三方代码——它可读写文件、使用凭据、访问网络,DSH 的工具审批不会为插件代码加沙箱。「检测到 manifest」仅代表发现 dsh.bundle / dsh.plugin 清单,不构成兼容性或安全审查;安装前请审阅源码,不熟悉的插件先在不含密钥的环境试用。

README

目录

dsh-Agentlink 首图

CI GitHub Stars License: MIT Node.js 22+ DSH plugin

English | 简体中文

dsh-Agentlink 是一个让你直接在原本的 AI 工作工具里调用 DeepSeek Harness(DSH)协作的插件。你的主 agent 可以把实现、调研、调试和长日志整理等任务交给 DSH,再在原有工作流中观察、继续或取消对应会话。当前支持 Codex 与 Claude Code,ZCode 正在适配,OpenCode、Workbuddy 等主流 AI coding 与 agent 工具待后续接入。

调用方支持情况

调用方 状态 安装方式或可用性
Codex ✅ 已支持 npm run setup
Claude Code ✅ 已支持 npm run setup:claude -- --project /项目的绝对路径
ZCode 🚧 适配中 正在验证适配方式与打包形式
OpenCode ⏳ 待适配 尚不可用
Workbuddy ⏳ 待适配 尚不可用

目前只有标记为已支持的调用方在本仓库中提供可用安装路径。“适配中”和“待适配”是当前方向,不代表发布承诺。

安装

安装前先准备环境:只需要 Node.js 22+、一个已支持的调用方(Codex 或 Claude Code)和可以正常运行的 DSH CLI。先在 DSH 中配置一次你希望使用的模型,之后 dsh-Agentlink 会自动使用当前路由。

让你的 AI agent 帮你安装

把下面的仓库地址和指令直接发给 Codex 或其他 coding agent:

请从 https://github.com/hootandy321/dsh-Agentlink 安装 dsh-Agentlink。
先检查 Node.js 22+、DSH CLI 和我的 DSH Web Host,在我确认的目录中 clone;
运行 npm install 和 npm test。Codex 使用 npm run setup -- --yes;Claude Code 使用
npm run setup:claude -- --yes --project /项目的绝对路径。
Claude Code 会安装项目 MCP 入口和随仓库提供的项目 skill;只有在审查已有文件后再使用 --replace 和 --replace-skill。
如果已经存在 dsh_agentlink 或旧版 dsh_collab 配置,先向我展示冲突,再决定是否使用 --replace。
不要替我启动或停止 dsh web,完成后告诉我何时需要重载调用方并完成项目级 MCP 的信任确认。

手动安装

  1. 检查环境。当前经过测试的 DSH CLI 目标是 0.1.0-rc.6 与 0.1.0-rc.7。

    node --version
    dsh --version
    
  2. 在独立终端启动官方 DSH Web Host。

    dsh web
    
  3. 克隆仓库并安装依赖。

    git clone https://github.com/hootandy321/dsh-Agentlink.git
    cd dsh-Agentlink
    npm install
    
  4. 配置你使用的调用方。

    Codex:

    npm run setup
    npm run doctor
    

    Codex 向导会备份 TOML 配置,并以 approval_mode = "prompt" 安装 MCP 入口。重启 Codex 后,通过 /mcp 或 Codex 设置确认 dsh_agentlink 已连接。需要手动 TOML 配置时,参见Codex MCP 手动配置。

    Claude Code 2.1.199 或更高版本:

    npm run setup:claude -- --project /你的项目绝对路径
    cd /你的项目绝对路径
    claude mcp get dsh_agentlink
    

    Claude 向导只修改该项目的 .mcp.json 和 .claude/skills/claude-code-dsh/SKILL.md,并保留其他无关的 server 配置。它会分别报告以下各项:

    • MCP 注册
    • 项目级 MCP 信任状态
    • Claude skill 状态
    • Claude 审批能力
    • DSH permission/sandbox 归属
    • DSH Host 可达性

    在该项目中打开 Claude Code,通过 /mcp 批准 pending server;bridge 会把 dsh_resolve_approval 标记为必须人工交互。

    无交互使用默认值时增加 --yes。需要更新已有 MCP 条目时,请先检查原配置,再增加 --replace;需要更新已有的 Claude 项目 skill 时,请先审查后增加 --replace-skill;如果要自己管理 skill,则增加 --no-skill。两个配置工具都会识别旧版 dsh_collab,并且只在得到这次明确的替换授权后迁移为 dsh_agentlink。它们不会启动 DSH、不会改变 DSH permission/sandbox 设置,也不会替你重启调用方。

doctor 会以只读方式报告 DSH_BRIDGE_HOME 下的 fail-closed 锁位置,且从不清理它们,因此即使存在锁也能安全运行。

当前源码补丁会阻止新的 projection/chunk 洪峰继续扩大 coordination ledger,但不会自动压缩已有的 5 MB 以上 ledger。请保留旧 bridge home 备查;新的委派可以选择独立的 DSH_BRIDGE_HOME。对话真源始终是 DSH session.history,不是 bridge ledger。保守恢复边界见已知问题。

dsh-Agentlink 是安装在调用方一侧的插件,不是 DSH Cordis bundle;请不要使用 dsh plugin --profile ... add ... 安装。

利用 DSH 的 Harness 能力

DSH 为复杂任务提供持久 session、工具调用、subagent 和人工监督等能力。dsh-Agentlink 让你的主调用方(当前为 Codex 或 Claude Code)能够与这套独立 harness 讨论并协作,同时不离开原本的工作入口。

Codex 与 DeepSeek Harness 协作

Codex 继续负责规划、讨论和总控,DSH 负责执行 harness、会话与 worker。

不只是再增加一个原生 subagent

原生 subagent 仍属于调用方自己的 agent tree。dsh-Agentlink 接入的是一套由用户配置的独立 harness:会话可以在 DSH Web 持续查看,使用 DSH 自己的 worker 与模型路由,并由主调用方观察、继续或取消。

dsh-Agentlink 与原生 subagent 对比

主 agent 专注判断和验收,DSH 使用你配置的模型承担更大规模的执行工作。

省时间、也省成本

  • 省时间。 把实现、检索、资料提取和长日志整理等执行型任务交给你在 DSH 中配置的高速模型,例如 DeepSeek V4 路由,主 agent 可以继续规划和验收。
  • 省成本。 把大量执行 token 路由到成本更低的 DeepSeek 模型,可以减少对昂贵主模型的消耗。

实际速度和费用取决于模型、服务商、部署方式、网络与任务本身。完成安装后,你仍然可以像平常一样使用 Codex 或 Claude Code,只在适合交给 DSH 执行时直接让它发起委派即可。

如何使用

启动 dsh web,并让调用方加载、信任 MCP 配置后,直接用自然语言告诉 Codex 或 Claude Code,例如:

使用 dsh-Agentlink,把当前仓库里的这个实现任务委派给 DSH。保持会话在 DSH Web 可见,向我报告进度,任何 approval 都先询问我。

之后调用方可以委派任务、观察事件、继续同一会话、与你一起回答 DSH 的问题,或取消任务。打开 http://127.0.0.1:3080,即可在 DSH Web 查看并操作同一个 session。

MCP 工具

  • dsh_host_status — 读取 connect-only Host 状态与 capabilities
  • dsh_delegate — 创建 root session 并排队初始 prompt;默认 detached(waitSeconds=0);workspaceMode 是 bridge-local claim,不是 DSH sandbox selector
  • dsh_followup — 以显式 mode="queue"|"steer" 继续同一个 root session;默认 queue
  • dsh_continue — dsh_followup 的兼容别名
  • dsh_status — 返回 availability、execution、无内容的启动路由/失败状态、lineage、queue、pending interaction、final message、cursors 和 workspace claim semantics
  • dsh_tail — 使用 bridge task cursor 读取有界事件摘要
  • dsh_wait — 最多等待 30 秒,直到出现 durable event、状态变化、pending interaction 或 terminal 状态
  • dsh_observe — dsh_wait 的兼容别名;bridge cursor 取代原始 per-session seq cursor
  • dsh_cancel — scope="turn"|"queue"
  • dsh_list — 列出 task mapping,并附带当前派生状态
  • dsh_answer_question — 通过 pending question rpcId 提交类型化答案
  • dsh_resolve_approval — 对 pending approval rpcId 提交 allow_once|reject
  • dsh_release_workspace — 显式释放持久化 workspace claim,但不关闭 DSH session

正常委派没有 model 参数。目标模型只在安装或调整 DSH 时配置。每次 delegate 都会读取 session.models.current 并信任 Host 返回的 routable;bridge 不会修改模型,也不会根据 catalog group 自行推导 routability。

dsh_wait 只观察 bridge 的持久化状态。assistant delta/chunk 帧和顶层 session/projection snapshot 会被跳过,因此不会 bump task revision,也不会唤醒 waiter;turn 结束后的完整 final message 仍可通过 status/tail 观察。

后续方向

以下内容是计划方向,不代表已经实现或 release 承诺。

  1. 更多调用方入口 — 完成 ZCode 支持,再通过共享 Integration Pack 架构接入 OpenCode、Workbuddy、Claude Desktop MCP 等调用方。
  2. Agent 调用与信息传输 — 优化 prompt 组织、上下文打包、输出摘要和压缩策略,同时确保问题、审批、错误和最终答案可靠传输。
  3. 支持 DSH 插件能力的 session — 保留当前面向 preset 型插件的 agentPreset 路径,增加只读 preset/能力校验和已解析 preset 的报告;只有真实插件证明需要创建后的类型化初始化时,才引入声明式 session launch profile。
  4. 更多集成 — 待共享 Runtime 与调用方兼容性约定稳定后继续扩展。

更多文档

许可证

MIT

Alpha 说明:DSH 仍处于 developer preview,本项目是独立社区项目,不代表 DeepSeek 或 OpenAI 官方背书。0.1.0-alpha.1 包含一个共享账本并发问题,已在 0.1.0-alpha.2 中修复。升级或并发运行 bridge 前请阅读已知问题。

原始 README: https://github.com/hootandy321/dsh-Agentlink/blob/main/README.zh-CN.md ↗