一句话:一个能让 AI真动手操作电脑,并且当场给自己加新工具的工作台。本文只讲怎么装、怎么玩、牛在哪。
原文详细链接:https://www.jay-r-j.top/deepseek-harness-complete-guide/
一、装好
前提:Node.js 18+,一个 OpenAI 兼容的 API Key。
最省事(一行跑起):
npx --yes @deepseek-ai/dsh web浏览器打开http://127.0.0.1:3080。
全局安装:
npm install -g @deepseek-ai/dsh dsh web第一次启动后,密钥填在~/.dsh/.credentials.yaml。
二、当普通工作台用
开聊即可,它能:
读写文件、搜索代码
执行命令(沙箱隔离)
联网搜索并给来源
切换模型 / 推理档位
计划模式(先出方案,你点头再动手)
长任务设目标,自动推进
后台跑命令,不阻塞
派子代理并行处理
上下文自动压缩
斜杠命令:
/plan、/compact、/goal
三、换人格:Agent 预设
预设 = 给 AI 换“工具箱 + 性格”。自带四个:standard、code、minimal、cordis(创造模式)。
创造模式是核心:新建会话时选 cordis,这个 AI 拥有读写运行时组成的权限。你可以直接对它说:
“创建一个只读审查预设,只能看代码不能改文件”
它会自动复制、修改、存为新预设,下次新建会话就能选。这就是“让 AI 造 AI”,真能跑通。
创造模式 ≈ shell 权限,别跑不明来源的指令。
四、现场长新能力:动态插件
动态插件是只活在当前进程的临时扩展,重启即失,但可审批、可回滚、自动回收副作用。
流程:
你跟 AI 说:“加一个显示 token 消耗的小面板”
AI 写出插件代码(宿主端 + 界面端)
你审批(弹窗高亮危险操作,单勾只信这版,双勾以后都信)
装载,网页立刻出现新面板
不想要了,停止或删除,所有样式/监听/定时器自动回收
关键机制:
版本不可变,改坏可退回旧版
写插件前,AI 会用Inspect工具查活体运行时的真实 API,不瞎猜
支持 RPC 通信(前端调
host.call,后端用harness.handle)
真实案例:token 消耗面板 → 升级成可拖动卡片;费用估算面板 → 监听agent/request事件,内置价格表,分精度估算。
五、更轻量的永久记忆:技能(Skills)
如果你不想写代码,就用技能:在预设目录下放SKILL.md文件,AI 启动时自动读入上下文,按你的步骤执行。纯文本、零风险、永久生效。
六、它到底牛在哪(别人没有的)
AI 造 AI:预设本身就是文件,AI 能读写并生成新预设。
自我修改有规矩:分宿主层(全局)和预设层(会话独享),改坏共享风险最低。
AI 不猜 API:Inspect 查活体契约,告别幻觉。
改运行时也走版本管理:不可变版本 + 审批 + 回滚 + 自动回收。
日志可重放:预设一旦开聊就冻结(因为 Tool Schema 签名固定),保证历史可重放。
完整的现场生长闭环:定义 → 审批 → 装载 → 回滚 → 回收,只有 DSH 能给你。
七、几条底线(必看)
创造模式 = shell 级信任,只跑可信指令。
动态插件装载前必审,重点看弹窗高亮的
fs、child_process、net代码。随附预设(standard/code/minimal/cordis)只读别改,升级会覆盖。
敏感操作弹审批,别无脑点允许。
八、常用命令速查
dsh web # 启动网页 dsh --profile headless "任务" # 无头模式,适合脚本 dsh --profile tui --resume <会话id> # 恢复会话 dsh --dump-config # 看完整插件树 dsh -V # 版本九、常见问题
预设为什么不能中途换?
因为预设决定了工具调用的 JSON Schema,历史消息里的tool_calls换预设后无法校验,所以只有空白会话能换。
动态插件重启会丢吗?
内存实例会丢,但packageId记录在会话日志头,恢复会话时会尝试重新装载。
想让功能永久存在?
三条路:① 写SKILL.md(最轻)② 做成 Agent 预设(新会话生效)③ 写进部署源码重建(最重)。