主 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
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 24 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
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.
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
wbdxy/dsh-tabbit-brain
主 AI 通过 tabbitbrain 调用本地 Tabbit 网关。插件自己管理专用提示词和历史,不创建 DSH 子…
相关插件 · 模型接入
API 中继安全审计toby-bridges/api-relay-audit
面向 AI API 中转与 LLM 代理的本地安全审计。
★ 897已汉化DSH
69.4
免费搜索插件DDDMUC/dsh-free-search
DeepSeek Harness 免费搜索插件 —— 无需 API key,零成本,多引擎可切换。 一个给…
★ 761已汉化DSH
68.7
免费联网搜索liustack/modsearch
在官方 App 里模型能联网,切到 API 就不能了。ModSearch 把联网补回来:网页搜索、X…
★ 863已汉化DSH
68.5
OpenCode 免费模型FishBottle7/opencode2dsh
在 DSHDeepSeek Harness里原生使用 OpenCode Zen 的免费匿名模型。
★ 379已汉化DSH
67.8
AI 模型网关tingly-dev/tingly-box
Tingly Box Web UI 演示
★ 373已汉化DSH
67.4
WorkBuddy 账号池XDTrees/dsh-xdpool
把你能白嫖的模型额度接进 DSH 同一个池:WorkBuddy 多账号自动容错、十三家扫码登录、76…
★ 359已汉化DSH
67.1