Shackle:AI代理的预执行ALLOW/DENY/HITL门控(开源)
SHACKLE是一个开源的运行时治理层,实时仲裁每个代理工具调用,给出ALLOW/DENY/HITL判决。它包含SP/1.0一致性标准,提供15个哈希可验证的测试向量,并设有认证级别。与LiteLLM和AutoGen集成,防止失控循环和预算超支。
SHACKLE是一个轻量级、零依赖的运行时治理层,通过动态Python shim嵌入运行时,拦截LLM调用和工具执行,确定性地监控执行状态。当代理违反边界时,SHACKLE触发断路器,暂停执行并进入交互式终端控制台。
核心方面,SHACKLE实现了SP/1.0(SHACKLE协议1.0)一致性标准,该标准定义了运行时仲裁自主AI代理行动的精确规范。每个代理行动都经过ALLOW(允许)、DENY(拒绝)或HITL(人工介入)裁决,没有第四种状态,每个裁决都附带确定性、可检查的原因。SP/1.0的数学基础要求:一个转换有效当且仅当其所需的所有内容都在系统可证明支持的范围内。关键不变性是:历史可见 ≠ 运行时可执行——记录的行动绝不意味着它曾被授权。
SHACKLE的参考实现通过了15个哈希可验证的一致性向量测试(fixtures/conformance.json),包括10个核心决策案例和5个人工介入转换案例。任何运行时都可以通过运行相同的测试来证明其一致性,从而获得SHACKLE认证。认证级别包括:SP/1.0-Core(核心一致性)、SP/1.0-HITL(转换完备)和SP/1.0-Sovereign(企业运行时)。认证过程公开透明,基于重现性,而非信任声明。
集成方面,SHACKLE为LiteLLM和AutoGen提供了开箱即用的支持。通过LiteLLM防护栏,可以强制所有基于LiteLLM的代理(如CrewAI、AutoGen、LangGraph)遵守SP/1.0。AutoGen包装器通过装饰器工厂实现工具调用的治理。由于LiteLLM位于大多数代理框架之下,单一集成点即可覆盖整个供应链。
SHACKLE旨在解决AI代理的“死亡循环”问题:当工具调用失败时,代理不断重试相同的操作,消耗上下文窗口并产生巨额API费用。SHACKLE作为断路器,在预算或重复检测触发时停止循环,并允许开发者通过控制台干预。它非常适合本地开发和调试、CLI代理和监督工作流、跨框架覆盖以及预算执行。
SHACKLE由独立开发者Dante Bullock创建,无风险投资或公司孵化。它使用社区情感分析和实时网络抓取来识别CrewAI、AutoGen和LangGraph生产中影响开发者的系统故障,然后构建即插即用的解决方案。这是一个为开发者构建的基础设施,主权、精简且无冗余。