这个项目能做什么

Agent Interlock 是一个基于 Python 3.11 的框架(Apache-2.0),它将安全工程中的“互锁”(interlock)概念应用于代理与代理(agent-to-agent)的交互。参与者在 ActorSpec 清单中声明,每个参与者的表面通过 SDK 或代理进行封装,其间的通信经过观察、裁决和拦截,确保仅允许声明的链接进行连接。 该项目核心是一个 MCP 工具网关。针对 M1 到 M9 的威胁——包括工具中毒、地毯式撤资(rug pull)、工具遮蔽、中毒工具发布、混淆代理或令牌透传、MCP 服务器到主机的攻陷、代理配置发现或修改、凭据收割以及数据外泄——在数据流层面进行处理,每项威胁都有默认判定,如 QUARANTINE(隔离)、BLOCK(拦截)、HOLD(挂起)、CHALLENGE(挑战)或 SANITIZE(清理)。执行阶段从 OBSERVE(观察)逐步提升至 SHADOW(影子)再到 ENFORCE(强制执行),提升至 ENFORCE 阶段需要两个签名批准。一个包含 29 项检查的单一 Check 表支撑着三个执行点,每个执行点选择自己的配置文件:MCP 网关 21 项检查,SDK 19 项,A2A 代理 17 项。README 中明确指出,机制是共享的,但覆盖范围不同,且代理不具备出口、容量或污染控制。 组件包括:SDK(define_actor, connect, wrap)、拦截参与者间通信的运行时、在 A2A、MCP 和人类传输之上执行经验证的任务 DAG 的编排器、处理代理卡和带有预执行任务的 A2A 代理、分别记录请求、判定、动作和结果事件的仅追加账本、用于设计、运行时和攻击路径的图视图、一个基于方块的 Studio Web UI(用于架构编辑和清单导出)、Anthropic Tool Runner 适配器,以及一个 interlock verify 命令(针对项目自身的受保护工具而非框架固定件运行九个 L1 场景)。 其他证明领域包括:绑定到架构摘要的 MCP JSON-RPC tools/list、tools/call 和 list-changed 执行;具有会话绑定的 Streamable HTTP JSON/SSE 客户端;MCP OAuth 发现、PKCE S256、RFC 7662 内省、可选的 JWKS/JWT 验证和回环同意;具有制品固定、签名沙箱证明和 Bubblewrap 启动计划的 stdio JSONL 客户端;针对发布者的签名来源准入;根据架构清单编译的每目的地出口卫兵;PostgreSQL 分区、基于 session_user 的 FORCE RLS 以及具有事件和追踪 HTTP API 的仅追加账本适配器;OTLP/HTTP JSON 摄取;签名审计接收端;多代理边的设计与运行时漂移调和;方向性内部/外部信任边界;以及使用 .invalid 地址和确定性固定件的伪数据端到端场景套件。 参考核心没有外部运行时依赖,PostgreSQL 和 Anthropic 集成作为可选扩展。README 坦诚地说明了未交付的内容:没有 LangGraph 或 Claude Agent SDK 适配器,没有 sidecar 代理,服务器端 MCP 连接器拦截因工具在提供方侧执行而被排除在范围之外,验收评估器仅为结构性的,清单解析器仍会丢失部分字段和副作用动作。它还记录了 SDK 无法访问网关的批准 API,因此来自封装工具的外部写入将直接失败(fail closed),而不能通过 SDK 进行批准。真正的外部集成工作(如 Sigstore、KMS/HSM、身份提供者、真实的出口 sidecar、TLS 和分布式速率限制)被列为待完成项。