deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
PROJECT TOPICS
PROJECT README
A decentralized "ask a colleague's agent" plugin for DeepSeek Harness (dsh).
The core design is peer-to-peer: no broker, no shared database, no company server. Every agent runs its own endpoint and keeps its own copy of the relationships, so asking happens directly between two agents over the LAN. Unlike central-server integrations (e.g. a Feishu/Slack bot), there is nothing in the middle to operate or trust — one agent just asks another and gets a committed answer from the colleague's own workspace and session context.
ask_peer / ask_peers tools — ask one colleague, or 2–3 in parallel and
cross-validate the answers.peers_list shows who knows what, so the model
picks the right peer instead of guessing.auto mode.ask_peer_async / ask_result) — no interruption of the
answerer's current work.0.1.0-rc.6 (developer-preview line this plugin is verified against)^22.19.0 || >=24.0.0, pnpm >=10# local checkout (development)
dsh plugin --profile web add /path/to/dsh-ask-peer
# git install — pin a commit
dsh plugin --profile web add github:zzhzz/dsh-ask-peer#<sha>
# npm / tarball (prebuilt)
dsh plugin --profile web add dsh-ask-peer
dsh plugin --profile web add ./dsh-ask-peer-0.1.0.tgz
For a git install, pnpm fetches sources and runs the package's prepare
script to build them; pnpm >=10 requires you to allow the build first. Copy
the package key pnpm prints into the profile's pnpm-workspace.yaml and
re-run the add:
allowBuilds:
dsh-ask-peer: true
Only three bootstrap settings are required in the profile's
cordis.patch.yml; everything else is editable from the Web UI
(Settings → Ask Peer) and persisted to the plugin's own settings file:
- id: ask-peer
config:
callerName: 'ada'
keyDir: '/home/ada/.dsh-ask-peer/keys'
listen: true
Then start the profile (dsh --profile web), open Settings → Ask Peer,
and:
Copy your sign (public key) or friend card and send it to a colleague running the same plugin.
Paste their card under Add friend from a card.
Set each friend's policy: ask (default, you approve), auto, or deny.
Ask in any session, e.g.:
Use
ask_peerto ask Bob's agent how to set up the local dev environment, withcontextFiles: ['docker-compose.yml', 'Makefile'].
The most important keys (full schema in src/config.ts):
| Key | Default | Meaning |
|---|---|---|
callerName |
'local' |
Your identity; peers allowlist this name. |
keyDir |
~/.dsh-ask-peer/keys |
Where your signing keys live. |
listen / listenHost / listenPort |
false / 127.0.0.1 / 3877 |
Inbound ask server. |
peers |
[] |
Friends (name, host, port, token/sign, mode). |
requireToken |
true |
Require a shared token (or friend sign) on inbound asks. |
timeoutMs |
120000 |
How long to wait for a peer's answer. |
approvalTimeoutMs |
120000 |
How long to wait for your approval of an inbound ask. |
allowExecution |
false |
Future execute-mode hook (not wired yet). |
See docs/ARCHITECTURE.md for the full configuration table, wire protocol, security model, and roadmap.
127.0.0.1 by default; only listen on the LAN if you trust it.pnpm install
pnpm run build # host plugin (lib/) + browser bundle (lib/client.js)
pnpm smoke # keyless 3-instance smoke test
pnpm web-check # verifies the web bundle is discovered and served
When pushing to GitHub, add the dsh-plugin topic to the repository for
ecosystem discoverability (About → Topics, or gh repo edit <owner>/<repo> --add-topic dsh-plugin), plus functional topics such as deepseek-harness,
dsh, p2p, peer-to-peer, decentralized, agent-collaboration, lan.
For npm, pnpm publish — the prepare script builds lib/ before
pack/publish.
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。