鱼皮AI导航
鱼皮AI导航
  • 主页
  • 社区
  • AI工具
  • AI知识库
  • AI提示词
  • MCP
  • Skills
  • AI学习资源
  • AI资讯
  • GitHub开源
登录/注册

Avernet#deepseek-harness-channel-bcn

通过 WebSocket V2 将 DeepSeek Harness 接入 Avernet Bot 协作网络,支持自动注册、Agent 会话隔离、工具调用事件和多 Bot 路由工具。

通知集成
访问 GitHub
文档README

@avernet-plugin/deepseek-harness-channel-bcn

DeepSeek Harness channel bundle for connecting a DSH Bot to the Avernet Bot Collaboration Network (BCN).

Compatibility

  • DeepSeek Harness baseline: @deepseek-ai/dsh 0.1.1-rc.2
  • BCN Bot WebSocket protocol: V2
  • Node.js: >=22.19.0

This release deliberately negotiates BCN V2. Because V2 session_key can be shared by every conversation in a group, the adapter uses the session-scoped V2 bcs_group_id as the DSH identity when present and falls back to session_key only for legacy group frames. A future V3 bcs_session_id takes precedence without changing the rest of the bridge.

Capabilities

  • Automatic registration and descriptor onboarding through DSH Credentials
  • Persistent Bot Session storage through the official ctx.credentials seam
  • chat.send and chat.inject downlink handling
  • Isolated DSH Agent/Session reuse for each BCN conversation, including multiple V2 sessions that share one group-level session_key
  • DSH Agent preset composition matching Web sessions; new BCN sessions use the configured default preset and resumed sessions restore their recorded preset
  • Assistant delta, final, error, and aborted uplink events
  • Canonical agent/tool start and result events for DSH tool calls
  • BCN coordination tools selected from the authenticated group type and recipient role carried by each downlink
  • bcs_route capture with routing metadata attached to the final chat event
  • Manager-worker task.dispatch, task.message, and task.complete support
  • Heartbeat, exponential reconnect, token rotation, and lifecycle cleanup

The plugin does not create an OpenClaw-style .bcs/session.json file or any other private session directory.

The initial release does not implement chat.abort or chat.history. Unsupported BCN requests receive the WebSocket client's standard NOT_FOUND response, and unsolicited unsupported events are ignored.

BCN messages run in a dedicated in-process DSH Agent created through ctx.agents.create or restored through ctx.agents.resume; they do not reuse a browser tab's live Agent. The plugin mounts that session's DSH Agent preset before publishing the Agent, then adds only the BCN tools allowed for that session:

BCN sessionBCN tools added by this plugin
Ordinary structured-routing groupbcs_route
Manager in a manager_worker groupbcs_assign_task, bcs_task_complete
Worker in a manager_worker groupbcs_send_task_message
Mention-routing group, or manager-worker session without a valid recipient roleNone

The manager/worker decision uses only the server-delivered session_context.recipient_role; it does not infer authority from Bot names, participants, environment variables, or model input. A manager receives its task tools even before workers join the group, but bcs_assign_task can only succeed after its target_bot resolves to a worker accepted by BCS.

With DSH's default standard preset the base tool set includes the Bash, filesystem, search, Skills, planning, subagent, and workflow capabilities selected by DSH. Actual command and file access remains governed by the host's DSH sandbox and permission preset.

Install

One-command setup

After this package is published, install, configure, and start a DSH profile with the repository installer:

▼
bash
复制代码
curl -fsSL https://raw.githubusercontent.com/inclusionAI/Avernet/dev/src/bcs/crates/plugins/deepseek-harness-channel-bcn/install-dsh.sh | \ BCN_ONBOARDING_TOKEN='<registration-token>' bash -s -- \ --endpoint http://127.0.0.1:21000/ \ --profile web \ --bot-name 'DeepSeek Harness Bot'

The installer first checks whether the dsh executable is available. If it is missing, it exits without consuming the registration Token and prints the matching CLI installation command:

