@atbash/atbash-openclaw (中文(简体) )
OpenClaw 插件,将每个工具调用都锁定在 ATBASH 政策服务上 。 上面的薄适配器 @atbash/sdk ——SDK负责审核管道,这个包把它接入OpenClaw的 before_tool_call 钩.
如果您没有使用OpenClaw,并且想从自己的代码中使用ATBASH,直接安装SDK.
安装
openclaw plugins install @atbash/[email protected]
法官的端点和链条ID被编译成构件,因此该版本选择了环境。 A 类 -dev.N 版本针对开发环境. openclaw plugins list 显示您拥有的。 之后没有配置重新点出一个构件——错误的构件会干净地加载,放出它的钩子,然后因为代理在构建目标的链上不存在而使每个法官的呼叫失败. 组织名称在不同的环境中并不独有,因此解析的org名称并不能证明构建是正确的.
插件用您的代理的 sep256k1 私人密钥在本地签名审计交易 。 密钥永远不会离开您的机器; 只有签名的字节加上相应的公钥才会被传输 .
获取代理密钥
插件读取自 ~/.config/atbash/guard-client-key 默认。 档案是JSON:
{
"privKey": "your-hex-private-key-64-chars",
"pubKey": "your-hex-public-key-66-chars"
}
...或者说 key=value数字 :
privkey=your-hex-private-key-64-chars
pubkey=your-hex-public-key-66-chars
联系ATBASH团队注册代理并获得一对密钥.
在 OpenClaw 中配置它
openclaw plugins install 已经记录了插件的所在位置,启用了它,并且——如果你保留一个
plugins.allow 清单——已添加 atbash-openclaw 对它。 从不手写安装目录: OpenClaw 有
把它移动到释放和记录之间 无论它用什么方法,这就是它装入的东西. openclaw plugins list
显示当前状态.
只剩下你的配置了 打开 ~/.openclaw/openclaw.json 添加, 保留插件
已经在这里 :
{
"plugins": {
"entries": {
"atbash-openclaw": {
"enabled": true,
"config": {
"enabled": true,
"enforceDecision": true,
"chromiaSecretPath": "~/.config/atbash/guard-client-key",
"orgName": "<your org name>"
},
"hooks": {
"allowConversationAccess": true,
"allowPromptInjection": true
}
}
}
}
}
高级配置
下面的片段显示每个支持的配置字段并带有内含注释. 删除您不需要的字段—— 所有字段都是可选的 orgName (当您在私人链上时需要).
{
"plugins": {
"entries": {
"atbash-openclaw": {
"enabled": true,
"config": {
"enabled": true,
"enforceDecision": true,
"chromiaSecretPath": "~/.config/atbash/guard-client-key",
"orgName": "<your-org-name>",
"debug": false,
// --- Memory guard (optional) ---
// Root directory used to locate the memory pointer file and MEMORY.md.
"memoryWorkspaceDir": "~/.openclaw/workspace",
// Or set an explicit path to MEMORY.md (overrides memoryWorkspaceDir):
// "memoryFilePath": "~/.openclaw/workspace/MEMORY.md",
// How long (ms) to trust the local memory-chain cache before re-fetching.
"memorySyncTTLMs": 30000,
// Block memory reads when a rolled-back version scores below this (1–10).
// Default 1 = warn only. Raise to e.g. 3 to refuse poisoned rollbacks.
"memoryRollbackMinScore": 1,
// Additional path substrings to classify as memory (extends SDK built-ins).
// "memoryPathPatterns": ["/my-agent/memory/"],
// --- Self-hosted judge (optional, advanced) ---
// "judgeEndpoint": "https://your-judge.example.com/api/v1/judge",
// "judgeEndpointPolicy": "self-hosted",
// "judgeVerifyPubKey": "<66-hex-char-secp256k1-pubkey>"
},
"hooks": {
"allowConversationAccess": true,
"allowPromptInjection": true
}
}
}
}
}
插件 id 是 atbash-openclaw 它来自 id 此软件包中的字段 openclaw.plugin.json, (中文(简体) ),
不从 npm 包名 。 A 类 plugins.entries 不符合 id 键不是一个错误:
插件装入未配置且审核无任何内容 .
配置字段
| 外地 | 类型 | 默认 | 它会做什么 |
|---|---|---|---|
enabled | 嘘 | true | 主开关. false = 插件立即返回. |
enforceDecision | 嘘 | true | 关机失败 何时 true (违约) BLOCK, (中文(简体) ), HOLD, (中文(简体) ), ERROR,任何未经确认的判决都会阻止工具呼叫。 何时 false,插件运行故障打开:所有判决都允许工具调用通过,结果只被记录下来——用于监测而不执行. |
chromiaSecretPath | 字符串 | ~/.config/atbash/guard-client-key | 代理密钥文件的路径 。 支助 ~/。 。 。 . |
orgName | 字符串 | —— 说 | 代理机被装在机上 仪表板上显示 插件解决了要从中查询的链条, 所以当鼠标处于私有链条时需要它 . |
debug | 嘘 | false | 何时 true,记录每架单行探测器 before_tool_call 显示 toolName,顶级事件/ctx/args键,以及调用是否被归类为内存写入. 用于校验内存-写入分类器覆盖度与真实流量对比. 只有日志形状——参数值从不打印. |
judgeEndpoint | 字符串 | —— 说 | 覆盖裁判URL. 保留未设置以使用已安装环境( prod 或 dev) 的编译默认值 . |
judgeEndpointPolicy | "default" | "self-hosted" | "default" | 设定为 "self-hosted" 当指向自己的法官时 judgeVerifyPubKey。 。 。 . |
judgeVerifyPubKey | 字符串 | —— 说 | 66-char secp256k1 压缩的pubkey 用于验证自托管的法官响应签名. 需要时间 judgeEndpointPolicy 实值 "self-hosted"。 。 。 . |
memoryPathPatterns | 字符串 [] | SDK 默认 | 外出路径子字符串用于识别内存形状的文件(例如. "/my-agent/memory/") (中文(简体) ). SDK的内置列表. |
memoryWorkspaceDir | 字符串 | process.cwd() | 用于定位内存指针文件的工作空间根和 MEMORY.md支持 ~/。 。 。 . |
memoryFilePath | 字符串 | <memoryWorkspaceDir>/MEMORY.md | (原始内容存档于2017-10-21). Expective path to the Agent's MEMORY.md. 覆盖 memoryWorkspaceDir- 相对的默认。 支助 ~/。 。 。 . |
memorySyncTTLMs | 整数 | 30000 | 要信任本地缓存的内存链指针在从链条重排前需要多长时间(ms). 更低的值会以更多的链式查询为代价来增加新鲜度. |
memoryRollbackMinScore | 整数 (1-10) | 1 | 当回滚版本的安全分数低于这个阈值时,块内存会读取. 默认 1 意味着只有警告 永远不要挡住 升为等. 3 拒绝读取毒药回滚. |
judgeTimeoutMs | 整数 | —— 说 | Max milliseconds)等待法官或内存护卫的反应,然后将其作为超时处理. 当被触发时,插件应用了与其它任何错误相同的倒闭/打开逻辑(enforceDecision 控制结果)。 未设置表示插件在主机允许的情况下等待. 设为等. 12000 当主机有硬钩的最后期限时, 您希望插件能够优雅地失败, 而不是被杀死中等 . |
更新
openclaw plugins update atbash-openclaw
未加载
openclaw plugins uninstall atbash-openclaw
代理密钥文件在 ~/.config/atbash/guard-client-key 实值 没有 删除 —— 如果您想要退出代理身份, 请手动删除 .
秘密编辑
每一个工具呼叫发送到法官之前,基础 @atbash/sdk 扫描密形值的参数和上下文,并将匹配替换为 [REDACTED:<kind>]编辑是客户端并会发生 签署前,因此秘密永远不会到达签名的字节,请求机构,链上日志,或者AI提供者.
当重燃者起火时,OpenClaw会发出警告:
[atbash] redacted secrets before judge call { tool: "exec", count: 2, kinds: ["anthropic", "generic_token"] }
这个 kinds 字段显示匹配的图案. anthropic 编号 : openai 编号 : aws_access_key 编号 : jwt /等表示真正的销售商秘密. generic_token 是长随机外观字符串的包罗万象——它也可以匹配UUID和内容散列;法官仍然获得足够的上下文来评价动作,但值得知道是否意外看到.
特工自己的工具执行不受影响——只有发给法官的数据被擦除. 完整的清单和行为参考:见 SDK 读取。 。 。 .
环境变量
| 变量 | 默认 | 它会做什么 |
|---|---|---|
ATBASH_TELEMETRY | "true" | 设定为 "false" 用于禁用远程测量。 遥测是选择退出的——除非你明确关闭它,否则是开着的. |
解决问题
工具电话没有被审核.
检查 enabled: true 既设置在条目上(plugins.entries["atbash-openclaw"].enabled)和内部 config (单位:千美元)config.enabled) (中文(简体) ).
每一个工具呼叫都被屏蔽,甚至安全.
插件已失败- 关闭: 任何管道错误块 。 寻找 [atbash] … 在 OpenClaw 日志中发出警告。 最常见的:缺少密钥,已过期的密钥,或受限的 Egress.
插件负载但不应用配置(审计运行在默认情况下).
这个 plugins.entries 密钥必须准确 "atbash-openclaw" - 插件的 id 从它的 openclaw.plugin.json名称"openclaw", (中文(简体) ), "atbash-plugin")被默默地忽略;插件在启动时记录一个警告,但以其他方式运行未配置. 检查 OpenClaw 启动日志 [atbash] found config under former plugin id 将设置块移动到 plugins.entries["atbash-openclaw"]。 。 。 .
维护者释放合同
开发软件包仅通过受保护程序发布 出版开发软件包 GitHub工作流程. 工作流程要求 npm 环境,准确的 PUBLISH 确认, 和 npm 信任- publisher 配置此寄存器和工作流程 。 它从来不接受来自包源的注册符.
释放后卫拒绝脏账取出,读取活包和SDK标记,选择了无相撞预放,只将Git跟踪文件复制到临时中转树上,将那里准确的SDK版本钉上,从已上演的锁文件安装并测试,清理并重建 dist,验证沥青球,重新检查注册状态,公布并核实由此产生的 dev 标签。 履带式源代码列表从未被发布重写.
由于此寄存器是私有的,npm出处语句不支持. 信任的出版仍然会去掉长寿的npm符号;在启用工作流程之前配置受保护的npm环境和信任的出版商.
许可证
凭 Apache 许可证,2.0版本。见 通知 用于归属。 更改前公布的版本仍可凭其发运的许可证使用.