跳到正文
Hacker News· makan09·· 7 天前AI 评分60

Pryxor 开源 AI 智能体运行时安全层,在动作边界做授权决策

I build an open-source runtime security layer for AI agents – Let's break it

AI 导读

Pryxor 是一个自托管运行时网关,在智能体工具调用到达真实系统前评估具体动作,返回 APPROVED、HOLD 或 BLOCKED 三种结果,并支持人工审批与凭证隔离。

正文 · AI 翻译

Pryxor

AI 代理操作的运行时授权

License: Apache 2.0 Python 3.10+ Status: early-stage

AI 代理通常拥有有效凭证,却仍然执行错误的操作。

一个令牌可以授权访问 CRM、数据库、电子邮件提供商或支付 API。但这并不意味着使用该令牌发出的每个请求都应被允许。

Pryxor 是一个自托管的运行时网关,在代理的具体操作到达真实系统之前对其进行评估。

代理提出请求。
Pryxor 做出决定。
受信任的执行器执行操作。

演示

Pryxor demo

Pryxor 可以:

  • 批准安全操作;
  • 阻止禁止的操作;
  • 暂停有风险的操作以供人工审核;
  • 执行已批准的操作,而不向代理暴露上游凭证;
  • 记录策略决策、审批生命周期和执行结果。

它专为能够发送消息、修改数据、访问文件、调用 API 或执行其他外部可见操作的代理而设计。

Pryxor 不是 LLM 防火墙,目前本身并不理解用户意图。它在操作边界执行明确、确定性的控制。

问题:已授权但危险

传统授权通常回答:

此身份能否调用此 API?

代理安全还需要回答:

现在是否应允许这一确切操作?

这是两个不同的问题。

一个对 CRM 拥有有效读取权限的代理可能会:

  • 检索远超任务所需的记录;
  • 重复发出单个有效的请求,直到导出整个客户表;
  • 读取敏感数据,然后将其发送到外部目的地;
  • 在用户任务已经完成后继续操作;
  • 因为 API 凭证在技术上允许,而执行破坏性操作。

Pryxor 并不声称能自动解决所有这些问题。它提供了执行点,使这些决策可以被明确制定、测试、审计,并与人工审批相连接。

工作原理

AI agent
   |
   | proposes a tool call
   v
Pryxor runtime
   |
   | authenticate the agent
   | validate the arguments
   | evaluate deterministic policy
   | approve, block, or hold
   v
Trusted executor
   |
   | uses the real credential
   | calls the external system
   v
External API

作为执行契约的一部分,代理不会收到执行器的 API URL 或上游密钥。

每个受管控的操作都会返回三种结果之一:

  • APPROVED
  • HOLD
  • BLOCKED

HOLD 不是可重试的错误。代理不得简单地再次提交相同的操作。

尝试演示

该演示使用模拟的 HTTP 端点。它不会发送真实电子邮件。

请参阅 QUICKSTART.md 获取完整演练。

要求:

  • Docker 24+
  • Docker Compose v2
  • Git
git clone https://github.com/Pryxor/pryxor.git
cd pryxor

make init
make up
make health

示例策略包含两条规则:

  • 发往内部域的电子邮件被批准;
  • 发往外部域的电子邮件被暂停以供审核。

注册一个代理:

make register AGENT=ops_agent

复制返回的代理密钥:

export PRYXOR_AGENT_KEY="your-agent-key"
export PRYXOR_URL="http://127.0.0.1:8000"

使用内部收件人调用模拟电子邮件工具:

curl -s "$PRYXOR_URL/v1/execute-tool" \
  -H "X-Agent-Key: $PRYXOR_AGENT_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "tool_name": "send_email",
    "parameters": {
      "to": "alice@company.local",
      "subject": "Hello",
      "body": "This is an internal test."
    }
  }' | python -m json.tool

预期结果:

{
  "status": "APPROVED",
  "execution": {
    "success": true
  }
}

现在尝试外部收件人:

curl -s "$PRYXOR_URL/v1/execute-tool" \
  -H "X-Agent-Key: $PRYXOR_AGENT_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "tool_name": "send_email",
    "parameters": {
      "to": "bob@example.com",
      "subject": "External test",
      "body": "This action requires review."
    }
  }' | python -m json.tool

预期结果:

