Agent Control Plane 的 “Kernel” 版本终于来了.
I’m happy to translate the article for you, but I’ll need the full text of the post (the content you’d like translated). Could you please paste the article’s body here? Once I have that, I’ll provide a Simplified‑Chinese translation while keeping the source link and all formatting exactly as you requested.
Introduction
在我的original post中,我认为没有治理的智能是一个 bug。我们需要停止把 LLM 当作魔法盒子,而是把它们视为需要 kernel 来管理权限、资源和安全的原始计算组件。
今天,我从理论转向代码。
我已经发布了 Agent Control Plane v0.1,在本文中,我将向你展示将该架构概念转化为可感知现实的三个特性:Async Support、ABAC 和 Flight Recorder。
问题:单线程、不安全的代理
大多数当前的代理演示都是简单的循环:User Input → LLM → Tool Call → Output。这对聊天机器人来说还行,但在生产环境中就会崩溃。当多个代理尝试访问同一个数据库时会怎样?当“Support Agent”在没有批准的情况下尝试退款 10,000 美元时会怎样?
我们需要在代理和外部世界之间加入一层——Kernel。
功能 1:异步支持(非阻塞操作)
真实的生产环境是并发的。你不能让整个系统在某个代理等待工具完成时全部卡死。
在 v0.1 中,我已经引入了完整的异步支持。Kernel 可以拦截并调解多个代理的工具执行,同时进行而不阻塞主事件循环。
# Multiple agents can operate concurrently
results = await asyncio.gather(
kernel.intercept_tool_execution_async("agent-1", "read_data", {}),
kernel.intercept_tool_execution_async("agent-2", "write_report", {}),
kernel.intercept_tool_execution_async("agent-1", "analyze", {}),
)
这不仅仅是速度的问题;更是吞吐量的问题。如果你正在构建一个群体(swarm)或多代理系统,阻塞调用就是敌人。
功能 2:ABAC(上下文感知权限)
标准的“防护栏”通常只检查文本输出(例如,“代理说了粗鲁的话吗?”)。在企业环境中,我们关注的是逻辑。
基于属性的访问控制(ABAC) 让我们能够基于世界的状态来定义权限,而不仅仅是代理的角色。
# Setup: Finance agent can refund IF:
# 1. User is verified, AND
# 2. Amount is under $1000
conditions = [
Condition("user_status", "eq", "verified"),
Condition("args.amount", "lt", 1000)
]
permission = ConditionalPermission("refund_user", conditions, require_all=True)
policy.add_conditional_permission("finance-agent", permission)
在演示中运行时,结果是确定性的:
- 已验证用户,$500 退款: ✅ 允许
- 已验证用户,$1500 退款: ❌ 阻止
- 未验证用户,$500 退款: ❌ 阻止
这将安全性从“提示工程”(乞求模型表现良好)转移到“策略工程”(在代码中强制执行规则)。
Feature 3: Flight Recorder (Audit Logging)
如果代理删除了文件或泄露了数据,你需要准确了解原因。是提示注入吗?幻觉吗?还是策略配置错误?
Flight Recorder 是一个黑盒审计记录器,捕获内核所做的每一个决策。它记录策略判定、工具参数以及违规原因。
# Action: Blocked write (protected path)
kernel.intercept_tool_execution(
"audit-agent",
"write_file",
{"path": "/etc/passwd"},
input_prompt="User: Update system file"
)
# Result: ❌ Logged as BLOCKED
演示中包含一个 get_statistics() 方法,可即时查看代理的合规健康状况:
- 总操作数:3
- 允许:1
- 阻止:2
我遗漏的: “影子模式”
在构建此演示时,我意识到有一个关键的拼图块未包含在此特定文件中,但它是更广泛架构的一部分:影子模式。
部署代理时最大的风险之一是恐惧:“如果它删除了数据库怎么办?” Kernel 架构提供了“影子模式”,您可以在生产输入上运行代理,让 Kernel 拦截工具调用,依据 ABAC 策略进行验证,记录结果(Success/Blocked),但永不实际执行工具。
这使您能够在生产环境中对代理进行“red‑team”测试,零风险。您可以看到“代理 would have 处理这笔 $5,000 退款,但策略 would have 阻止它。”
代码可用性
您可以在仓库中找到演示的完整源代码,包括 AgentKernel 和 PolicyEngine 类: