前言¶
DeepSeek Harness 上的 dsh-superagent 原型,默认通过 GitHub、飞书等 Source 接收事件。每条链路都要配账号或机器人,本地试跑、脚本投递工作请求时门槛偏高。若你只想在终端里往某个目录丢一条 JSON,让 Router 评估、建单、派出 Worker,再把结果写回同一套目录结构,就需要一个不依赖外部服务的 Source。dsh-superagent-inbox 在官方 bundle 之上增加了 inbox Source(inbox-watch),用收件箱文件夹完成 Trigger → Eval → Ticket → Worker → Channel 整条链路。
这是什么¶
dsh-superagent-inbox 由社区维护者 JHOpenDev 发布,分类为工作流。仓库地址:github.com/JHOpenDev/dsh-superagent-inbox;插件目录页:skillhub.cn/plugins/JHOpenDev/dsh-superagent-inbox。
项目是 dsh-superagent 的扩展发行版:在官方 bundle 上新增本地文件收件箱 Source,其余代码保持上游原样,MIT 许可。一句话定位:dsh-superagent + 本地收件箱 Source——无需外部账号,用一个文件夹驱动 DeepSeek Harness 上的 Super-agent 原型。
背景:Super-agent 与 inbox 补上的缺口¶
Super-agent 面向「人的注意力」瓶颈:单任务 Coding Agent 可用后,一人通常只能同时跟进少量活跃 Session。原型用连续、高效、主动、持久等特征,配合 Router / Worker 双层架构、事件驱动、存算分离与 Watchdog 等模块。官方内置 GitHub 与飞书 Source,均需账号配置;inbox Source 则让任何有终端的人,用文件夹即可驱动整条链路。
核心功能¶
目录协议¶
在面板里配置收件箱根目录 root 后,每个「对话」对应一层子目录,例如 ops、town:
<root>/
ops/
in/
done/ ← Agent 已接收的消息(自动移入)
out/ ← Agent 回复 JSON
town/ ← 另一对话,可配置不同接收策略
投放与回复¶
向 in/*.json 投放消息;Agent 处理后在 out/ 写出回复,文件名即消息 id,天然幂等。
投放示例字段(节选):
{
"id": "m-001",
"from": "alice",
"text": "把设置页的保存按钮文案改成「保存更改」",
"to": "agent",
"thread": "m-000",
"reply_to": "m-000"
}
from 进入 Policy 白名单判断;to: agent 表示向智能体显式喊话;bot: true 的机器人/CI 消息不能自行授权工作。同话题后续消息带 thread 可经订阅直通直达 Worker,不重复消耗 Router 判断。
与 Super-agent 的映射¶
| 概念 | inbox 侧 |
|---|---|
| Trigger | 一个消息文件;id 由 conversation + 消息 id 派生,重放安全 |
| Thread | <conversation>:<根消息 id> |
| Channel | 回复写入 out/ |
| Admission | 每对话一行:mentions(仅 @)或 all(全部消息) |
Worker 可通过环境变量 DSH_SUPERAGENT_INBOX_CONVERSATION 获知工单来自哪个对话。安全模型沿用 dsh-superagent 完整 Policy:非白名单、bot 不能授权工作;白名单 + 显式喊话才产生 explicit 工单。
安装与启用¶
前置条件:DeepSeek Harness dsh ^0.2.1-alpha.2、Node ^22.19 || >=24、pnpm。
资料中的获取与校验步骤如下(完整部署还需按仓库内 SETUP.md 完成 dsh-superagent 基础配置;GitHub 账号主要用于 Worker 提交 PR,若只跑 inbox 也可配最小权限账号):
git clone https://github.com/JHOpenDev/dsh-superagent-inbox.git
cd dsh-superagent-inbox
pnpm install && pnpm check
pnpm check 会执行 typecheck、全部测试并构建 lib/。
在 profile 的 cordis.patch.yml(路径:$DSH_HOME/profiles/<profile>/)中启用 inbox:
- id: dsh-superagent
config:
stateDir: /home/me/.dsh/state/superagent
- id: dsh-superagent-inbox
disabled: false
重启 Harness 后,在 Superagent 侧边栏 → Sources → Local inbox 配置:
root:收件箱根目录(绝对路径)conversations:至少一个对话,例如{ id: "ops", listen: "mentions" }
在 Eval → On each Source → Local inbox 中,把你投放消息时使用的 from 身份加入 allowed 名单。
典型用法¶
下面步骤假设已配置好 root,且对话 id 为 ops。
- 投放一条工作请求:
cat > $ROOT/ops/in/m-001.json <<'EOF'
{ "id": "m-001", "from": "alice", "to": "agent",
"text": "把 README 的安装命令从 npm 改成 pnpm" }
EOF
-
等待 Router 轮询(秒级):面板中可见 Eval → accept → Ticket → Worker 运行。
-
读取回复:
cat $ROOT/ops/out/*.json
- 同话题追问时,在 JSON 中设置
"thread": "m-001",可直通该工单的 Worker,无需再次 @。
纯闲聊会被两级过滤丢弃;可在面板 Sources 页查看 filtered 审计记录。
适用场景与注意¶
适合已在 Harness 上部署或计划部署 dsh-superagent、希望不配置 GitHub/飞书机器人也能本地或脚本驱动 Super-agent 的开发者;也适合把 CI、内部工具写成「往 in/ 丢 JSON」的集成方式。
使用前请注意:
- 插件与 dsh-superagent bundle 以当前 dsh 进程权限运行,安装前应阅读源码与 MIT 许可证。
- 资料未给出
dsh plugin add一类的一行安装命令;实际部署以仓库 README 与 SETUP.md 为准。 - 仓库还包含 ZCode 适配器(
adapters/zcode-plugin),安装方式见该目录 README,与本 Harness bundle 独立,此处不展开。
DeepSeek Harness 生态强调「一切皆插件」;SkillHub 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系。
结尾¶
dsh-superagent-inbox 把 Super-agent 的「最后一公里」收束到一个本地文件夹:投 JSON、读 out/,在保留官方 Policy 与工单模型的前提下去掉外部 Source 账号依赖。进一步了解可访问 插件目录页 与 GitHub 仓库。