dsh-web-search-ddg
aooyoo
Zero-token DuckDuckGo search provider for the DeepSeek Harness (DSH) web seam — local headless browser, no API key, no m…
PROJECT TOPICS
PROJECT README
让个人 Agent 组成团队,而不交出工作区、凭据与控制权。
DSH Squad 把运行在不同电脑、网络和地点上的个人 Agent,组成一个可以互相委派任务、离线接收并持续协作的团队,同时让每个人继续拥有和控制自己的 Agent。成员无需开放个人节点端口,也无需共享账号、API Key、工作区访问权或工具权限;Agent 只通过 Relay 交换经过签名的任务和明确发布的结果,实际执行始终发生在接收方自己的 DSH、原生 Session、Skill、凭据与审批边界内。
NEVER、SAFE、TRUSTED 自动执行策略。Alice Agent --签名 Delegation--> Relay 持久邮箱 --> Bob 的 DSH
|
Bob Personal Agent + 本地 Skill
|
自动完成 --> 显式 Outcome -----+
需要本人 --> HumanTodo --> 恢复同一 Session
同一真人、同一 DSH 内的并行拆解继续使用 DSH 原生 Sub-agent;跨到另一个真人拥有的 Personal Agent 时才使用 Squad。
北京:Alice 的电脑 ──出站 HTTPS──┐
│
上海:Bob 的电脑 ──出站 HTTPS──┼── 公网或企业内网 Relay
│
海外:Carol 的电脑 ─出站 HTTPS──┘
这是一种应用层 Agent 协作网络,而不是 VPN:它不会把成员电脑接入同一个虚拟局域网,也不要求节点之间能够通过 IP 互访。个人节点的 WebUI 应只监听 127.0.0.1;对外只部署 Relay,并通过 HTTPS、精确路由放行和防火墙保护公共入口。
固定运行基线:Node.js 24.18.0、pnpm 10.28.2、DeepSeek Harness 0.1.0-rc.6、Cordis 4.0.1。
当前仓库只发布 @dsh-squad/plugin,不包含独立 SPA、第二套 Runtime CLI 或 Docker 编排;Docker 是可选的部署隔离手段,不是运行要求。
从本仓库构建并安装 tarball:
pnpm install --frozen-lockfile
pnpm run pack
dsh plugin --profile web add ./artifacts/dsh-squad-plugin-0.2.0.tgz --offline
dsh web
安装通过插件内的 cordis.patch.yml 同时挂载 Host Plugin 和 Web Client Module。启动后,原生 DSH 侧边栏出现 智能体收件箱(英文界面为 Agent Inbox);其中的设置页可查看本 Node 的 Ed25519 身份并配置 Peer、公钥固定和本地策略。
在 $DSH_HOME/profiles/web/cordis.patch.yml 中覆盖 dsh-squad 配置。生产 Relay URL 必须使用 HTTPS;仅本机开发允许 loopback HTTP。
- id: dsh-squad
config:
displayName: Alice Personal Agent
pollIntervalMs: 5000
envelopeTtlMinutes: 60
execution:
cwd: /absolute/path/to/alice-workspace
# SAFE 只自动运行以前缀开头的目标;不确定时等待本人接受。
safeObjectivePrefixes:
- summarize
- analyze
relay:
url: https://relay.example.com
invitation: replace-with-one-time-invitation
Peer 可以在 智能体收件箱 → 设置(Agent Inbox → Settings)中添加,也可以在配置中声明。nodeId 必须与 Ed25519 公钥指纹匹配。
- id: dsh-squad
config:
peers:
- nodeId: node_REPLACE_WITH_43_CHARACTER_FINGERPRINT
displayName: Bob Personal Agent
publicKey: |-
-----BEGIN PUBLIC KEY-----
REPLACE_ME
-----END PUBLIC KEY-----
policy:
canMessage: true
canDelegate: true
autoExecute: NEVER
maxConcurrent: 1
maxDelegationDepth: 1
maxRuntimeMinutes: 30
同一个包可以在任意持续在线的 DSH Node 中启用 Relay Server。邀请在配置加载时写入 Relay SQLite,并在新 Node enrollment 时一次性消费。
- id: dsh-squad
config:
displayName: Team Relay
relay:
enabled: true
databasePath: /absolute/path/to/relay.sqlite
maxMailboxItems: 10000
maxRequestsPerMinute: 300
invites:
- token: replace-with-at-least-16-random-characters
expiresAt: 2030-01-01T00:00:00.000Z
Relay API 注册在宿主 WebServer 的 /squad/v1 下;它验证 enrollment、请求签名、nonce、时效、收发双方、邮箱容量和速率限制,但不运行 Agent,也不持有私人 Session 或 HumanTodo。
插件向 Personal Agent 注册两个原生工具:
delegate_to_agent:按 Peer 名称或稳定 nodeId 创建委派;get_delegation_status:读取本 Node 可见的公开状态投影。智能体收件箱 提供待我处理、运行中、已发送、已完成和设置;英文界面对应 Agent Inbox、Waiting for me、Running、Sent、Completed 和 Settings。接收方可选择一个或多个 Todo,提交文本或经 SHA-256/大小验证的附件引用,重启后继续处理,并打开对应的原生 DSH Session。
当前版本完整支持简体中文和英文,并接入 DSH 官方全局语言服务:
zh 区域变体使用简体中文,en 区域变体使用英文,其他语言回退到简体中文。设置 → 通用 → 语言(Settings → General → Language)中切换中文或 English;选择会写入 $DSH_HOME/settings.yaml,Squad 与 DSH 其他界面会立即同步更新。这里的“系统语言”来自打开 WebUI 的浏览器,因此从 Windows 浏览器访问 WSL 中的 DSH 时,会跟随 Windows/浏览器语言,而不是 WSL 的 LANG。
EXECUTION_INTERRUPTED,不会猜测并自动重放未知外部副作用。MVP 的 Relay 是受信任内容中转方,不提供端到端加密;生产部署仍必须使用 TLS。
在 profile patch 中禁用条目并重启 DSH:
- id: dsh-squad
disabled: true
Squad Host route、Agent tools 和 Client Slot 会一起移除,原生 Harness Shell、Session、Settings 和工作区仍可使用。
pnpm verify:pins
pnpm format:check
pnpm typecheck
pnpm build
pnpm test
pnpm smoke:delegation
smoke:delegation 会构建真实 tarball,安装到 Alice、Bob、Relay 三套隔离 DSH Home,并用真实 Chromium 验证:WebUI 配对、Bob 离线投递、Relay/Node 重启、接收端专属 Skill、HumanTodo 部分完成、相同 Session 恢复、Outcome 隐私边界和插件可逆禁用。
本项目使用 MIT License。版本变更见 CHANGELOG.md。
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。