▼
bash
复制代码
npm install --global @deepseek-ai/dsh@0.1.1-rc.2

Run the generated onboarding command again after installing the CLI. When DSH is present, the same command installs this plugin, configures the web profile, and starts DSH so the plugin can complete onboarding with the injected Token.

The registration Token is removed from the package-manager and configuration helper environments and is passed only to the final DSH process. The installer does not print or persist it. If the command is generated by a trusted BCN portal, avoid copying it into shared shell history or logs because the command itself contains the short-lived Token.

Pass --no-start to install and configure without launching DSH. In that mode the Token is deliberately discarded and must be supplied again on the first start. --package <directory-or-tarball> replaces the npm package spec for local and release-artifact testing.

The installer delegates profile changes to the packaged dsh-bcn-configure command. That helper preserves unrelated patch rows and !!js expressions, refuses symlinked profile configuration, writes atomically, and rolls back if dsh --dump-config rejects the composed profile.

Manual and release-artifact setup

From a checkout, build the package and add its directory to an isolated DSH profile:

▼
bash
复制代码
cd src/bcs/crates/plugins/deepseek-harness-channel-bcn npm install --ignore-scripts --no-package-lock npm run build dsh plugin --profile bcn-local add "$(pwd)"

To exercise the exact prebuilt artifact that will be published:

▼
bash
复制代码
mkdir -p /tmp/dsh-bcn-pack npm pack --pack-destination /tmp/dsh-bcn-pack dsh plugin --profile bcn-tarball add /tmp/dsh-bcn-pack/avernet-plugin-deepseek-harness-channel-bcn-0.1.0.tgz

After publication, the installation command will be:

▼
bash
复制代码
dsh plugin --profile <profile> add @avernet-plugin/deepseek-harness-channel-bcn

The bundle patch adds the plugin in a disabled state, so installing it never forces a network connection before credentials and endpoint configuration are ready.

Configure

Enable and configure the inserted Cordis row in the target DSH profile:

▼
yaml
复制代码
- id: deepseek-harness-channel-bcn name: '@avernet-plugin/deepseek-harness-channel-bcn' config: enabled: true endpoint: http://127.0.0.1:21000/ botName: DeepSeek Harness Bot summary: General-purpose DeepSeek Harness agent domains: - general skills: - chat scopes: - chat onboardingTokenRef: BCN_ONBOARDING_TOKEN botSessionRef: BCN_BOT_SESSION

endpoint accepts both http:// and https://. The matching WebSocket transport is derived automatically (ws:// or wss://) and an existing API path prefix is preserved. HTTP is useful for local and controlled deployments; use HTTPS when transport confidentiality is required because onboarding and Bot credentials otherwise travel without TLS.

Remote endpoints may not resolve to private, link-local, or reserved addresses. Exact loopback destinations are allowed for local development. DNS is resolved, screened, and pinned before the HTTP or WebSocket connection to prevent DNS rebinding from changing the validated destination.

The package contains no private endpoint and does not modify the BCS frontend. An endpoint and registration Token can be supplied later by any trusted CLI, portal, or BCS onboarding flow.

Credentials and Bot ownership

The configuration stores references only. The default references are POSIX credential identifiers required by DSH:

  • BCN_ONBOARDING_TOKEN
  • BCN_BOT_SESSION

Provide the short-lived registration Token through the DSH credential provider under BCN_ONBOARDING_TOKEN; an inherited environment variable is also an official DSH credential source. On first start the plugin exchanges it for a Bot Session and writes this JSON value under BCN_BOT_SESSION using ctx.credentials.set:

▼
json
复制代码
{ "version": 1, "endpoint": "http://127.0.0.1:21000/", "botUuid": "<server-issued UUID>", "botToken": "<server-issued Bot token>", "botName": "DeepSeek Harness Bot" }

The local DSH credential provider persists writable values in its managed $DSH_HOME/.credentials.yaml; that location and format belong to DSH, not this plugin. The plugin never writes a dedicated session file. It also never stores an additional copy of the registration Token: the source supplied by the caller remains caller-managed.

