把 dsh 智能体接入桌面与编辑器客户端,支持流式对话
30.8/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/20 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add ALwith-ai/dsh-agent该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/cordis-plugin-group@deepseek-ai/cordis-plugin-include@deepseek-ai/dsh-agent@deepseek-ai/dsh-agent-loop@deepseek-ai/dsh-anonymous-user-id@deepseek-ai/dsh-app-boot@deepseek-ai/dsh-atomic-write@deepseek-ai/dsh-attachment@deepseek-ai/dsh-authorization@deepseek-ai/dsh-bash-local@deepseek-ai/dsh-bash-sandbox给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
README
由 DeepSeek 最新模型翻译生成dsh-agent
DeepSeek Harness(dsh)的交互式 ACP v2 桥:把 dsh agent 暴露成可被桌面/编辑器客户端托管的聊天后端——逐 token 流、运行态直报(state_update)、权限桥、取消。树外插件形态,不 fork dsh,依赖钉死 npm 精确版本。
由 ALwith 维护;ALwith Desktop 是它的参考客户端(dsh 的桌面端形态)。上游的 ACP 实现是刻意的 automation-only(仅新会话、只发已提交输出),本桥补齐交互式一侧。
状态:developer preview。覆盖 session/new + prompt + 流式 + 状态直报 + cancel + session/resume(live-first 接续、JSONL 持久化冷恢复、客户端 replayFrom 游标历史回放)+ 沙箱优先工具面与升级审批 + 自动上下文压缩(dsh-compaction-basic:步间压力与上下文溢出恢复)、人工 /compact 命令与工具结果裁剪 + 委派工具(subagent / subagent_fork / send_message / list_agents / interrupt_agent,进程内 spawn 与 fork 后端)+ 会话中切模型(session/set_config_op
展开完整文档(README 剩余 1 节)
dsh-agent
DeepSeek Harness(dsh)的交互式 ACP v2 桥:把 dsh agent 暴露成可被桌面/编辑器客户端托管的聊天后端——逐 token 流、运行态直报(state_update)、权限桥、取消。树外插件形态,不 fork dsh,依赖钉死 npm 精确版本。
由 ALwith 维护;ALwith Desktop 是它的参考客户端(dsh 的桌面端形态)。上游的 ACP 实现是刻意的 automation-only(仅新会话、只发已提交输出),本桥补齐交互式一侧。
状态:developer preview。覆盖 session/new + prompt + 流式 + 状态直报 + cancel + session/resume(live-first 接续、JSONL 持久化冷恢复、客户端 replayFrom 游标历史回放)+ 沙箱优先工具面与升级审批 + 自动上下文压缩(dsh-compaction-basic:步间压力与上下文溢出恢复)、人工 /compact 命令与工具结果裁剪 + 委派工具(subagent / subagent_fork / send_message / list_agents / interrupt_agent,进程内 spawn 与 fork 后端)+ 会话中切模型(session/set_config_option)+ LLM 会话标题(先落确定性截断,后台一次生成升级)+ 全部 dsh 预设(standard / minimal / anchored / code PTC,跑在适配 Bun 的官方进程运行时上 / cordis 运行时检查模式,只读 Cordis 工具组 + 随捆 cordis-plugin-development skill)+ 面向宿主的 plugins / sessions 管理 CLI + 多厂商席位(ALWITH_DSH_PI_PROVIDERS:pi-ai 目录路由 —— openai / anthropic / google / xai / … —— 与 DeepSeek 适配器并挂)。
结构
| 文件 | 职责 |
| src/bridge.ts | ACP v2 服务器插件(改编自上游 automation-only v1 桥,MIT) |
| src/codec.ts | 线格式纯转换(改编自上游 codec) |
| src/plugins.ts | 插件清单:组合面即数据(逐预设 roster、核心行保护、用户覆盖) |
| src/compose.ts | 按清单组合运行时(不用 dsh loader/profile——组合确定性,Bun 可跑) |
| src/plugins-cli.ts | plugins 子命令:无活会话即可列出与开关插件 |
| src/sessions-cli.ts | sessions 子命令:经 dsh 自家 persistence 检查会话日志 |
| skills/ | 随预设捆入的 skill(vendor 自 dsh cordis 预设,MIT) |
| src/main.ts | stdio 入口,供宿主 spawn |
运行
需要 Bun(已用 1.4.2 验证);sidecar 不支持以 Node.js 运行。在仓库检出目录中,使用 bun install --frozen-lockfile 安装已锁定的依赖集合。
DEEPSEEK_API_KEY=… bun src/main.ts # stdio 上的 ACP v2 服务器
bun test # mock 适配器协议测试,不打真模型
session/resume 语义:replayFrom 省略 = 只恢复上下文;{ type: "start" } = 整段对话重放为 session/update 帧。每个进程只挂一个持久化 provider,由 ALWITH_DSH_PERSISTENCE 选择:dsh(默认)把 dsh 自己的 JSONL 日志存在 $ALWITH_DSH_SESSIONS_ROOT(默认 ~/.dsh-agent/sessions);alwith 把每个会话存成 ALwith 会话记录($ALWITH_DSH_PROJECTS_DIR/<项目键>/<sessionId>.jsonl,明文 JSONL,兼容 Claude Code 消息,dsh 事件原样保留)。选 alwith 时 session/resume 也能接续 ALwith CLI 写的记录:消息、工具调用与结果重建成 dsh 事件,思考块不进模型上下文。两个 provider 都实现 dsh 0.2.1-rc.2 的句柄合同(每会话单写者、实时事件路由与批量落盘屏障、首次追加前修复撕裂尾部、词表 fail-closed),并通过上游持久化契约测试。
session/prompt 在 Harness 将用户消息插入模型可见历史后立即返回 messageId,与实时 user_message 通知及保留的历史记录一致。回执不等待生成或轮末持久化检查点。排队消息若在插入前被取消,请求直接拒绝,不伪造回执。客户端用回执关联用户消息,并等待随后对应的 idle 事件判断完成。线上协议使用 ACP SDK 1.5.1 验证。
轮次结束(包括取消)在报告 idle 前等待 Agent 停稳及会话持久化检查点。忽略取消信号的工具可能延迟这一边界。取消尚未结束时拒绝新提示;活跃轮次中的空提示不会结束该轮。session/close 在释放 Agent 前排空待写事件,并取消后台标题任务。模型与检查点失败报告 _error,宿主据此保持失败待处理。
提示会等待已有切换结束;切换期间关闭会话会阻止替代 Agent 发布。切换先刷盘,未动过的空会话也会落盘,所以切换失败后任何会话都可通过 session/resume 恢复。
取消与关闭会主动丢弃待处理输入。没有私有的历史注入扩展:接续走 session/resume,由挂载的持久化 provider 提供。适配器必须响应中止信号,否则取消、关闭和退出都可能停滞。宿主可以设置进程退出期限,但强制终止可能丢失尚未刷盘的日志,恢复后历史可能不完整。后台标题收到中止信号后不会阻塞关闭。保留标准 ACP 错误码;面向人的错误消息不是稳定的机器解析接口。
在仓库检出目录中运行 python3 scripts/verify-package.py 可在本地验证打包产物。发布流程和验证器均使用 bun scripts/pack.ts,将 bun.lock 补入 Bun 生成的 tarball。验证器要求解包后的锁文件与仓库字节一致并记录 SHA256,执行生产依赖冻结安装(可能需要网络及原生构建环境),再通过声明的可执行入口对五个预设执行无需凭据的 ACP 检查。超时保护属于验证器,不属于桥接协议。日志和产物保留在输出路径;安装失败不会被绕过。packageManager 字段记录已验证的工具链,不强制运行时版本。发布包自带 Desktop 安装所需的锁文件。这不证明跨平台或真实模型厂商兼容性。
插件
各预设的组合面在代码里写死(确定性),但用户保有 dsh 的两个自由度——逐插件开关与逐插件配置——经覆盖文件($ALWITH_DSH_PLUGINS_FILE,默认 ~/.dsh-agent/plugins.json)生效;spawn 时读取,改动作用于新会话:
bun src/main.ts plugins list --preset standard # 该预设的全部行,JSON
bun src/main.ts plugins set tool-web disabled # 先校验再落盘
{ "disabled": ["tool-web"], "config": { "bash-sandbox": { "timeoutMs": 120000 } } }
核心行(session、llm、沙箱、审批…)不可停用;停用某行会让另一启用行的 requires 落空时,拒绝并给出确切改法——两者都在写盘前炸清楚。config 条目与该行默认配置浅合并。
License
MIT;改编自上游 @deepseek-ai/dsh-acp 的部分见 THIRD_PARTY_NOTICES.md。
Harness 0.2.1-rc.2
整套 Harness 发布集精确锁定到 0.2.1-rc.2。DeepSeek API key 路由使用 dsh-llm-deepseek-api-key;工具结果使用当前扁平的 tool 角色消息契约。Cordis 提供 cordis_inspect_list 和 cordis_inspect_query,不模拟已移除的编写工具。
PTC 宿主和子进程均运行 Bun。src/ptc-bun-loader.ts 使用 amaro 类型擦除和兼容 Bun 的继承管道流适配官方进程运行时,不需要 Node 可执行文件或旧 worker fork。文件隔离和运行时限仍生效;上游 V8 老生代堆限制在 Bun 下不生效。
ACP SDK 1.9 与运行时组合
桥接使用 ACP SDK 1.9.0。所有预设都挂载当前工具和子代理 API 必需的工作目录服务。JSONL 持久化使用上游模块插件,保留其依赖注入元数据;PTC 通过显式 launch 配置让宿主和子进程均使用 Bun。Harness 包与 Cordis peer 依赖固定为同一套上游发布版本。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
ALwith-ai/dsh-agent
把 dsh 智能体接入桌面与编辑器客户端,支持流式对话
相关插件 · UI / 主题
破甲增强版JeffKeeping/dsh-purge-plus
dsh-purge 的非官方分支fork:适配 DeepSeek Harness 0.2.1-rc.2、破甲内核…
★ 387已汉化DeepSeek 客户端
71.9
无代码业务系统平台nocobase/nocobase
NocoBase 是什么
★ 24,804已汉化DSH
71.8
1Panel 服务器面板1Panel-dev/1Panel
全球 250 万+ 自托管用户共同喜爱。
★ 37,350已汉化DSH
71.5
工作状态行动态ccch1mneyyy/working-activity
作者:chimney@ccch1mneyyy。社区项目,非 DeepSeek 官方项目。
★ 664已汉化DSH
71.2
多模型配置管家farion1231/cc-switch
跨平台桌面一体化助手,支持 Claude Code、Codex、OpenCode、DeepSeek Harness 等工具,唯一官网 ccswitch.io
★ 151,506已汉化DSH
71.1
AI 矢量设计工具ZSeven-W/openpencil
全球首个 AI 原生开源矢量设计工具。
★ 7,027已汉化DSH
71.1
这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。