在 Codex 等工具里调用 DSH 协作并跟踪会话
38.2/100
综合分
8
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/9/17 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
相关生态插件(非 dsh 原生,按其对应运行时安装)
git clone https://github.com/hootandy321/dsh-Agentlink.git状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:仅索引
是什么
生态应用
桌面端 / Web 外壳,不以 dsh plugin add 安装
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 53 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
⚠︎ 实装验证未通过(unknown · 2026/10/22) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查需源码安装仓库 package.json 标记 private,未发布到 npm,需从源码安装
展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✗npm 包dsh-agentlink(未发布到 npm,仅可源码安装)
✓Node 引擎要求 >=22 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
源码安装时若 pnpm 拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑。
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/30 15:55:33
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件
查看扫描证据(共 42 处,展示前 42 条)
- 读取本地文件src/bridge-service.ts:464
const cwd = await realpath(requestedCwd).catch((error: unknown) => { - 读取本地文件src/bridge-service.ts:467
const cwdStat = await stat(cwd); - 写入本地文件src/event-ledger.ts:802
await appendFile(this.logPath(taskId), `${JSON.stringify(record)}\n`, { encoding: "utf8", mode: 0o600 }); - 写入本地文件src/event-ledger.ts:803
await chmod(this.logPath(taskId), 0o600); - 读取本地文件src/event-ledger.ts:990
raw = await readFile(this.logPath(taskId), "utf8"); - 写入本地文件src/event-ledger.ts:1049
await mkdir(this.ledgersDir, { recursive: true, mode: 0o700 }); - 写入本地文件src/event-ledger.ts:1050
await chmod(this.ledgersDir, 0o700); - 写入本地文件src/event-ledger.ts:1051
await mkdir(join(this.ledgersDir, taskId), { recursive: true, mode: 0o700 }); - 写入本地文件src/event-ledger.ts:1052
await chmod(join(this.ledgersDir, taskId), 0o700); - 读取本地文件src/lock-doctor.ts:59
const stats = await lstat(path); - 读取本地文件src/lock-doctor.ts:74
directory = await opendir(path); - 读取本地文件src/lock-doctor.ts:156
directory = await opendir(ledgersPath); - 读取本地文件src/setup-claude-code.ts:227
return readFile(canonicalClaudeCodeSkillSourcePath(), "utf8"); - 读取本地文件src/setup-claude-code.ts:239
details = await lstat(parent); - 读取本地文件src/setup-claude-code.ts:367
canonical = await realpath(candidate); - 读取本地文件src/setup-claude-code.ts:371
if (!(await stat(canonical)).isDirectory()) { - 读取本地文件src/setup-claude-code.ts:485
const entryPath = await realpath(fileURLToPath(new URL("./index.js", import.meta.url))); - 读取本地文件src/setup-codex.ts:230
const entryPath = await realpath(fileURLToPath(new URL("./index.js", import.meta.url))); - 读取本地文件src/setup-engine.ts:94
const details = await lstat(path).catch((error: NodeJS.ErrnoException) => { - 删除本地文件src/setup-engine.ts:133
await unlink(backupPath).catch(() => undefined); - 写入本地文件src/setup-engine.ts:161
await mkdir(dirname(options.path), { recursive: true, mode: 0o700 }); - 写入本地文件src/setup-engine.ts:180
await rename(temporary.path, options.path); - 删除本地文件src/setup-engine.ts:196
await unlink(temporary.path).catch(() => undefined); - 读取本地文件src/task-store.ts:174
details = await lstat(path); - 写入本地文件src/task-store.ts:209
await mkdir(this.tasksDir, { recursive: true, mode: 0o700 }); - 写入本地文件src/task-store.ts:210
await chmod(this.tasksDir, 0o700); - 写入本地文件src/task-store.ts:218
await writeFile(temp, `${JSON.stringify(record, null, 2)}\n`, { encoding: "utf8", mode: 0o600, flag: "wx" }); - 删除本地文件src/task-store.ts:220
await unlink(temp).catch(() => undefined); - 删除本地文件src/task-store.ts:223
await unlink(temp).catch(() => undefined); - 写入本地文件src/task-store.ts:243
await rename(temp, target); - 删除本地文件src/task-store.ts:247
await unlink(temp).catch(() => undefined); - 读取本地文件src/task-store.ts:255
raw = await readFile(this.pathFor(taskId), "utf8"); - 读取本地文件src/task-store.ts:266
names = await readdir(this.tasksDir); - 读取本地文件src/task-store.ts:276
taskIds.map(async (taskId) => parseRecord(await readFile(this.pathFor(taskId), "utf8"), taskId)), - 写入本地文件src/workspace-claim.ts:154
await writeFile(this.pathFor(claim.taskId), `${JSON.stringify(claim, null, 2)}\n`, { - 写入本地文件src/workspace-claim.ts:159
await chmod(this.pathFor(claim.taskId), 0o600); - 删除本地文件src/workspace-claim.ts:171
await unlink(this.pathFor(taskId)); - 写入本地文件src/workspace-claim.ts:189
await mkdir(this.claimsDir, { recursive: true, mode: 0o700 }); - 写入本地文件src/workspace-claim.ts:190
await chmod(this.claimsDir, 0o700); - 读取本地文件src/workspace-claim.ts:197
names = await readdir(this.claimsDir); - 读取本地文件src/workspace-claim.ts:207
taskIds.map(async (taskId) => parseClaim(await readFile(this.pathFor(taskId), "utf8"), taskId, this.pathFor(taskId))), - 读取本地文件src/workspace-claim.ts:213
return parseClaim(await readFile(this.pathFor(taskId), "utf8"), taskId, this.pathFor(taskId));
扫描于 2026/11/3(1 天前) · 范围 全包扫描(包内未声明入口) · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
界面预览
3 张 · 点击查看大图功能亮点
- 调用DSH协作
- 跟踪可观测会话
- 追问与取消
从 Codex 等智能体框架调用 DeepSeek Harness 的调用方桥接,支持可观测会话、追问、取消,以及需人工确认的审批。
README
由 DeepSeek 最新模型翻译生成dsh-Agentlink
dsh-Agentlink 首图
CI GitHub Stars License: MIT Node.js 22+ DSH plugin
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 | ⏳ 待适配 | 尚不可用 |
目前只有标记为已支持的调用方在本仓库中提供可用安装路径。“适配中”和“待适配”是当前方向,不代表发布承诺。
展开完整文档(README 剩余 1 节)
dsh-Agentlink dsh-Agentlink 首图 CI GitHub Stars License: MIT Node.js 22+ DSH plugin 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-Agentlink? 利用 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 秒;默认只在当前 turn 为 terminal、出现需要响应的 interaction、Host 可用性丢失或超时时返回,并吞掉期间普通的 cursor/queue/status 波动(用 until="change" 在任意状态变化时唤醒,用 responseMode="full" 获取诊断用完整状态快照) - 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 以 until="terminal"、responseMode="compact" 返回:它在同一次有界的 MCP 调用内部消化普通的 cursor、queue 和 status 波动,只会在当前 turn 为 terminal、出现 pending question/approval、Host/session 可用性丢失或超时时唤醒调用方。compact 输出只包含调用方可操作字段外加 wakeReason,因此 durable tool/session 事件不再淹没调用方上下文。assistant delta/chunk 帧和顶层 session/projection snapshot 仍会被完全跳过,永不 bump task revision。如需保留旧版诊断行为(每次可观察变化都唤醒并返回完整状态快照),请传入 until="change" 和 responseMode="full"。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 与调用方兼容性约定稳定后继续扩展。 更多文档 - 架构与安全模型 — 身份、状态、恢复、审批、取消与工作区协作 - 多调用方扩展架构 — Codex、Claude Code 与后续调用方共享 Runtime 和 Integration Pack 边界 - 插件感知路由需求 — 面向用户配置的 DSH Harness preset 选择目标、安全边界、验收标准与延期范围 - 插件感知路由架构 — 热路径 Card Router、冷路径维护流程、DSH 实时校验与分阶段实现 - 验证指南 — 兼容性检查与人工验收流程 - 兼容性矩阵 — 已测试的 DSH 版本与验证证据 - 已知问题 — 当前升级与并发运行限制 - 贡献指南与安全说明 许可证 MIT Alpha 说明:DSH 仍处于 developer preview,本项目是独立社区项目,不代表 DeepSeek 或 OpenAI 官方背书。0.1.0-alpha.1 包含一个共享账本并发问题,已在 0.1.0-alpha.2 中修复。升级或并发运行 bridge 前请阅读已知问题。
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
hootandy321/dsh-Agentlink
在 Codex 等工具里调用 DSH 协作并跟踪会话
相关插件 · 对话 / 记忆
上下文中枢oceanbase/powercontext
上下文跟着工作走 —— 跨会话、跨智能体、跨人。
★ 1,489已汉化DSH
73.1
智能体记忆库plastic-labs/honcho
Honcho 是记忆基础设施,用来构建有状态的智能体。这些智能体能理解不断变化的人、智能体、群组、项目和想法。
★ 7,918已汉化DSH
71.7
长程智能体控制面loopx-project/loopx
给 Agent 一个目标,让工作持续向前。
★ 6,358已汉化DSH
71.3
智能体上下文数据库volcengine/OpenViking
给 AI 智能体用的上下文数据库
★ 41,453已汉化DSH
71.3
长效机器人团队Fei2411/DS-Bot
Download DS Bot for Windows 10/11 64-bit / 下载 Windows…
★ 5,293已汉化DSH
71.2
可携带记忆层EverMind-AI/EverOS
为什么选择 EverOS
★ 13,797已汉化DSH
71.1
这是你的仓库?认领条目