在 DeepSeek Harness 中复刻 Pi 工具组:安装小写 read/write/edit/bash/find/grep/ls 核心工具,并保留 DSH-backed 网页、任务、计划、todo、think 与 slash 扩展。
安装
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:kingguuu8-svg/dsh-pi-compatible
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本——pnpm 默认拦截,所以安装可能停在 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 或 ERR_PNPM_IGNORED_BUILDS;dsh 会打印出需要添加的确切键名,把它加进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 下,重跑一次即可装上。放行构建本身就是一次信任判断:请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
English | 中文
本项目提供两个仅面向 Full Access 的 DeepSeek Harness Agent Preset,核心工具契约永久冻结到 @earendil-works/pi-coding-agent 0.84.2。
- Pi-compatible Core:只向模型暴露七个小写核心工具:
read、bash、edit、write、grep、find、ls。 - Pi-compatible Plus:在 Core 基础上增加显式的 DSH-backed Web、Task、Todo、Plan、Think、Slash 和压缩能力。
两个 preset 继续使用 DSH 的文件系统、子进程、附件、会话、取消、模型路由和工具展示 seam。产品只针对 danger-full-access 权限预设设计和测试,不为更窄权限实现申请升级或审批重试流程。
产品契约
Core 工具
| 工具 | Pi-compatible 行为 |
|---|---|
read(path, offset?, limit?) |
最多保留开头 2,000 行或 50 KiB,支持 offset 续读;整文件安全上限为 64 MiB;文本与 PNG/JPEG/GIF/WebP/BMP 图片最终受 DSH attachment 能力约束 |
bash(command, timeout?) |
每次启动新的真实 Bash,不保留状态;无默认超时;输出保留尾部,截断时写入私有完整日志 |
edit(path, edits[]) |
所有编辑匹配同一份原文件;要求唯一且不重叠;支持 Pi 风格标点模糊匹配;保留 BOM 与 CRLF/LF;一次带版本守卫的原子写入 |
write(path, content) |
通过 DSH 完整写入 UTF-8 文件;DSH 本地文件系统自动创建缺失的父目录 |
grep(...) |
使用 ripgrep JSON 输出;默认 100 个匹配;单行最多 500 字符;支持 context、glob、literal 和大小写选项 |
find(pattern, path?, limit?) |
使用 fd;默认 1,000 个结果;遵循 .gitignore;返回相对路径 |
ls(path?, limit?) |
只列一个目录;包含点文件;忽略大小写排序;目录后加 /;默认 500 项 |
七个工具默认全部可见。这里有意不同于 Pi 0.84.2 默认只激活 read、bash、edit、write 四个工具的行为,因为本项目不复刻 Pi 的动态工具激活机制。
Plus 扩展
pi-compatible-plus 额外注册:
WebFetchWebSearchTaskTodoWriteExitPlanModeThinkSlashCommand/plan/compact- DSH 基础压缩和工具结果裁剪
这些是 DSH-backed 扩展,不属于 Pi 0.84.2 七工具 Core。
安装
安装到 DSH Web Profile:
dsh plugin --profile web add kingguuu8-svg/dsh-pi-compatible
也可以安装本地仓库:
dsh plugin --profile web add .
Bundle 会同时安装:
${DSH_HOME:-~/.dsh}/.agent-presets/pi-compatible/
${DSH_HOME:-~/.dsh}/.agent-presets/pi-compatible-plus/
安装器是幂等的:目标 preset 文件完整存在时默认不覆盖。升级时可在 Profile Patch 的 Bundle 行设置 force: true,覆盖打包文件。强制执行 0.1.x → 0.2.0 迁移时还会删除 Core 目录中已知的旧版包内模块;无关的用户文件会保留。
安装后新建会话,选择 Pi-compatible Core 或 Pi-compatible Plus。
运行参数
| 环境变量 | 含义 |
|---|---|
PI_COMPAT_BASH_PATH |
真实 Bash 的绝对路径 |
PI_COMPAT_FD_PATH |
fd 的绝对路径 |
PI_COMPAT_RG_PATH |
rg 的绝对路径 |
PI_COMPAT_OFFLINE=1 |
禁止下载 fd/rg |
PI_OFFLINE=1 |
同样禁止下载 fd/rg 的 Pi 兼容变量 |
DSH_HOME |
DSH Home,以及私有 pi-compatible/bin 缓存根目录 |
Windows 下优先解析 Program Files 中的 Git Bash,然后才查找 PATH。系统不会把 PowerShell 静默伪装成 bash。
fd 和 rg 的解析顺序:
- 环境变量指定的绝对路径;
- PATH 中的系统可执行文件;
<DSH_HOME>/pi-compatible/bin中的缓存;- 最新兼容 GitHub Release,除非启用了离线模式。
GitHub 提供 SHA-256 Asset Digest 时会执行校验。下载和解压目录只对当前用户开放。
Persona 定制
默认 Persona 保持简短、直接、动手执行。需要定制时,请复制 preset 为新的 ID,再编辑副本的 agent.cordis.yml。工具兼容性是稳定产品契约,Persona 文本不是。
兼容性边界
- Pi 基线永久冻结为
0.84.2。 - 高保真范围是 Schema 和关键行为,不要求错误文案或 Pi TUI 渲染逐字一致。
- DSH 负责路径授权、文件原子发布、进程树取消、附件、会话和 GUI 工具卡片。
- Core 能识别 BMP,但 DSH rc.6/rc.7 attachment 不接收 BMP,因此返回转换说明,不生成图片块。
- Pi 会把大图缩放到最大 2,000×2,000;DSH attachment seam 没有缩放操作,因此保存原图,并在工具结果中披露偏差。
- 文本
read在整文件超过 64 MiB 时会在解码前拒绝;Grep context 展开会跳过超过 10 MiB 的文件,防止单次调用耗尽常驻 DSH Host 内存。 - Windows 是正式发布阻断平台;POSIX 仅保持尽可能可移植。
- preset 只遮蔽模型可见的
sandbox:policy和approval:policyRuntime Context 文本,因为它们重复 Full Access 产品前提,还提到了 Pi 工具不存在的参数。DSH 权限执行保持启用,其他 Runtime Context 不受影响。 - preset 挂载时不会主动拒绝更窄的 DSH 权限模式。其他模式不受支持;Host 拒绝会被直接报告,模型也会被明确要求不要申请权限升级。
开发与验证
npm run check
npm test
npm run test:integration
- 单元测试使用最小 DSH seam mock,不需要 LLM API Key。
test:integration使用全局安装的 DSH rc.6 本地文件系统和子进程包,执行真实 Git Bash,并验证下载或缓存后的 fd、ripgrep。- 真实 DSH Web Host 另通过
session.create创建空白 Core/Plus 会话验证挂载,不需要发送模型请求。
信任说明
用户 preset 是 Cordis Composition,权限等于它加载的插件。本项目有意只支持 Full Access,可执行任意 Bash 命令,并修改 Host 进程允许访问的文件。安装第三方 Bundle 前请审阅源码。
License
MIT。Pi 0.84.2 行为参考和许可说明见 THIRD_PARTY_NOTICES.md。
链接
同类插件
Tencent/WeKnora#dsh-weknora★ 31789
把 WeKnora 知识库接入 dsh 的四个只读工具:列出知识库、混合检索原文片段、按顺序还原单篇文档,以及直接取用 WeKnora 自己带引用的 RAG 或 ReAct agent 回答(含可续聊的 session id)。
superdesigndev/treg★ 4052
给 Agent 的工具目录:按「要做的事」检索约 2,600 个外部接口(SEO 与 SERP、外链、社交、人物与公司信息补全、广告库、抓取),查看参数与单次调用价格后直接调用,凭据由服务端注入。附带技能,MCP 行在未设置 TREG_TOKEN 前保持禁用。
TencentCloudBase/CloudBase-AI-Toolkit#dsh-plugin★ 1130
把腾讯云 CloudBase 后端接入 DeepSeek Harness——在对话里搭好并部署全栈应用,查询结果渲染为表格卡片(分页、排序、导出 CSV),部署后可预览真实域名,并提供 CloudBase MCP 工具集(`mcp__cloudbase__*`),登录走 device-code 流程。
gitroomhq/postiz-agent#dsh-postiz★ 499
通过 MCP 将 DeepSeek Harness 连接到 Postiz:列出已连接的社交媒体渠道、获取各平台发帖规则,并向 X、LinkedIn、Instagram、Facebook、Threads、TikTok、YouTube、Reddit、Bluesky、Mastodon、Discord、Slack、Telegram 等平台排期、存草稿或发布帖子;附带 postiz 工作流技能。
EthanYoQ/Invoice-Downloader#dsh-invoice-downloader★ 482
面向 DeepSeek Harness 的本地 IMAP 发票下载、OCR 识别、归档与 Excel 报销汇总。
anysearch-team/anysearch-dsh★ 445
基于 AnySearch 的实时网页与垂直搜索插件,为 DeepSeek Harness 提供搜索工具。
社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。