dsh-rabiroute-agent:在 DSH 里接入 RabiRoute 任务与计划

前言

DeepSeek Harness(DSH)负责本地 Agent 会话、工具权限和运行上下文;RabiRoute 侧则持有人格、计划、记忆和渠道投递等业务状态。若两套系统各跑各的,开发者往往要在 Codex 客户端和 DSH 之间来回切换,或在 DSH 里手写 HTTP 去调 Manager,很难把「当前会话正在跟进哪条计划」稳定地写进模型上下文。

下面介绍社区插件 dsh-rabiroute-agent(维护者 vb2250158,当前包版本 0.13.40,MIT 许可证)。它在不另启 Runtime、不改投 Codex 的前提下,把 DSH 会话接到 RabiRoute 的受管任务、消息、计划和记忆接口;业务合同与 Codex 对齐,会话与工具仍由 DSH 持有。

这是什么

dsh-rabiroute-agent 是开源 DSH 插件,分类为工作流。README 中的定位是:把 DSH 会话接入 RabiRoute 的受管任务、消息、计划和记忆接口;业务真源仍在 Rabi,插件负责 DSH 侧的连接、工具注册、界面插槽与模型上下文装配。

运行要求:本 release 需要 DSH 0.2.1-alpha.1 或兼容的 0.2 系列(详见仓库内 docs/dsh-0.2-compatibility.md)。

核心功能

以下能力均来自 README 与 package 说明,按使用路径归纳。

Rabi 工具与连接

插件向 DSH 注册三类工具(0.13.22 起不维护 Manager API 白名单,Rabi 当前与未来接口均可经 Manager 工具调用):

  • rabiroute_agent_threads:查找、读取、创建、续投 Agent 线程及正式回复等。
  • rabiroute_agent_send:向渠道或其他人格外发消息,保留投递回执。
  • rabiroute_manager_api:通用 Manager HTTP 调用,插件仍负责同源路径、Host 发现、身份核对与不自动重放。

rabiHost 服务提供 inspect(signal) 与 start(signal),用于读取本机 Host 状态或显式激活;发现逻辑使用配置 hostExecutable、环境变量 DSH_RABI_HOST_EXECUTABLE 或已缓存路径,不遍历磁盘。验证路径默认写在 $DSH_HOME/plugins/dsh-rabiroute-agent/host-location.json。

连接与降级策略(0.8.0):普通业务请求要求 /meta 满足 live、就绪及身份一致;精确 GET /meta 可在核心未就绪时仍用于诊断。managerBaseUrl 留空时经 Host status --json 动态发现;非空时为显式 Manager 的完整 HTTP(S) origin。

DSH 原生 Agent Hook

默认启用 agentHooksEnabled,监听会话入口、用户提交、工具执行前后与轮次结束。自动化规则在 RabiRoute「人格 → 自动化 → Agent Hook」中配置;不读取 Codex 配置,也不启动其它 Agent。Manager 返回的上下文注入、工具拒绝与「继续处理」由 DSH 执行,每轮继续处理最多一次。

DSH 日志会写入 plugin:dsh-rabiroute-agent/hook-invoked 与 hook-result,供 dsh-hook-insights 0.2.0 起统计(不含原始正文或工具参数)。安装后需重启 DSH 并刷新页面,新轮次才会产生记录。

0.13.38 起支持断连时的上下文快照(需宿主调用 rabiAgentHooks.requireBinding 并选择 allowCachedContext)。快照默认存于 $DSH_HOME/plugins/dsh-rabiroute-agent/hook-context-cache.json,含私人上下文,不应纳入 Git 或共享配置。

计划、侧栏与会话展示

  • 计划上下文(0.9.5):用户消息进入模型时,经官方 systemPrompt.context 附带绑定计划的摘要(标题、状态、步骤、进度及 rabiroute_manager_api 详情参数)。planContextEnabled 默认 true。
  • 工作区 Rabi 计划弹窗:工作区与路由人格匹配时,标题右侧显示 Rabi 按钮;列表依赖 POST /api/roles/:roleId/plans/query 与宿主侧栏插槽。弹窗内还提供「检查推进」与「推进设置」(规则按人格工作区保存,自动推进默认关闭)。
  • 会话计划状态标签(0.13.18):分组/平铺/搜索列表中,会话文字左侧常驻计划状态标签;多计划绑定时显示「多个计划」。宿主需安装包内会话行扩展补丁。
  • 计划材料归档(0.10.0):截图与文件可自动归入绑定计划,详见仓库 PLAN-RESOURCES.md。

