Cairn —— 通用状态空间搜索引擎
面向明确起点与目标、未知路径的问题求解引擎,已在自主渗透测试中验证。
- Star 数
- ★ 3.6k
- 最近更新
- 1 个月前
- License
- AGPL-3.0
- 主语言
- Python
- FA 评分
- 39/100 · 缺口较多
30 秒速览
- 运行形态
- 可在哪里用
- 兼容但需适配Codex · Claude Code
- 费用
- 软件免费,模型调用费用自付
- 上手难度
- 中 · 需要几步配置
- 开始前需要
- 典型场景
- 安全团队在授权环境中对目标进行自主渗透测试,从初始信息收集到获取 shell 的全流程自动化。
- 不适合
- 希望开箱即用、文档完善且经过大规模验证的团队
- 在共享主机上运行且无法接受无沙箱权限风险的用户
这个 Agent 能做什么,适合哪些场景?
Cairn 是一个通用问题求解引擎,采用黑板架构(Blackboard Architecture)与显式事实-意图图(fact-intent graph),通过三个基本原语(Fact、Intent、Hint)驱动搜索过程。它先以自主渗透测试为首个验证领域,支持 CTF、漏洞研究等问题,但并非专用工具。系统由 Cairn Server 维护图一致性,Cairn Dispatcher 负责任务调度与容器管理,Worker 容器内运行多个 Agent Worker,执行 OODA 循环并仅通过共享黑板进行隐式协调。支持 Claude Code、Codex 和 Pi 作为 worker 后端,可使用 Docker Compose 或手动部署,也可本地模式(无需 Docker)运行。在腾讯云黑客松智能渗透测试挑战赛(第二届)中,以 54/54 全解、唯一 AK 队伍获得第三名。项目授权为 AGPL-3.0,商用需联系作者获取商业许可。
Cairn 通过三个任务类型运行:Bootstrap(项目启动时直接尝试求解)、Reason(读取全部图,判断目标是否达成,决定下一步探索方向)、Explore(认领一个 Intent,执行探索并回报一个 Fact)。Worker 由 Dispatcher 调度,从 API 接收 prompt 并输出结构化结果,支持 Claude Code、Codex、Pi 后端。系统提供 cairn serve 启动服务器、cairn dispatch --config dispatch.yaml 启动 Dispatcher,并通过 Docker Compose 或本地模式运行。输入是目标 IP 或系统作为 origin,输出是逐步的事实链直到达成目标(如获得 shell 或 flag)。黑板架构允许随时注入 Hint 进行人工干预。
- 安全团队在授权环境中对目标进行自主渗透测试,从初始信息收集到获取 shell 的全流程自动化。
- CTF 参赛者利用 Cairn 自动解 flag,通过在挑战环境中搜索状态空间来发现利用链。
- 漏洞研究人员使用 Cairn 辅助进行黑盒测试,通过结构化探索发现未知的攻击面。
- 希望将通用问题求解引擎用于数学证明或复杂决策场景的研究者,通过定义 origin 和 goal 来应用。
- 企业安全团队在内部红队演练中,评估自主 agent 的效率和边界。
- 开发者在本地模式(无需 Docker)测试 Cairn 与已有 CLI(如 claude、codex)的集成。
如何安装或部署这个 Agent?
前置要求:macOS 或 Linux,Python ≥ 3.12,Docker(容器模式需要)。拉取 worker 镜像:docker pull --platform=linux/amd64 ghcr.io/oritera/cairn-worker-container:latest。复制配置:cp dispatch.example.yaml dispatch.yaml 并填写 LLM 端点与 API 密钥。Docker Compose 方式:拉取基础镜像 docker pull ghcr.io/astral-sh/uv:python3.13-trixie,然后 docker compose up --build。手动方式:uv run --project cairn cairn serve 和 uv run --project cairn cairn dispatch --config dispatch.yaml。本地模式无需 Docker:复制 dispatch.local.example.yaml 为 dispatch.yaml,且本机需已安装并登录 claude/codex/pi CLI。
如何使用这个 Agent?
首先配置 dispatch.yaml 以提供 LLM 端点与密钥。然后启动 server 和 dispatcher:uv run --project cairn cairn serve 及 uv run --project cairn cairn dispatch --config dispatch.yaml。系统会为每个项目创建独立 worker 容器,容器内多个 Agent Worker 并发运行。通过共享黑板上的 Facts、Intents、Hints 协调。任务类型自动调度:Bootstrap 启动时直接尝试,Reason 周期性评估状态,Explore 执行探索。可通过 --startup-healthcheck-only 仅做健康检查。本地模式需在主机上直接运行 dispatcher,worker 使用主机上的 CLI 且不经过沙箱。运行测试:uv run --project cairn --group dev pytest。
这个 Agent 有哪些优点和局限?
- 通用引擎,不限定角色或工作流,适用于任何起点和目标明确的问题。
- 经实战验证:在 610 支队伍、1345 名参赛者中唯一完成 54/54 题的 AK,获得第三名。
- 黑板架构与 stigmergy 协调,无直接通信,可扩展并发 workers。
- 支持多种 worker 后端(Claude Code、Codex、Pi),并可本地模式运行,减少基础设施依赖。
- 仅作为研究原型,比赛前未经测试,缺乏长期维护和社区支持。
- 依赖外部 LLM 端点,需要配置 API 密钥,存在提供商锁定和成本。
- 文档不足以覆盖所有部署场景,本地模式需手动配置 CLI 登录。
- 为 AGPL-3.0 许可,商用需另行联系作者,可能阻碍商业采用。
这个 Agent 与同类方案有什么区别?
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | 形态 / 费用 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|---|
| Cairn —— 通用状态空间搜索引擎 当前 | 39 · 缺口较多 | 自托管服务免费 + 模型费 | ★ 3.6k | 1 个月前 | Python | Codex · Claude Code |
| VulnClaw | 48 · 缺口较多 | 命令行工具免费 + 模型费 | ★ 3.7k | 13 天前 | Python | — |
| HackSkills — 面向 AI Agent 的攻击性安全技能库 | 31 · 缺口较多 | 命令行工具免费 | ★ 2.5k | 1 个月前 | CSS | — |
| HexStrike AI MCP | 22 · 缺口较多 | MCP 服务器免费 | ★ 13k | 2 个月前 | Python | Claude.ai |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
证据显示:本地模式明确警告代理以用户权限运行且无沙箱,但未提供权限最小化机制;配置中需要API密钥,但未说明密钥存储和访问控制;容器模式使用Docker,但未提及容器隔离级别或安全加固。扣分原因:缺乏用户确认机制、数据流透明度不足、敏感数据处理细节缺失、依赖安全未提及、回滚机制缺失、来源归属仅部分(README提及作者但未验证)。
证据显示:测试覆盖配置验证和容器路径安全,但未覆盖运行时行为;依赖可用性未提及;失败消息未详细说明。扣分原因:自一致性部分满足,但依赖可用性和失败消息证据不足。
证据显示:README明确目标受众(安全测试人员)和场景(渗透测试、CTF等),并说明能力边界(通用状态空间搜索);但触发精度(任务生成逻辑)未详细说明;环境适配(macOS/Linux、Docker)有说明。扣分原因:触发精度证据不足。
证据显示:README结构清晰,安装说明详细,许可证明确(AGPL-3.0),但缺少版本变更日志、命名稳定性说明、已知限制部分不完整。扣分原因:版本变更日志缺失,命名稳定性未提及,已知限制仅部分。
证据显示:输出为结构化事实和意图,但未说明输出格式的易用性;边际价值有竞争结果支持,但成本效益未量化。扣分原因:输出可用性证据不足,成本效益未量化。
证据显示:README声称竞赛结果,但未提供可验证的复现步骤;测试存在但未覆盖所有声明;事实与推断未明确分离。扣分原因:声明可追溯性不足,交叉验证有限,事实与推断分离不明确。
- 源码中未见:执行前用户确认开启或自行加上执行前确认;先在沙箱或测试环境跑通,确认行为后再接入真实数据。
- 源码中未见:依赖安全审查安装前固定版本并做一次依赖扫描(如 npm audit、pip-audit);优先放在容器里运行。
- 源码中未见:回滚或恢复路径运行前先备份,或在 git 分支、快照上操作,确保改动可以撤销。
- 本地模式无沙箱,代理以用户权限运行,存在安全风险。
- API密钥管理未说明,可能泄露。
- 依赖安全未提及,需审查供应链。
- 竞赛结果无法独立验证。
最近版本
来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。
-
发布说明摘录
Highlights This patch release improves dispatcher stability for large project graphs and long-running worker executions. Cairn now avoids OS argument-size failures by passing large graph snapshots through files inside the worker container, while keeping worker command argv small and preserving the existing dispatcher execution flow. What's New * Store large graph snapshots in worker containers via Docker archive copy instead of embedding full graph YAML in command arguments …在 GitHub 查看 ↗ -
发布说明摘录
Highlights This release adds Pi as a supported dispatcher worker backend. Cairn can now run with Claude Code, Codex, or Pi workers, enabling more flexible agent orchestration for autonomous security exploration workflows. What's New - Added Pi worker support in the dispatcher - Added Pi session recovery and JSONL output parsing - Added conclude-phase compatibility for Pi execution flows - Added Pi worker configuration example to dispatch.yaml Notes - Pi support has been validated across bootstrap, reason, explore, and conclude flows …在 GitHub 查看 ↗ -
发布说明摘录
First public open-source release of Cairn. Cairn is a general-purpose problem-solving engine built around explicit state-space search. It was first validated on autonomous penetration testing and CTF-style tasks, but the underlying architecture is designed for broader goal-directed problem solving. Highlights - Explicit fact-intent graph for modeling progress through an unknown state space - Blackboard-based coordination model with shared, objective state - Three-task execution loop: Bootstrap, Reason, and Explore …在 GitHub 查看 ↗