← 返回列表
未验证
拦截每次工具调用,按业务规则放行或转人工审批
尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/8/18 · 已提供中文文档
代理式 AI 的权威层,作为 DeepSeek Harness 插件。通过 TapPass /v1/govern 依据你的业务规则管控每一次工具调用。
综合分
27
GitHub 分
27
用户评分
—
★ Stars
0
周下载量
—
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add tappass/dsh-governance该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/16(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
依赖的 DSH / Cordis 模块
@deepseek-ai/schemastery@deepseek-ai/cordis@deepseek-ai/dsh-agent@deepseek-ai/dsh-attachment@deepseek-ai/dsh-brand@deepseek-ai/dsh-code-runtime@deepseek-ai/dsh-credentials@deepseek-ai/dsh-invariants@deepseek-ai/dsh-llm@deepseek-ai/dsh-scope@deepseek-ai/dsh-session@deepseek-ai/dsh-system-prompt用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动
README
面向 DeepSeek Harness 的 TapPass 治理
面向智能体 AI 的授权层,以 DeepSeek Harness 插件的形式提供。
DeepSeek Harness 中的一切都是插件。而这个插件决定了你的智能体被允许做什么。
护栏和安全分类器问的是“这个输出有害吗?” 那是模型的一种属性。TapPass 问的是另一个问题:“根据我们的规则,这个智能体现在被允许做这件事吗?” 那是你业务的一种属性,任何模型层面的工具都无法回答,因为答案存在于你的组织中,而不是在权重里。
该插件在 harness 的 tools/pre-execute 接缝处拦截每一次工具调用,将其发送到 TapPass 策略决策点(POST /v1/govern),并允许、拒绝或升级为人工审批。
它为何不同
- 业务规则,而非模型安全。 用你的语言把规则写一次:“超过 500 的退款需要人工处理”、“客户 PII 不得离开欧盟区域”、“此智能体可以读取 CRM,但绝不能写入”。它在每一次工具调用、每一个 harness、每一个模型下都被强制执行。提示词只是建议。策略是事实。
- 授权是赢得的。 该插件以观察模式发布:从第一分钟起,它观察并记录每一次调用,不阻止任何东西。在你强制执行哪怕一条拒绝规则之前,先看看你的智能体做了什么。然后针对重要的事项开启强制执行。自主性是一份过往记录,而不是一个复选框。
- 与 harness 和模型无关。 在这里治理某个智能体的同一套规则,也能在 Claude Code、Codex、LiteLLM 背后治理它。harness 是可互换的。授权不是。
- 欧盟托管,符合欧盟 AI 法案。
安装
create a profile if you do not have one, then add the plugin
dsh plugin --profile default add @tappass/dsh-governance
point it at your TapPass workspace
export TAPPASS_API_KEY="tp_dev_..." # a TapPass developer key
verify the layer without booting, then run
dsh --profile default --dump-config
dsh --profile default
从你的 TapPass 仪表盘(Settings, Developer keys)或 POST /api/agents/{agent}/developer-keys 获取开发者密钥。该密钥绑定到一个智能体和一个组织;TapPass 会针对它记录审计追踪。
配置
安装后,每一次工具调用都会受到治理。配置是可选的;默认值是安全的。
| 键 | 默认值 | 含义 |
|-----|---------|---------|
| baseURL | https://app.tappass.ai | TapPass API 基础地址。插件会 POST 到 ${baseURL}/v1/govern。 |
| apiKeyEnv | TAPPASS_API_KEY | 保存你的 tp_dev_ 密钥的环境变量。是引用,不是密钥本身。 |
| mode | observe | observe:发送并记录每一次调用,不阻止任何东西。enforce:遵从裁决。 |
| onError | deny | 在 enforce 模式下,当 TapPass 不可达时:deny(故障关闭)或 allow(故障开放)。 |
| timeoutMs | 4000 | 每次裁决调用的硬超时。缓慢的 PDP 绝不会卡住智能体循环。 |
| agentId | harness agent id | 覆盖发送给 TapPass 的智能体 id。 |
| orgId | 来自密钥 | 覆盖组织 ID;通常由开发者密钥盖章。 |
在你的 profile 的 patch 中设置它们,例如强制执行:
$DSH_HOME/profiles/default/cordis.patch.yml
- tappass-governance:
config:
mode: enforce
裁决如何变成决策
| TapPass outcome | dsh PreToolDecision | 效果 |
|---|---|---|
| allow | next() | 工具运行 |
| block | { kind: 'deny', reason } | 模型收到带有原因的错误结果 |
| needs_approval | { kind: 'ask', reason } | 路由到 harness 审批流程交由人工处理 |
在 observe 模式下,每次调用都返回 next(),但本应阻止或需要审批的调用仍会在服务端记录并在本地记录日志,因此你可以在强制执行前根据真实流量来评估你的策略规模。
插件在每次调用时都会发送其 mode(enforcement.mode),因此审计追踪可以区分 observe 模式的阻止与强制执行模式的阻止。
诚实的局限性
- 不支持参数重写。 DeepSeek Harness 在设计上将 tools/pre-execute 处的工具参数设为只读(它们已被记录并展示给模型),因此 TapPass 的 modify 裁决无法就地应用。本插件在 enforce 模式下会以明确的原因让此类调用失败关闭,而不是静默运行未修改的请求。脱敏义务会被呈现,但不会被应用。
- 审批需要一个开放的回合。 needs_approval 裁决映射到 harness 的 ask 决策,该决策会路由到你的 profile 所挂载的任何审批应答器。若未配置审批器,ask 会失败关闭为拒绝,这是安全的默认行为。
- 开发者预览版。 DeepSeek Harness 及其插件 API 尚处于预发布阶段,可能会发生变化。本插件刻意保持轻量:它是通往 /v1/govern 的桥梁,因此如果 harness API 发生变化,修复只需一个小型垫片,而非重写。
开发
npm install --legacy-peer-deps # dsh rc 包的 peer 范围不一致
npm run build
node --test
裁决映射和 /v1/govern 客户端由 test/plugin.test.mjs 覆盖,并针对本地模拟服务器运行,无需 TapPass 实例。
链接
- TapPass:https://tappass.ai
- 智能体 AI 的权威层。权威是赢得的。即便是 AI 也不例外。
许可证
MIT © Cogniqor BV (TapPass)扫码进群