Bot ownership is decided only by BCS when it validates the human registration Token. No client-provided ownerId or owner_id is sent or trusted. The stored Bot Session is bound to its canonical endpoint, and a later endpoint mismatch fails before the Bot token can be sent elsewhere.

Do not supply BCN_BOT_SESSION through a read-only environment variable if the server may rotate its Bot token: DSH intentionally rejects writes that are shadowed by a read-only credential source. Let the managed credential provider own this reference instead.

Data boundary

BCN is treated as a trusted receiver for observable tool activity. The plugin sends:

  • complete DSH tool/call arguments as parsed JSON, or the original string when parsing is not possible;
  • model-visible tool/result content and its isError flag;
  • assistant-visible text and final routing metadata.

Calls to bcs_assign_task, bcs_send_task_message, and bcs_task_complete use the existing BCN V2 task.dispatch, task.message, and task.complete requests. Their arguments and model-visible results also appear through the same canonical agent/tool telemetry as other DSH tools.

The plugin does not send raw reasoning, credentials, internal exception stacks, or tool-private metadata. Tool arguments and results are not copied into normal plugin logs. It emits only canonical agent/tool events and does not duplicate them as chat.event tool_call_start/tool_call_end events.

Verify

▼
bash
复制代码
npm run typecheck npm test npm run build npm pack --dry-run

For a fresh DSH profile, run dsh --profile <profile> --dump-config after installation to verify that the bundle composes without a source checkout. A full local integration uses a loopback BCS endpoint, enables the Cordis row, and sets BCN_ONBOARDING_TOKEN through DSH Credentials before starting the profile.

The source package should be merged into Avernet and validated as a tarball before npm publication. Any later listing on deepseek-harness-plugin.com is a community directory entry, not an official DeepSeek review or marketplace approval.

通知集成

快捷安装

复制到终端去安装插件

dshplugin--profilewebaddgithub:inclusionAI/Avernet#path:/src/bcs/crates/plugins/deepseek-harness-channel-bcn

温馨提示

装插件等于在本机跑第三方代码,权限与你相同,能读文件、用凭据、访问网络,工具审批管不到。请只装可信来源,并尽量锁定 commit。

站长:程序员鱼皮 老鱼简历 商务合作 增值电信业务经营许可证
2026 鱼皮AI导航 | 沪ICP备19026706号-6
站长:程序员鱼皮 老鱼简历 商务合作 增值电信业务经营许可证
2026 鱼皮AI导航 | 沪ICP备19026706号-6
🔥热门工具
朱雀AI检测朱雀AI检测
朱雀AI检测助手朱雀AI检测助手
LovartLovart
老鱼简历老鱼简历
WritePass官网WritePass官网
面多多面多多
CursorCursor
星月写作星月写作
零感AI零感AI
墨得问题墨得问题
dsh 插件推荐
dsh-approval-voice
DSH Web GUI 中出现审批、提问或计划审批弹窗时,播放提示音并中文语音播报,避免漏看待处理请求。
dsh-plugin-oauth-subs
通过 OAuth 和本地代理,将 ChatGPT Codex、xAI Grok、智谱 GLM、AWS Kiro、Google Antigravity 与 Cursor 订阅接入 DeepSeek Harness。
dsh-task-watcher-plugin
Windows 托盘任务监视器:部署并管理独立监视程序——四态托盘图标(灰=未连接、绿=空闲、橙=运行中、红=有待处理)、逐任务实时面板(时长/速度/token)、完成与结局通知。设置→插件内启停开关;监视器独立进程运行,DSH 重启不影响。
dsh-notify-xc
DSH 浏览器通知插件 - 任务完成 / 运行出错 / 需要你回答、批准、审阅计划时弹系统级通知,点击气泡直达会话,三类通知独立开关,主会话等子代理期间不误报完成。
dsh-session-notify
会话轮次结束时推送浏览器系统通知与页内提示,内置 5 种语言模板与自定义预设。