🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

Tabbit 子代理大脑 wbdxy/dsh-tabbit-brain

DeepSeek Harness
wbdxy24 天前有提交已提供中文文档扫描:含敏感能力

主 AI 通过 tabbitbrain 调用本地 Tabbit 网关。插件自己管理专用提示词和历史,不创建 DSH 子…

29.8/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/16 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add wbdxy/dsh-tabbit-brain
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:待复验
是什么
dsh 原生插件 · model
装得上吗
曾在 dsh 0.2.0-rc.2 下真实安装成功,但当前 dsh 已更新至 0.2.1-rc.5,本站尚未在新版下复验
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 24 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

可执行外部命令读写/删除本地文件读取剪贴板或密钥环境变量发起外部网络请求
查看扫描证据(共 35 处,展示前 32 条)
  • 写入本地文件
    lib/index.js:66
    try { appendFileSync(diagnosticsPath, `${new Date().toISOString()} ${msg}\n`, 'utf8') } catch {}
  • 发起网络请求
    lib/index.js:91
    await fetch(`${base}/healthz`, { signal: ctrl.signal })
  • 执行外部命令来自配置/变量
    lib/index.js:125
    const child = spawn(opts.gatewayStartCommand, {
  • 发起网络请求
    lib/brain-service.js:35
    const response=await fetch(`${base}/v1/chat/completions`,{method:'POST',redirect:'error',signal:ctrl.signal,headers:{'Content-Type':'application/json'
  • 写入本地文件
    lib/brain-store.js:47
    static open(path) { mkdirSync(dirname(path), { recursive: true }); return new BrainStore(new DatabaseSync(path)); }
  • 读取本地文件
    gateway-patch/files/src/brain-session-map.mjs:61
    text = await readFile(statePath, 'utf8');
  • 写入本地文件
    gateway-patch/files/src/brain-session-map.mjs:80
    await rename(statePath, backupPath);
  • 写入本地文件
    gateway-patch/files/src/brain-session-map.mjs:97
    await mkdir(dirname(statePath), { recursive: true });
  • 删除本地文件
    gateway-patch/files/src/brain-session-map.mjs:114
    if (created) await unlink(temporary).catch(() => {});
  • 读取本地文件
    gateway-patch/files/src/config.mjs:13
    if (existsSync(path)) {
  • 读取本地文件
    gateway-patch/files/src/config.mjs:14
    for (const line of readFileSync(path, 'utf8').split(/ ? /)) {
  • 读取密钥环境变量
    gateway-patch/files/src/config.mjs:46
    accountKey: ENV.TABBIT_ACCOUNT_KEY || process.env.TABBIT_ACCOUNT_KEY || 'default',
  • 读取密钥环境变量
    gateway-patch/files/src/config.mjs:49
    signKey: ENV.TABBIT_SIGN_KEY || process.env.TABBIT_SIGN_KEY || '',
  • 读取密钥环境变量
    gateway-patch/files/src/config.mjs:53
    apiKey: ENV.API_KEY || process.env.API_KEY || '',
  • 读取本地文件
    gateway-patch/files/src/server.mjs:158
    let content = readFileSync(envPath, 'utf8');
  • 写入本地文件
    gateway-patch/files/src/server.mjs:162
    writeFileSync(envPath, content);
  • 写入本地文件
    gateway-patch/files/src/server.mjs:434
    mkdirSync(WIDGETS_DIR, { recursive: true });
  • 写入本地文件
    gateway-patch/files/src/server.mjs:442
    writeFileSync(file, body, 'utf8');
  • 读取本地文件
    gateway-patch/install.mjs:107
    return !existsSync(src) || !statSync(src).isFile();
  • 读取本地文件
    gateway-patch/install.mjs:107
    return !existsSync(src) || !statSync(src).isFile();
  • 读取本地文件
    gateway-patch/install.mjs:126
    } else if (existsSync(gitDir)) {
  • 执行外部命令固定命令
    gateway-patch/install.mjs:130
    execFileSync('git', ['-C', DIR, 'pull', '--ff-only'], { stdio: 'inherit', timeout: 120000 });
  • 读取本地文件
    gateway-patch/install.mjs:133
    } else if (existsSync(DIR) && readdirSync(DIR).length > 0) {
  • 读取本地文件
    gateway-patch/install.mjs:133
    } else if (existsSync(DIR) && readdirSync(DIR).length > 0) {
  • 写入本地文件
    gateway-patch/install.mjs:140
    mkdirSync(dirname(DIR), { recursive: true });
  • 执行外部命令固定命令
    gateway-patch/install.mjs:144
    execFileSync('git', argv, { stdio: 'inherit', timeout: 300000 });
  • 读取本地文件
    gateway-patch/install.mjs:160
    if (existsSync(dst) && !existsSync(`${dst}.upstream-bak`)) copyFileSync(dst, `${dst}.upstream-bak`);
  • 写入本地文件
    gateway-patch/install.mjs:160
    if (existsSync(dst) && !existsSync(`${dst}.upstream-bak`)) copyFileSync(dst, `${dst}.upstream-bak`);
  • 写入本地文件
    gateway-patch/install.mjs:161
    mkdirSync(dirname(dst), { recursive: true });
  • 写入本地文件
    gateway-patch/install.mjs:162
    copyFileSync(src, dst);
  • 写入本地文件
    gateway-patch/install.mjs:212
    if (add) { writeFileSync(envPath, cur + (cur.endsWith('\n') ? '\n' : '\n\n') + add + '\n'); ok('已补缺失项'); }
  • 写入本地文件
    gateway-patch/install.mjs:215
    writeFileSync(envPath, envContent);
扫描于 2026/11/1(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/schemastery@deepseek-ai/dsh-tools@deepseek-ai/dsh-jobs
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 挂载独立预设
  • 避免继承父会话提示词
  • 本地网关委派推理

DeepSeek Harness 子代理服务商:通过本地网关把推理任务交给 Tabbit 提供的模型。自带精简预设、网关管理和委派指引。

README

由 DeepSeek 最新模型翻译生成
dsh-tabbit-brain 插件内部静默推理会话 主 AI 通过 tabbit_brain 调用本地 Tabbit 网关。插件自己管理专用提示词和历史,不创建 DSH 子 agent,不继承工具、技能目录或主对话历史。没有额外 UI 窗口。 安装与前置条件: SETUP.zh.md. 反代协议: REVERSE-PROXY.zh.md. 外部思考伙伴 注入指引说明主代理为什么、何时应调用 Brain:独立代码审查、候选原因与反例、设计取舍、复杂推导、写作初稿和完成前复核。独立分析可与证据收集并行。主代理提供边界明确的简报、收集结果、核验发现并负责最终交付;委派不保证准确率更高或完成更快。 standard 鼓励有价值的独立分析,无需等待用户点名工具。aggressive 沿用同一能力说明和验证规则,降低较小任务的调用门槛;off 关闭注入指引。简单事实与短小修改可由主代理直接完成。用户点名模型时通过 model 传入,否则使用配置中的 agentModel,不根据模型名称假定专长。 工具与会话 - tabbit_brain 的 description 和 prompt 必填;conversation、model 和 run_in_background 可选,默认后台执行。
展开完整文档(README 剩余 1 节)
dsh-tabbit-brain

插件内部静默推理会话

主 AI 通过 tabbit_brain 调用本地 Tabbit 网关。插件自己管理专用提示词和历史,不创建 DSH 子 agent,不继承工具、技能目录或主对话历史。没有额外 UI 窗口。

安装与前置条件: SETUP.zh.md. 反代协议: REVERSE-PROXY.zh.md.

外部思考伙伴

注入指引说明主代理为什么、何时应调用 Brain:独立代码审查、候选原因与反例、设计取舍、复杂推导、写作初稿和完成前复核。独立分析可与证据收集并行。主代理提供边界明确的简报、收集结果、核验发现并负责最终交付;委派不保证准确率更高或完成更快。

standard 鼓励有价值的独立分析,无需等待用户点名工具。aggressive 沿用同一能力说明和验证规则,降低较小任务的调用门槛;off 关闭注入指引。简单事实与短小修改可由主代理直接完成。用户点名模型时通过 model 传入,否则使用配置中的 agentModel,不根据模型名称假定专长。

工具与会话

- tabbit_brain 的 description 和 prompt 必填;conversation、model 和 run_in_background 可选,默认后台执行。省略 model 时使用配置中的 agentModel;也可以传入当前网关通过 /v1/models 暴露的任意模型 id,仅覆盖本次请求。Harness 的 jobId 与 brainJobId 是不同标识:用 job_output/job_kill 收集或取消 Harness 作业,用 tabbit_brain_status 查看 Brain 作业。
- 模型覆盖值会原样发送到 /v1/chat/completions。只有网关返回相同的模型 id 时插件才接受结果;网关拒绝请求或静默切换模型时会报告错误。
- tabbit_brain_list 列出所属会话;tabbit_brain_read 返回消息的 seq。读取更早一页时,将 before 设为当前页最小的 seq。
- tabbit_brain_archive 归档所属会话;tabbit_brain_delete 删除其本地记录。两者均不证明远端账号记忆已删除。
- tabbit_brain_reset 仅清空本地历史,标签须处于空闲状态,并保留远端上下文。
- 历史按调用者 owner 和会话标签隔离。SQLite 位于 ~/.dsh/plugins/dsh-tabbit-brain/state/brain.sqlite,进程重启后保留。同标签请求串行,不同标签独立。失败回合不进入历史。
- 每次请求快照配置。当前任务须满足 contextBudgetChars;超限时丢弃较早的完整问答对,不静默截断当前任务。
- 请求没有 tools 或 tool_choice。前台回执包含 kind、conversationId、requestId、model、endpoint 和 content;这些字段标识本地路由,不证明上游供应商内部模型实现。

能力边界:DSH Skill、Tabbit 妙招、浏览器与附件

tabbit_brain 是发往本地 OpenAI 兼容网关的文字请求。它不会继承主 DSH 对话、本机 DSH skill-catalog、工作区文件、附件、浏览器标签页或 DSH 工具。若任务需要 DSH 专有 Skill,必须由主代理先运行该 Skill,再把结果、提取证据或忠实的文字转录放进 prompt;Brain 不能按名称或本机路径发现、读取或执行 DSH Skill。

上游 Tabbit 服务是另一层能力。反代模型已经实测会通过 Tabbit 自己的 tab_help_rag 资料源检索官方 Prompt/Script/Agent Skill 与妙招资料,普通聊天也能调用上游搜索和网页抓取工具。网页访问受站点限制,返回事实仍需核验。这是 Tabbit 服务端能力,不是 DSH Skill 目录访问。

反代多模态路径已实测具有读图能力;但当前 tabbit_brain 工具本身只接收文字,通用文件附件没有接通。读取本地文件或图片时,应由主代理先读取,再把相关文字或描述交给 Brain;图片也可走另行接通的网关多模态请求。

浏览器必须区分:已观察到上游产生浏览器任务事件并传递 agent_mode,但当前桥接尚未返回可验证的最终 URL、DOM 变化、截图或浏览器状态回执,因此它不是 tabbit_browser 控制通道。Tabbit 的 browser_control/妙招指令可能以文字返回,但本插件不会继续执行。show_widget 的 HTML/SVG 产物可以被网关捕获并写入文件;DSH 内嵌渲染尚未作为已验收契约。

全局入口与启动限制

工具在普通主代理自己的 scope 中注册,与预设独立。拥有工具的普通子代理可使用自己的 owner 调用 Brain,历史独立,不与父代理共享 owner。router-standard 仍须正常完成首次 phase_begin,装配后才暴露其他工具。own-layer 注册不受继承的 DSH allow/deny 过滤器约束;停用插件可禁止此能力。插件不自动推进阶段。

配置

| Field | Schema default |
| agentModel | 'DeepSeek-V4.1-Flash' |
| apiKeyEnv | 'TABBIT_API_KEY' |
| brainPrompt | bundled text-only prompt |
| contextBudgetChars | 16000 |
| requestTimeoutMs | 120000 |
| gatewayUrl | 'http://127.0.0.1:8787' |
| gatewayAutoStart | false |
| gatewayWarmup | false |
| gatewayStartCommand | '' |
| gatewayStartCwd | '' |
| gatewayStartTimeoutMs | 20000 |
| delegationStyle | 'standard' |
| diagnostics | false |
| diagnosticsPath | '' |

Set apiKeyEnv to the name of the environment variable holding the gateway key. Do not put the key in source or docs. brainPrompt is shipped in the package; no companion DSH preset is required. Gateway auto-start is lazy unless warmup is enabled. A detached gateway can outlive DSH.

只读 setup 检查助手

BrainService 使用 apiKeyEnv 指定的环境变量直接 POST 到 gatewayUrl,无需 DSH provider、专用 preset 或 DSH 模型目录登记。node scripts/setup.mjs --help 列出检查选项。默认离线运行;--check-gateway 显式检查 /v1/models,并按需核对 --models。--api-key-env 选择密钥环境变量且不输出其值。--dry-run 只打印计划而不连接,--yes 用于自动化。助手永不启动网关,也不读取或写入 settings、preset 或凭据。

边界与验收

- Cookie acquisition belongs to the gateway. A normal running Tabbit without CDP causes acquisition to skip; valid old cookies remain usable. See SETUP for explicit recovery.
- Brain 将每个本地会话绑定到账号/环境 scope 下创建时为空的远端会话;provenance 和 fail-closed 恢复见 SETUP。本地隔离不证明生产隔离。[System] 是文本角色标记,不代表原生 system 角色保证;远端隐藏账号记忆尚未证明不存在。
- 能力验收分层记录:反代 Tabbit 模型已实证上游搜索/网页抓取(有站点限制)、多模态读图、Tabbit 自有 Skill/妙招资料检索和网关侧 HTML/SVG Widget 捕获。browser_task_tool 与 agent_mode 尚未返回可验证浏览器状态回执;返回的 browser_control 块只是指令,不等于已执行。当前主机证据和边界见 D:/my-project/tabbit-capabilities-4efc/EXTENDED-CAPABILITIES.md。
- Task4 源码检查(83 项测试)、独立 review、默认端口部署、重启映射、新主对话冒烟、A/B 隔离、后台任务和分页已在本机部署验收。它们不代表所有上游网站、模型、Skill 类型或 Tabbit 浏览器操作都同样可用。
- Windows gateway only. Browser PID-difference cleanup retains a known user-launch race; do not open Tabbit while headless acquisition is in progress.

Development

npm run check, npm run test:brain, npm run scan, npm run audit:docs; setup fixture tests: python tools/test-setup.py (requires PyYAML). Read the current code for exact host contracts. No UI panel or autonomous agent loop is implemented.

License

MIT. Upstream gateway code has separate provenance; an overlay of upstream-derived files is not automatically exempt from upstream licensing requirements. Public redistribution permissions remain unresolved.
预览分享卡片长什么样 ↓wbdxy/dsh-tabbit-brain
分享 · DeepSeek Harness Hub
wbdxy/dsh-tabbit-brain

主 AI 通过 tabbitbrain 调用本地 Tabbit 网关。插件自己管理专用提示词和历史,不创建 DSH 子…

回到顶部