跳转到内容

团队智能体

你笔记本上的智能体代表你工作,由你审批它的变更。凌晨 3 点的值班智能体、CI 中的部署机器人或定时检查任务,键盘前都没有人。借助 bssh Teams,这样的智能体在团队中拥有自己的身份,执行由管理员签名的策略,其变更由团队管理员在各自的电脑上审批。

智能体CI 任务、值班智能体、定时检查
你的基础设施
bssh ai serve按签名策略检查每一次调用
你的服务器只执行已批准的命令
bssh ai serve策略要求询问时发起请求
bssh Teams 服务器转发请求,但无法读取。
管理员的设备批准或拒绝。关键主机需要两名管理员。
  • 智能体身份是团队中类型为 agent 的成员,由管理员创建。它有自己的设备密钥,像其他成员一样占用一个席位,并且不能写入团队保险库。
  • 签名策略随之一起。策略由管理员签名,网关会拒绝没有管理员签名、或比已见版本更旧的策略,因此服务器无法改变智能体的权限。
  • 网关 bssh ai serve 运行在你掌控的机器上:堡垒机、运维虚拟机、CI 运行器所在的主机。智能体通过 HTTP 上的 MCP 连接它。网关不为智能体保存长期密钥,并按签名策略检查每一次调用。
  • 审批会被转发。 请求加密发送给各管理员的设备,并由智能体的设备签名。服务器负责转发,但无法读取内容。
  1. 在一名管理员的电脑上,在 ai.policies 下编写智能体要执行的策略(参见策略),然后创建智能体:

    bssh teams agent add platform oncall --policy oncall

    智能体会占用一个席位。bssh 对策略签名,并把智能体凭据写入 ~/.config/bayesian-ssh/environments/default/ai/agents/platform.oncall.json,只有你可以读取。

  2. 将该文件复制到网关机器上的相同位置,权限设为 0600,并在那台机器上保存智能体可以使用的主机,方式和你自己使用时一样(bssh add 或清单来源)。

  3. 启动网关:

    bssh ai serve --agent platform/oncall

    它默认监听 127.0.0.1:8765。如需从其他地方访问,请放在 TLS 反向代理之后,或使用 --listen 加 --allow-remote。

  4. 为智能体签发令牌:

    bssh ai token platform/oncall --ttl 1h

    令牌经过签名,只对一个智能体及其策略有效,最长 24 小时。智能体连接 http://127.0.0.1:8765/mcp,并发送 Authorization: Bearer <令牌>。

当智能体发起询问时,团队的每位管理员都能在自己的电脑上看到请求:

bssh teams agent pending platform
bssh teams agent approve platform <请求> --reason "已检查 diff"
bssh teams agent deny platform <请求> --reason "发布之后再做"

在策略 approval.two_person 所列标签的主机上,变更只有在两名不同的管理员批准后才会执行。同一名管理员批准两次只算一次。请求在过期时若无人回应即被拒绝。

bssh teams agent list platform
bssh teams agent policy platform oncall --policy oncall # 为更新后的策略签名
bssh teams agent remove platform oncall # 释放席位

网关每分钟检查一次智能体的成员资格,智能体被移除后会拒绝所有调用。新版本的策略在网关重启后生效。

团队能看到什么,服务器能看到什么

Section titled “团队能看到什么,服务器能看到什么”

智能体的调用、判定、审批和变更会写入团队的签名审计日志,与成员的会话放在一起,并以该智能体为操作者。管理员能看到谁批准了什么,并可以在自己的电脑上用 bssh teams audit 验证日志。

服务器能看到智能体 X 在时间 T 发起了一次调用,以及由谁批准。它永远看不到命令、主机、输出或策略:这些内容在离开网关之前就已为团队加密。