@agentvault/grok-bridge (英语)
将Grok代理连接到E2E加密的Agent Vault直接消息和房间.
此软件包是一个单独的实体,来自 @agentvault/claude-bridge。 。 。 . 他们分享
没有运行时间代码 。 唯一的共同依赖是 @agentvault/agentvault,则
协议和加密库.
使用量
先决条件: 安装 Grok 并运行 grok login。桥复制
第一次进入沙盒.
一个面条(建议)—— --install
npm i -g @agentvault/grok-bridge
AV_AGENT_NAME=<agent> AV_INVITE_TOKEN=<token> agentvault-grok-bridge --install
注册代理, 等待您点击 核准 在仪表板上安装一个 监督的OS服务(在macOS上启动,在Linux上系统),以及 输出 这样啊 您的终端回来 代理幸存 关闭和重启.
三件事值得我们知道:
npm i -g不是可选的. 服务将运行的切入点烤入 发射装置 下npx稍后是包缓存包管理器 普鲁斯,所以今天服务会工作 并默默地死去 几个星期后.--install在您单次使用之前, 拒绝在启动时的瞬间进入点 请柬已用完.XAI_API_KEY服务不会继承. 主管不读 你的外壳环境。 使用grok login; 桥拒绝安装 没有证书和哑巴的服务.- 复行能安隐. 已经保存了证书, 您可以省略标志 . 如果安装的服务是电流, 它会被重新启动, 而不是重新安装, 所以 安装时烘烤的设置被保存.
前景( 无服务)
AV_AGENT_NAME=<agent> AV_INVITE_TOKEN=<token> npx @agentvault/grok-bridge
运行在终端, 当你关闭它。 未更改 --install。 。 。 .
服务管理
agentvault-grok-bridge status # is it loaded?
agentvault-grok-bridge restart # pick up new credentials / recover
agentvault-grok-bridge uninstall # remove it
agentvault-grok-bridge logs # where the logs are
使用 restart, (中文(简体) ), 永远 install,以重新启动. install 重建服务
从您的当前外壳中取出 PATH,无声地丢弃环境
在原安装处烤出.
日志转到 <data-dir>/logs/grok-bridge.error.log - 桥写给stderr,
这么说 .error.log 文件是其中包含的内容.
当回复失败时
当一个Grok转弯失败时,桥会首先记录它,然后告诉聊天,然后才重新开始自己. 它从不掉出一个失败的转弯 没有痕迹.
- 在1:1 与车主,主人看到一个简单的句子。 当桥能分辨出它是什么时,它就命名了原因. 例如:"Ohtani无法回答这个消息:它的xAI签入已过期. 再次在特工的电脑上签字". 大桥可以分辨出已过期的签入,计费问题,利率限制,账户不能使用的模型,xAI是无法到达的,而Grok CLI太老了无法回答. 目前为止,只有过期的签注被看到现场直播. 当原因不明时,句子只说经纪人无法回答这个消息.
- 在房间里因为其他人和特工可以读到 房间只看到特工无法回答这个信息.
- 无通知 或1分1分的房主设备没有保证.
- 在所有情况下,原因为私人记录的所有人 卫生,最近的问题。 。 。 .
每个失败的转会结束此过程, 服务管理器开始一个新的过程 。 这是目的:格罗克CLI没有确认取消,所以旧会话仍然可以发言. 新进程开始一个新的Grok会话. 该桥没有保存格鲁克会话可以恢复,因此没有保存会话可以丢失或修复.
日志每个事件持有一行,只有代码和出站号码. 它从不保存消息文本或提供者错误文本 :
| 日志行 | 这是什么意思 |
|---|---|
turn_failed code=<code> exit=<n or none> | 转弯失败 . exit 是格罗克CLI在中途死亡时的退出状态,否则 none在回合应答时发出通知. |
notice sent to <chat> | 已发出失败通知. |
notice_failed code=<code> 或者说 reason=timeout | 未能发出失败通知。 故障仍在健康项下记录. |
turn_cancelled reason=shutdown notice=<sent, failed, timeout or none> | 桥被停止或重新启动(例如在更新时),而这个消息正在被回答或等待转向. 没有什么可以重播的,所以当信息应答时,聊天会得到一句"Ohtani无法回答这个信息". 它从来没有命名一个事业. queued=true 标志一个仍在等待的信息 late=true 一个在桥停了的时候到达的. none 表示该消息未应答. 桥顶等待这些句子的时间最多为10秒,因此被卡住的发件无法支撑重启. 因为模型没有出故障. |
turn_cancelled reason=terminal notice=none | 该设备被吊销或者其会话被接管,因此该桥没有张贴任何信息而停止. |
Grok CLI 自身的出错输出可以重复提供者的错误文本,因此日志只记录其大小和级别(Grok CLI)grok: stderr lines=<n> bytes=<n> level=ERROR) (中文(简体) ). 失败的启动被同样记录, 原因只有: fatal: grok did not start: code=<code> exit=<n or none> ...。看CLI自己的话,运行 grok 手边.
调自分类账——定期审查
这些文件曾被从克洛德桥复制过一次,现在在这里拥有. 一个固定 没有找到我们.
| 文件 | 从 packages/claude-room-bridge 时间 | 上次审查 |
|---|---|---|
src/config.ts | 73a770168a5df33a51f06c8875444f55c9241c07 | 73a770168a5df33a51f06c8875444f55c9241c07 |
src/log.ts | 9b28a272e87600e78627dbd0f53fcbd192e01e73 | 9b28a272e87600e78627dbd0f53fcbd192e01e73 |
src/bridge.ts | f3a7d53f67246e59c471891aee667e002a23b701 | f3a7d53f67246e59c471891aee667e002a23b701 |
src/service/ | 16c95f46c654a34613aeb2a4ff94eeede9e671ef | 16c95f46c654a34613aeb2a4ff94eeede9e671ef |
src/room-context.ts | PR #1458 (创建于2026-10-26) | 公关 #1458 |
审查一个:
git log <last-reviewed-sha>..HEAD -- packages/claude-room-bridge/src/<file>
调试diff, 移植任何应用,然后 移动“ 上次审查” SHA 前进, 不管你是否移植了任何东西。记录“看,没什么可移植的” 意思是,一个没有移动的SHA, 那么诚实地说,意味着没有人看,而不是看 与没有变化是无法区分的.
⚠️ 不移植 ActiveTarget.reply()。 。 。 . 它读取了现场目标并重新打开
房间漏水 克劳德方面也没有生产呼叫器.
船闸——尚未完工
| 门 | 状态 |
|---|---|
| HTTP MCP 循环运行 macOS/安全带 | ✅ 已关闭 2026-08-15. npm run gate:mac (单位:千美元)src/__tests__/sandbox-gate.mac.test.ts) (中文(简体) ). 真正的grok 1.0.4,真正的沙盒:声称 ProfileApplied … enforced: true, (中文(简体) ), platform: macos/seatbelt, (中文(简体) ), restrict_network: true, (中文(简体) ), 接下来 循环收听器收到 tools/list命令事项——一个没有应用的沙盒否则会报告假通行证. 突变验证: 将插件指向已死端口失败 ConnectionRefused。验证生产方式(种子) auth.json)),所以它需要的就是: 没有 XAI_API_KEY |
| HTTP MCP 循环运行 Linux/ 锁定 | ⏸️ 转让 2026-08-15 ——主打:Mac先打,Linux后打. Landlock过滤了TCP连接,并可能拒绝Seatbelt允许的回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回 测试已经存在( A)landlock-gate.linux.test.ts它的工作流程是 仅手动发送;除非有人将xAI API 密钥薄荷并添加为 XAI_API_KEY 复出密语. 今天没有这样的密钥存在 |
| CI 运行此套房 | ✅ 已关闭 2026-08-15. .github/workflows/grok-bridge-test.yml 运行 vitest 每一个公关碰这个包裹。 首发真跑:172通过/3跳出. 3个跳跃是活地+地锁+macOS门,它们都需要一个真正的杂活并被env var选择入门 |
| 栅栏已关闭 | ✅ 已关闭 2026-08-15. 校对真实 grok 1.0.3 有栅栏并有种子 auth.json: 提出的代理人 session/request_permission 两次, Bash 被拒绝stopReason: "cancelled", (中文(简体) ), FENCED_BASH_REACHED 从来没有跑)和 room__say 被允许。 大门是一个真正的控制,而不是一个未经测试的分支. ⚠️ 同一跑道发现大门是 还有 关闭——见下文 |
有栅栏的穆特虫 (2026-08-15)
一条被子 cancelled 每一个代理请求 永久哑弹。 。 。 .
干净的栅栏无法装入权限,所以会抬高 session/request_permission 页:1 每个 工具
电话——包括 room__say代理是唯一的声音 大桥拒绝了,转弯结束
stopReason: "cancelled", (中文(简体) ), spoke: false也没说什么 骨架是整个里程碑
(以1:1马克表示) room__say 在房间里",是不可能 运输.
设计图谱逐一预测: 干净的栅栏 什么都问... 桥必须明确 允许它或代理 哑了。"
为何156个测试没有通过. FakeAcpChild 从不单独提出许可请求 所以
onRequest 只有通过试验才能使请求本身得到实施,而没有任何试验.
较早期 无围栏 突起也看不到:无栅栏、杂耍一无所求
这正是为什么运行看起来健康.
GrokDriver.onAgentRequest 现在允许完全一个工具—— GROK_ROOM_SAY_TOOL_NAME,比较进口
因此,允许列表不能从实际运出的工具中漂移——通过选择
经纪人自己出价 allow_once 选项。 其他一切, 和任何不允许的请求, 仍然
结束转弯。 如果一个未来的grok停止提供 allow_once它拒绝而不是发明身份证明.
现在有四个测试覆盖了分支,使用从真实的二进制中捕获的帧形状.
安全说明
- 🔐 永远不要乱跑
--debug-file。 。 。 . 它写着OAuth无记名标志 简文. 使用RUST_LOG=xai_grok_shell=trace。 。 。 . - MCP URL 房间带有一个认证符.
.mcp.json写入0600编辑 URL 从未在 argv 中通过 。 它仍然是任何与之相呼应的地方的证书 追踪 坠机报告,lsof把任何诊断俘获都当作秘密. - 守护进程 auth 是
XAI_API_KEY(没有被烤入 发射/系统列表)或种子auth.json在栅栏里. - 栅栏(
HOME+ 键GROK_HOME需要) 即使有工具关闭毫无戒备, grok装入操作员的全部个人MCP车队.
测试
npx vitest run # the gate — run locally before every commit
npm run typecheck # a BASELINE, not a gate. Observed: 2 errors