{
  "status": "HOLD",
  "action_id": "hold_...",
  "reason": "EXTERNAL_EMAIL",
  "retry": false
}

尚未发送任何内容。

注册一个管理员:

make register-admin NAME=reviewer

然后批准该暂停:

make approve HOLD_ID=hold_...

Pryxor 仅在批准后执行操作,并在审计跟踪中记录批准的管理员。

策略示例

策略是明确且确定性的:

{
  "type": "declarative",
  "rules": [
    {
      "name": "allow-internal-emails",
      "when": {
        "tool": "send_email",
        "to_domain_in": ["company.local"]
      },
      "then": {
        "approve": true
      }
    },
    {
      "name": "hold-external-emails",
      "when": {
        "tool": "send_email"
      },
      "then": {
        "hold": "EXTERNAL_EMAIL",
        "message": "External recipients require human approval."
      }
    }
  ]
}

在调用执行器之前评估规则。

对于安全敏感的部署,Pryxor 应使用默认拒绝策略:没有明确有效授权规则的操作不得执行。

Pryxor 目前提供

  • 对受管控工具调用的运行时拦截;
  • 代理和管理员身份验证;
  • 根据工具模式进行参数验证;
  • 确定性的 APPROVED、HOLD 和 BLOCKED 结果;
  • 持久的人工审批状态;
  • 批准和拒绝生命周期跟踪;
  • 与代理的凭证隔离;
  • 可配置的 HTTP 执行器;
  • 执行尝试的幂等键;
  • 经过脱敏的审计记录;
  • 指标与通知;
  • MCP 支持;
  • Python SDK;
  • 针对选定 agent 框架的适配器;
  • 单节点 Docker 部署。

Pryxor 不声称的内容

Pryxor 不是:

  • IAM 的替代品;
  • LLM 提示注入检测器;
  • 恶意代码沙箱;
  • 完整的数据防泄漏系统;
  • 监控或追踪平台;
  • 外部 API 将恰好执行一次的保证;
  • 自动理解用户意图的系统。

Pryxor 只能治理实际经由它路由的操作。如果 agent 有另一条通往外部系统的路径,该路径必须被移除或单独控制。

被攻陷且持有有效 Pryxor 密钥的 agent 主机仍可能以该 agent 的身份提交请求。生产部署除 Pryxor 外还需要网络控制、密钥轮换、最小权限和主机隔离。

项目状态

Pryxor 是一个早期开源项目。

当前版本适用于:

  • 本地评估;
  • 安全实验;
  • 预发布环境;
  • 单节点部署;
  • 构建集成和策略原型。

它尚不足以声称:

  • 高可用性;
  • 多租户 SaaS;
  • SSO 或企业 RBAC;
  • 管理仪表盘;
  • 受监管环境合规;
  • 防御一切形式的数据外泄;
  • 自主意图理解。

安全声明只有在其边界明确时才有意义。在将 Pryxor 用于真实系统之前,请阅读 KNOWN_LIMITATIONS.md。

路线图

项目正朝四个方向推进:

更安全的策略语义

  • 默认拒绝行为;
  • 严格的策略校验;
  • 绑定操作的审批;
  • 策略模拟与测试;
  • 累计预算与速率限制。

可靠执行

  • 更清晰的超时与未知结果处理;
  • 连接器特定的幂等性;
  • 执行前立即重新校验;
  • 更安全的 重试与恢复。

团队运营

  • 审批收件箱;
  • 基于角色的审核者;
  • 策略版本管理;
  • 审批通知;
  • 审计导出。

更广泛的部署

  • PostgreSQL 支撑的状态;
  • 水平扩展;
  • SSO;
  • 密钥管理器集成;
  • 更多 MCP 和框架集成。

核心运行时将继续以 Apache-2.0 许可证开源。

贡献

最有用的贡献是:

  • 对抗性测试用例;
  • 暴露危险边缘情况的策略;
  • 执行器集成;
  • MCP 兼容性报告;
  • 框架适配器;
  • 安全审查;
  • 文档改进。

有用的问题不只是“这个功能会不错”。而是一个具体场景:

这是工具调用,这是策略,这是应该发生的情况,而这是实际发生的情况。

请私下报告安全漏洞。参见 SECURITY.md。

许可证

Apache License 2.0

来源:Hacker News · github.com