会话模式

  1. Rabi助手模式:安装后自动注册 rabi-assistant,会话菜单可选;开放上述 Rabi 工具,并保留官方 web_search、web_fetch;装配 DSH 官方压缩与工具结果裁剪。
  2. 消息处理模式(message-processing):仅向模型提供 Rabi 三类工具,通过 tools.guard 拒绝 Shell、文件、子 Agent 等非 Rabi 工具;适合以「收消息、投渠道、跟计划与任务」为主的会话。新会话在模式菜单中选择;已有消息的会话不能切换模式。启用前需将包内 presets/message-processing/ 两个 YAML 复制到 DSH Home 的 .agent-presets/message-processing/,或把 presets/ 追加到 agent-presets.config.roots(存在同名预设时先核对,不覆盖用户配置)。

其它 UI 能力包括:可选 proactive-answer.message 提问回答卡片、TTS 经 POST /rabiroute/speech、非 DSH 来源的「定位到 Agent」交给 RabiRoute 唤起客户端窗口等。README 强调:源码测试、隔离连接验证不能代替正式环境安装后的 Hook 与真实业务投递验收。

安装与启用

通过 DSH「设置 → 我的插件」或官方入口,使用可获取的固定 Git 提交安装(将 <commit> 换为实际 commit):

pnpm dsh plugin --profile web add --save-exact github:vb2250158/dsh-rabiroute-agent#<commit>

说明这一步在做什么:在指定 profile(示例为 web)下以精确版本 pin 安装插件包;--save-exact 写入锁文件,便于后续核对真实加载版本。

安装后建议:

  1. 使用本机实际的 DSH Home 与 profile;包通过 dsh.bundle 注册配置层,不改官方源码。
  2. 活动任务结束后经受管入口重载,并核对加载版本与工具 schema。
  3. 重启 DSH 并刷新页面(Hook 日志、TTS、部分 UI 依赖此步骤)。

若需消息处理模式,在插件安装完成后复制预设 YAML(见上一节),再为新会话选择「消息处理模式」。

典型用法

配置 Manager 与 Host

当前 profile 的 cordis.patch.yml 示例(来自 README):

- id: rabiroute-agent
  config:
    managerBaseUrl: ""
    hostExecutable: ""
    enforceAgentCommunication: true
    requestTimeoutMs: 60000
  • managerBaseUrl 留空:每项操作经 Host 发现当前 Manager 地址并核对 /meta。
  • hostExecutable:非 Windows 或非常规安装时,可显式指定 Host 可执行文件;留空时 Windows 可据 LOCALAPPDATA 推导。
  • requestTimeoutMs:整项操作预算,默认 60000 毫秒(1–120 秒)。

机器专属值只保存在本机,不加入共享补丁。

经 Manager 工具更新计划

README 给出的 rabiroute_manager_api 调用形态示例(写入前须自行读取现行接口文档与 ETag,此例不是执行授权):

{
  "method": "PATCH",
  "path": "/api/roles/example-role/plans/example-plan",
  "bodyJson": "{\"currentStep\":\"已按实际证据更新\"}",
  "requestHeadersJson": "{\"If-Match\":\"\\\"revision-from-get\\\"\",\"Idempotency-Key\":\"stable-operation-id\"}"
}

最小真实验收路径:安装重载后,在会话内用正式工具执行 GET /meta 核对 Host 身份,再按需做业务读写;单独的配置检查不能证明 Hook 或渠道投递正常。

Hook 自动化

在 RabiRoute 管理端配置「Agent Hook」规则后,DSH 会在对应生命周期阶段调用 Manager;可用 dsh-hook-insights 查看 hook-invoked / hook-result 统计。继续处理与工具拒绝结果以 DSH 权限为准,失败或待核对状态不会自动重发写操作。

适用场景与注意

适合谁

  • 已在用 RabiRoute 管理人格、计划、记忆与渠道,希望在 DSH 里用同一套业务合同做 Agent 开发与调试。
  • 需要会话列表、侧栏或 system prompt 中可见的计划状态,而不是每次手动粘贴计划摘要。
  • 需要「只走 Rabi API」的专用会话(消息处理模式)或带联网能力的 Rabi助手模式。

务必知晓

  • 插件以当前 DSH 进程权限运行;安装前应阅读源码与 MIT 许可证,并理解工具可触达本机 Host、Manager 及 Rabi 授权范围内的业务接口。
  • 业务数据与授权以 Rabi 为准;插件不自动重放失败写入,超时或身份变化会保留「不确定」状态。
  • hook-context-cache.json、host-location.json 等为本机私有文件,勿提交到 Git 或共享配置仓库。
  • 跨机访问 DSH 时,内嵌 Rabi 计划 iframe 可能不可用(README 已说明 loopback 与 Electron file:// 限制)。
  • SkillHub 目录页为社区收录;安装命令与版本以 GitHub README 与固定 commit 为准,勿用未文档化的命令拼写。

结尾

dsh-rabiroute-agent 把 RabiRoute 的计划、任务、记忆与 Hook 自动化接到 DSH 会话层,同时保留 DSH 对工具与运行时的控制。若你的 workflow 已经 centered 在 Rabi 上,它提供的是一条可验收的桥接路径,而不是第二套 Agent Runtime。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