为什么我花了 6 个月为 AI agents 构建护栏

发布: (2026年1月17日 GMT+8 04:23)
6 min read
原文: Dev.to

Source: Dev.to

下面说说我为什么构建它,它是如何工作的,以及我学到了什么

问题:AI 代理功能强大,却让人害怕

我一直痴迷于 AI 代理——不是聊天机器人,而是能够实际执行任务的代理。它们可以:

  • 合并 Pull Request
  • 部署到 Kubernetes
  • 更新数据库记录
  • 代表你发送 Slack 消息

技术已经成熟。但每次我尝试将其投入生产时,都会出现同样的情况:

安全团队说不行。

说实话?他们说得对。

想想看:你让 AI 有权写入生产系统,却没有审计日志、审批工作流,也没有办法强制执行策略。这就像给实习生 root 权限,然后祈祷一切顺利。

我不断看到团队卡在我称之为**“PoC 地狱”**的状态——精彩的演示从未上线,因为缺少治理方案。

解决方案:先策略后调度

如果每一次 AI 行动都必须在执行前通过策略检查怎么办?

这就是 Cordum 的核心理念。

┌─────────────┐     ┌──────────────┐     ┌─────────────┐
│   AI Agent  │ --> │ Safety Kernel│ --> │   Action    │
└─────────────┘     └──────────────┘     └─────────────┘

                    ┌──────┴──────┐
                    │   Policy    │
                    │ (as code)   │
                    └─────────────┘

任何作业执行之前,Safety Kernel 会评估你的策略并返回以下结果之一:

  • Allow – 正常继续
  • Deny – 阻止并给出原因
  • 👤 Require Approval – 人工介入
  • Throttle – 限流

给我代码看看

下面是一个策略的示例:

# policy.yaml
rules:
  - id: require-approval-for-prod
    match:
      risk_tags: [prod, write]
    decision: require_approval
    reason: "Production writes need human approval"

  - id: block-destructive
    match:
      capabilities: [delete, drop, destroy]
    decision: deny
    reason: "Destructive operations not allowed"

  - id: allow-read-only
    match:
      risk_tags: [read]
    decision: allow

当代理尝试执行危险操作时,Cordum 会介入:

{
  "job_id": "job_abc123",
  "decision": "require_approval",
  "reason": "Production writes need human approval",
  "matched_rule": "require-approval-for-prod"
}

作业会在仪表盘中等待人工批准。完整审计日志。合规部门满意。

架构

Cordum 是一个控制平面,而不是代理框架。它负责调度和治理代理——并不取代 LangChain 或 CrewAI。

┌─────────────────────────────────────────────────────────┐
│                Cordum Control Plane                     │
├─────────────────────────────────────────────────────────┤
│  ┌───────────┐  ┌──────────────┐  ┌─────────────────┐ │
│  │ Scheduler │  │ Safety Kernel│  │ Workflow Engine │ │
│  └───────────┘  └──────────────┘  └─────────────────┘ │
├─────────────────────────────────────────────────────────┤
│  ┌───────────────┐  ┌───────────────────────────────┐ │
│  │  NATS Bus     │  │  Redis (State)                  │ │
│  └───────────────┘  └───────────────────────────────┘ │
└─────────────────────────────────────────────────────────┘
         │                    │                    │
    ┌────┴────┐          ┌────┴────┐          ┌───┴────┐
    │ Worker   │          │ Worker   │          │ Worker │
    │ (Slack)  │          │ (GitHub) │          │ (K8s)  │
    └──────────┘          └──────────┘          └────────┘

技术栈

  • Go – 核心控制平面(约 15 K 行)
  • NATS JetStream – 至少一次投递的消息总线
  • Redis – 作业、工作流、上下文的状态存储
  • React – 实时更新的仪表盘

性能

  • (性能细节在摘录中省略)

构建过程中的收获

  1. 安全是特性,而非约束
    我最初把治理视为“必要的恶”,是一种必须接受的限制——但实际上它可以是产品的核心价值。

企业对合规性的需求。但我已经把它视为一个 特性

(其余课程内容在原文中继续)

1. “写入权限”是竞争优势

当每一次 AI 行动都经过政策评估并被记录时,你将解锁以前不可能的使用场景。

  • Banks 可以使用 AI 代理。
  • Healthcare 可以使用 AI 代理。

“写入”能力成为强大的差异化因素。

2. 协议的重要性超出我的预期

  • 工作者可以使用任何语言编写。
  • 控制平面可以独立演进。
  • 第三方可以构建兼容的工具。

3. 开源是一种分发策略

我本可以从第一天起就把它做成闭源 SaaS,但开源为我们带来了:

  • 信任 – 你可以阅读代码。
  • 自托管 – 企业非常喜欢。
  • 社区渠道 – 用户贡献并传播口碑。

商业模式: open‑core。自托管永久免费;云/企业功能付费。

接下来

路线图包括:

  • Helm chart 用于 Kubernetes 部署。
  • Cordum Cloud – 托管版。
  • Visual workflow editor 在仪表板中。
  • More packs – AWS、GCP、PagerDuty 等。

试一试

🌐 网站:
📦 GitHub:
📋 协议:
📚 文档:

如果你正在构建 AI 代理并希望内置治理,请尝试一下。如果觉得有用,请给仓库加星 ⭐

感谢阅读!我很乐意在评论中回答问题。

Back to Blog

相关文章

阅读更多 »