cai

GitHub
7.8k 1.1k 简单 2 次阅读 今天NOASSERTION语言模型开发框架
AI 解读 由 AI 自动生成,仅供参考

cai(Cybersecurity AI)是一款专注于人工智能安全的开源框架。随着 AI 技术的广泛应用,模型面临的安全威胁日益复杂,传统安全手段往往难以覆盖 AI 特有的漏洞。cai 旨在填补这一空白,提供一套强大的工具集来检测和防御针对 AI 系统的攻击,例如对抗性样本或数据投毒。

这款框架非常适合 AI 开发者、安全研究人员以及致力于构建可信智能应用的团队。cai 具备出色的跨平台兼容性,支持 Linux、macOS、Windows 及 Android 系统,方便在不同环境中部署。其技术实力源于多项前沿学术研究,README 中列出的多篇 arXiv 论文印证了其在理论上的严谨性。此外,cai 还提供社区版与专业版,满足不同规模的需求。通过引入专业的安全检测能力,cai 能帮助团队有效降低 AI 应用的风险,确保智能系统在安全的环境中稳定运行,是构建可靠 AI 生态的重要助手。

使用场景

某金融科技公司的数据科学团队正在紧急部署一款用于反欺诈的深度学习模型,必须在正式发布前完成全面的安全加固以符合监管要求。

没有 cai 时

  • 安全人员只能依靠经验手动构造攻击样本,耗时数周仍可能遗漏关键的对抗性漏洞。
  • 面对针对模型推理过程的恶意输入,传统 Web 应用防火墙完全无法识别和拦截。
  • 缺乏针对 AI 模型的专用扫描工具,导致代码审查与模型安全评估严重脱节。
  • 每次更新模型参数都需要重新进行全套人工测试,严重阻碍了业务的敏捷迭代速度。

使用 cai 后

  • cai 自动执行多维度的对抗攻击测试,几分钟内即可生成详细的风险评估与安全报告。
  • 内置的防御机制能实时监测异常输入模式,有效阻断针对算法逻辑的黑盒攻击尝试。
  • 支持将安全策略无缝嵌入 CI/CD 流水线,确保每次模型更新都经过自动化安全校验。
  • 提供可视化的漏洞修复建议,帮助开发人员快速定位并修补模型层面的深层安全隐患。

cai 通过自动化框架将 AI 安全从被动防御转变为主动治理,大幅提升了模型上线的可靠性与整体效率。

运行环境要求

操作系统
  • Linux
  • macOS
  • Windows
  • Android
GPU

未说明

内存

未说明

依赖
notesREADME 中仅在 HTML 注释部分提及安装命令为 pip install cai-framework。工具分为社区版与专业版(PRO),专业版涉及付费及特定模型 token。支持接入多种大模型服务(如 OpenAI, Anthropic, DeepSeek, Ollama 等)。提供的文本片段未包含具体的硬件配置要求、Python 版本或底层依赖库版本详情。
python未说明
cai hero image

快速开始

网络安全人工智能 (AI)(CAI

CAI - 社区版与专业版

专业版包含无限 alias1 tokens (令牌) | 📊 查看基准测试 (Benchmark) | 🚀 了解更多

CAI 社区版演示 CAI PRO 专业版演示

网络安全人工智能 (CAI) 是一个轻量级、开源的框架,赋能安全专业人员构建和部署 AI 驱动的攻防自动化。CAI 是 AI 安全的实际标准框架,已被数千名个人用户和数百个组织使用。无论您是安全研究员、道德黑客、IT 专业人士还是寻求增强安全态势的组织,CAI 都提供构建专用 AI 代理的构建模块,这些代理可协助进行缓解、漏洞发现、利用和安全评估。

主要功能:

  • 🤖 300+ AI 模型:支持 OpenAI、Anthropic、DeepSeek、Ollama 等
  • 🔧 内置安全工具:现成的侦察、利用和提权工具
  • 🏆 实战验证:在 HackTheBox CTF 夺旗赛、漏洞赏金和真实世界安全 案例研究 中得到验证
  • 🎯 基于代理的架构:模块化框架设计,用于构建针对不同安全任务的专用代理
  • 🛡️ 护栏保护:针对提示注入和危险命令执行的内置防御
  • 📚 面向研究:为社区普及网络安全 AI 的研究基础

[!NOTE] 阅读技术报告:CAI:一个开放、就绪漏洞赏金的网络安全 AI

如需进一步了解,请参阅我们的 影响CAI 引用 部分。

机器人技术 - CAI 和 alias1 在:Unitree G1 人形机器人上 OT (运营技术) - CAI 和 alias1 在:Dragos OT CTF 2025 上
CAI 发现了 Unitree G1 人形机器人的漏洞和隐私违规行为,包括未经授权的遥测数据传输至中国相关服务器、暴露的 RSA 密钥具有世界可写权限,以及违反 GDPR (通用数据保护条例) 和国际隐私法的潜在监控能力。 由 alias1 驱动的 CAI 在运营技术网络安全方面表现出卓越的性能,在 Dragos OT CTF 2025 中排名前 10。AI 代理在比赛时间 7-8 小时达到第 1 名,完成了 34 个挑战中的 32 个,并保持了对顶级人类团队 37% 的速度优势。
IT(漏洞赏金)- CAI(网络安全 AI)在:HackerOne 平台 OT - CAI 和 alias0 在:Ecoforest 热泵
HackerOne 的顶级工程师利用 CAI(网络安全 AI)探索下一代代理式 AI 架构并构建自己的安全产品。CAI 的 Retester 代理直接启发了 HackerOne 的 AI 驱动的去重代理,现已在生产环境中部署,用于大规模处理数百万份漏洞报告。 CAI 发现了 Ecoforest 热泵中的关键漏洞,允许未授权的远程访问和潜在的灾难性故障。AI 驱动的安全测试揭示了泄露的凭证以及影响其全欧洲已部署单元的 DES 加密弱点。
机器人技术 - CAI 和 alias0 在:移动工业机器人 (MiR) IT(Web)- CAI 和 alias0 在:Mercado Libre 的电子商务
通过自动 ROS(机器人操作系统)消息注入攻击对 MiR(移动工业机器人)平台进行 CAI 驱动的安全测试。本研究展示了 AI 驱动的漏洞发现如何暴露对机器人控制系统的未授权访问和警报触发器。 通过自动枚举攻击在 Mercado Libre 进行 CAI 驱动的 API 漏洞发现。本研究展示了 AI 驱动的安全测试如何在大规模下暴露电商平台中的用户数据暴露风险。
OT - CAI 和 alias0 在:MQTT 代理 IT(Web)- CAI 和 alias0 在:PortSwigger Web 安全学院
CAI 驱动测试暴露了 Docker 化 OT 网络中 MQTT 代理的关键缺陷。在没有认证的情况下,CAI 订阅了温度和湿度主题并注入虚假值,破坏了 Grafana 仪表板上显示的数据。 CAI 驱动的 Web 应用中文件上传漏洞的竞态条件利用。本研究展示了 AI 驱动的安全测试如何识别和利用 Web 应用中的时间窗口,通过自动并行请求成功上传和执行 Web 壳。

[!WARNING] :warning: CAI 正处于积极开发中,因此不要指望它能完美无缺。相反,请通过提交问题或 发送 PR 来做出贡献。

访问此库以及使用信息、材料(或其部分),不打算,且 禁止 用于违反适用法律或法规的情况。作者绝不鼓励或促进对运行系统的未授权篡改。这可能导致严重的人身伤害和财产损失。

CAI 的作者绝不鼓励或促进对计算系统的未授权篡改。请勿在此处使用源代码进行网络犯罪。改为为了善而进行渗透测试。通过下载、使用或修改此源代码,即表示您同意 LICENSE 中的条款以及 DISCLAIMER 文件中概述的限制。

:bookmark: 目录

🎯 影响

🏆 竞赛与挑战

📊 研究影响力

  • 利用 PentestGPT 开创了由大语言模型 (LLM) 驱动的人工智能安全,为 网络安全 AI 研究领域奠定了基础 arXiv

  • 建立了包含 8 篇论文和技术报告网络安全 AI 研究线,拥有活跃的研究合作 arXiv arXiv arXiv arXiv arXiv arXiv arXiv arXiv

  • 在标准化 CTF(夺旗赛)基准评估中,展现出比人类渗透测试人员 3,600 倍的性能提升 arXiv

  • 通过自动化安全评估,识别出生产系统中 通用漏洞评分系统 (CVSS) 4.3-7.5 严重程度的漏洞 arXiv

  • AI 赋能漏洞研究的普及化:网络安全 AI (CAI) 使非安全领域专家和经验研究人员能够进行更高效的漏洞发现,在扩大安全研究社区的同时,赋能中小企业开展自主安全评估 arXiv

  • 对大型语言模型的系统性评估:涵盖专有和开源权重架构,揭示了厂商宣称的能力与实证网络安全性能指标之间的巨大差距 arXiv

  • 确立了网络安全中的自主等级,并探讨了该领域中自主性与自动化的关系 arXiv

  • 与国际学术机构的合作研究倡议,专注于开发网络安全教育课程和培训方法 arXiv

  • 贡献了一套针对 AI 安全代理中提示注入的综合防御框架:开发并经验验证了一个多层防御系统,以解决已识别的提示注入问题 arXiv

  • 利用 CAI 探索了人形机器人的网络安全,发现了新的攻击向量,展示了它如何 (a) 同时作为隐蔽监控节点运行,以及 (b) 可被用作主动网络作战平台 arXiv arXiv

📚 研究产品:Cybersecurity AI (网络安全人工智能)

CAI, 一个开放的、面向漏洞赏金的网络安全 AI arXiv 自动化与自主性之间的危险鸿沟 arXiv CAI 能力,网络安全 AI 能力框架 arXiv 通过提示词注入攻击 AI 黑客 arXiv
人形机器人作为攻击向量 arXiv 人形机器人的网络安全 arXiv 在攻防 CTF (夺旗赛) 中评估代理式网络安全 arXiv CAIBench:用于评估网络安全 AI 智能体的元基准 arXiv

概念验证 (PoCs)

CAI 配合 alias0 针对 MiR-100 机器人的 ROS 消息注入攻击 CAI 配合 alias0 针对 Mercado Libre 的 API 漏洞发现
asciicast asciicast
CAI 在 PortSwigger CTF 的 JWT 挑战上 — 网络安全 AI CAI 在 HackableII Boot2Root CTF 挑战上 — 网络安全 AI
asciicast asciicast

更多案例研究和 PoC 可在 https://aliasrobotics.com/case-studies-robot-cybersecurity.php 找到。

动机

:bust_in_silhouette: 为什么需要 CAI?

随着 AI 日益融入安全运营,网络安全格局正在经历剧烈变革。我们预测到 2028 年,AI 驱动的安全测试工具数量将超过人工渗透测试人员。这一转变代表了我们在应对网络安全挑战方式上的根本变化。AI 不仅仅是另一种工具——它对于解决复杂的安全漏洞和领先于复杂的威胁变得至关重要。随着组织面临更先进的网络攻击,增强 AI 的安全测试对于维持强大的防御至关重要。

这项工作建立在之前的工作 [^4] 基础之上,同样,我们相信普及高级网络安全 AI 工具(Cybersecurity AI, CAI)的访问权限对整个安全社区至关重要。这就是为什么我们将网络安全 AI(CAI)作为开源框架发布。我们的目标是赋予安全研究人员、道德黑客和组织构建和部署强大 AI 驱动安全工具的能力。通过公开这些能力,我们旨在缩小差距,确保尖端的安全 AI 技术不仅限于资金雄厚的私营公司或国家行为体。

漏洞赏金 (Bug Bounty) 计划已成为现代网络安全的基石,为组织提供了一种关键机制,使其能够在系统被利用之前识别和修复漏洞。这些计划在保护公共和私有基础设施方面已被证明非常有效,研究人员发现了原本可能未被注意到的关键漏洞。CAI 专门设计用于增强这些努力,提供一个轻量级、人体工程学的框架,用于构建专门的 AI 智能体,协助漏洞赏金狩猎的各个阶段——从初步侦察到漏洞验证和报告。我们的框架旨在用 AI 能力增强人类专业知识,帮助研究人员在使数字系统更安全的过程中更高效、更彻底地工作。

CAI 背后的伦理原则

你可能会想知道,考虑到 CAI 的能力和安全影响,将其发布到公开环境(in-the-wild)是否合乎伦理。我们开源此框架的决定由两个核心伦理原则指导:

  1. 网络安全 AI 的民主化:我们相信先进的网络安全 AI 工具应该让整个安全社区都能使用,而不仅仅是资金雄厚的私营公司或国家行为体。通过将 CAI 作为开源框架发布,我们的目标是赋能安全研究人员、道德黑客和组织构建和部署强大的 AI 驱动的安全工具,从而在网络安全领域实现公平竞争。

  2. AI 安全能力的透明度:基于我们的研究成果、对技术的理解以及对顶级技术报告的剖析,我们认为当前的 LLM(大型语言模型)供应商正在削弱其网络安全能力。这极其危险且具有误导性。通过公开开发 CAI,我们提供了一个透明的基准,展示 AI 系统在网络安全环境中实际能做什么,从而使关于安全态势的决策更加明智。

CAI 建立在以下核心原则之上:

  • 面向网络安全的 AI 框架:CAI 专为网络安全用例设计,旨在半自动化和全自动化地执行进攻性和防御性安全任务。
  • 开源,免费用于研究:CAI 是开源的,可免费用于研究目的。我们的目标是实现 AI 和网络安全的访问民主化。对于专业或商业用途,包括本地部署(on-premise),如需专用技术支持和自定义扩展,请 联系我们 获取许可。
  • 轻量级:CAI 设计为快速且易于使用。
  • 模块化和以代理为中心的设计:CAI 基于代理(agents)和代理模式(agentic patterns)运行,允许灵活性和可扩展性。您可以轻松为您的网络安全目标场景添加最合适的代理和模式。
  • 工具集成:CAI 集成了已内置的工具,并允许用户轻松集成他们自己的工具和逻辑。
  • 日志记录和追踪集成:使用 phoenix,这是用于 LLM 的开源追踪和日志记录工具。这为用户提供代理及其执行的详细可追溯性。
  • 多模型支持:支持超过 300 种模型,并由 LiteLLM 赋能。最受欢迎的提供商:
    • Anthropic: Claude 3.7, Claude 3.5, Claude 3, Claude 3 Opus
    • OpenAI: O1, O1 Mini, O3 Mini, GPT-4o, GPT-4.5 Preview
    • DeepSeek: DeepSeek V3, DeepSeek R1
    • Ollama: Qwen2.5 72B, Qwen2.5 14B, 等

闭源替代方案

网络安全 AI 是一个关键领域,但许多团体出于纯粹的经济回报,错误地通过闭源方法追求它,利用类似的技术并基于现有的闭源(通常由第三方拥有)模型构建。这种方法不仅浪费了宝贵的工程资源,还代表了经济浪费并导致重复努力,因为他们往往最终是在重复造轮子。以下是一些我们跟踪的闭源项目,它们试图在网络安全 AI 中利用生成式 AI(genAI)和代理框架:

学习 - CAI(网络安全人工智能)精通

[!NOTE]

CAI 精通技术报告 (arXiv:2508.13588) 确立了网络安全人工智能素养的正式教育框架。

Description English Spanish
Episode 0: What is CAI? 网络安全人工智能(CAI)解释 Watch the video Watch the video
Episode 1: The CAI Framework 愿景与伦理 - 探索 CAI 背后的核心动机,深入了解指导其发展的关键伦理原则。了解 CAI 背后的动机以及您如何能积极为网络安全和 CAI 框架的未来做出贡献。 Watch the video
Episode 2: From Zero to Cyber Hero 利用 AI 进军网络安全 - 针对完全初学者的综合指南,旨在使用 CAI 和 AI 工具成为网络安全从业者。学习如何利用人工智能加速您的网络安全学习之旅,从理解基本安全概念到执行现实世界的安全评估,且无需任何先前的网络安全经验。 Watch the video
Episode 3: Vibe-Hacking Tutorial “我的第一次黑客攻击” - 新手的 Vibe-Hacking 指南。我们演示了如何使用默认代理进行简单的 Web 安全黑客攻击,并展示如何在 CAI Python API 的帮助下利用工具并解读 CAI 输出。您还将学习比较不同的 LLM(大语言模型)以找到最适合您黑客活动的模型。 Watch the video Watch the video
Episode 4: Intro ReAct LLM 的演变 - 学习 LLM 如何从基础语言模型演变为先进的多智能体 AI 系统。从基础 LLM 到思维链和推理型 LLM,再到 ReAct 和多智能体架构。了解基本术语。 Watch the video
Episode 5: CAI on CTF challenges 深入利用 CAI 参与夺旗赛(CTF)竞赛。学习如何利用 AI 代理解决各种网络安全挑战,包括 Web 利用、密码学、逆向工程和取证。了解如何配置 CAI 以适应竞争性黑客场景,并通过智能自动化最大化您的 CTF 表现。 Watch the video Watch the video
Annex 1: CAI 0.5.x release 介绍 CAI 0.5 版本,包括新的多智能体功能,新命令如 /history/compact/graph/memory,以及一个案例研究,展示 CAI 如何发现全球分布的 OT(运营技术)堆泵中的关键安全漏洞。 Watch the video Watch the video
Annex 2: CAI 0.4.x release and alias0 介绍带有 流式传输 和改进 MCP(模型上下文协议)支持的 CAI 0.4 版本。我们还介绍了 alias0,这是一款隐私优先的网络安全 AI,一种模型之模型智能,实现了设计即隐私架构,并在网络安全基准测试中获得了最先进结果。 Watch the video
Annex 3: Cybersecurity AI Community Meeting #1 第一次网络安全人工智能(CAI)社区会议,来自学术界、工业界和国防领域的 40 多名参与者聚集在一起,讨论 CAI 背后的开源脚手架——这是一个旨在构建用于网络安全的代理 AI 系统的开源项目,具有开放性、模块化且准备好进行漏洞赏金。 Watch the video
Annex 4: CAI PRO PoC CAI PRO 能力的简短概念验证(PoC)演示,展示了专业版的功能,包括无限 alias1 令牌、无限制 AI 和企业级安全测试功能。 CAI PRO Demo
Annex 5: CAI PoC CAI 社区版的简短概念验证(PoC)演示,展示了开源框架在 AI 驱动的安全测试和漏洞发现方面的核心能力。 CAI Demo
Annex 6: CAI in Jaula del N00B CAI(网络安全与人工智能)在热门西班牙网络安全播客/节目 Jaula del N00B 中的演示和讨论。 Watch the video

:nut_and_bolt: 安装

[!NOTE] CAI 专业版用户:如果您拥有有效的 CAI Pro 订阅,我们为 0.5 和 0.6 版本提供专用安装指南。官方支持适用于 Ubuntu 24.04 (x86_64)。其他操作系统的安装说明按原样提供,不提供官方支持:

社区版安装

pip install cai-framework

更新 CAI 时,始终创建新的虚拟环境 (virtual environment) 以确保依赖项正确安装。

以下小节提供了在选定流行操作系统 (Operating Systems) 上的详细操作指南。有关开发人员相关的安装说明,请参阅 开发 部分。 关于 API 密钥 (API Keys) 环境变量语法,请查阅 litellm 文档。LiteLLM 文档

macOS

brew update && \
    brew install git python@3.12

# Create virtual environment
python3.12 -m venv cai_env

# Install the package from the local directory
source cai_env/bin/activate && pip install cai-framework

# Generate a .env file and set up with defaults
echo -e 'OPENAI_API_KEY="sk-1234"\nANTHROPIC_API_KEY=""\nOLLAMA=""\nPROMPT_TOOLKIT_NO_CPR=1\nCAI_STREAM=false' > .env

# Launch CAI
cai  # first launch it can take up to 30 seconds

Ubuntu 24.04

sudo apt-get update && \
    sudo apt-get install -y git python3-pip python3.12-venv

# Create the virtual environment
python3.12 -m venv cai_env

# Install the package from the local directory
source cai_env/bin/activate && pip install cai-framework

# Generate a .env file and set up with defaults
echo -e 'OPENAI_API_KEY="sk-1234"\nANTHROPIC_API_KEY=""\nOLLAMA=""\nPROMPT_TOOLKIT_NO_CPR=1\nCAI_STREAM=false' > .env

# Launch CAI
cai  # first launch it can take up to 30 seconds

Ubuntu 20.04

sudo apt-get update && \
    sudo apt-get install -y software-properties-common

# Fetch Python 3.12
sudo add-apt-repository ppa:deadsnakes/ppa && sudo apt update
sudo apt install python3.12 python3.12-venv python3.12-dev -y

# Create the virtual environment
python3.12 -m venv cai_env

# Install the package from the local directory
source cai_env/bin/activate && pip install cai-framework

# Generate a .env file and set up with defaults
echo -e 'OPENAI_API_KEY="sk-1234"\nANTHROPIC_API_KEY=""\nOLLAMA=""\nPROMPT_TOOLKIT_NO_CPR=1\nCAI_STREAM=false' > .env

# Launch CAI
cai  # first launch it can take up to 30 seconds

Windows WSL

前往微软页面:https://learn.microsoft.com/en-us/windows/wsl/install。在这里你可以找到所有安装 Windows Subsystem for Linux (WSL) 的说明。

从 PowerShell 输入:wsl --install


sudo apt-get update && \
    sudo apt-get install -y git python3-pip python3-venv

# Create the virtual environment
python3 -m venv cai_env

# Install the package from the local directory
source cai_env/bin/activate && pip install cai-framework

# Generate a .env file and set up with defaults. If Ollama runs on your windows host, wsl needs to use your host IP for it to become reachable
echo -e 'OPENAI_API_KEY="sk-1234"\nANTHROPIC_API_KEY=""\nOLLAMA=""\nOLLAMA_API_BASE="http://Your.Host.Ip.Here:11434"\nPROMPT_TOOLKIT_NO_CPR=1\nCAI_STREAM=false' > .env

# Launch CAI
cai  # first launch it can take up to 30 seconds

在 Ubuntu 上运行 cai 可能会遇到问题,因为某些代理 (agents) 假设它们正在 Kali 实例 (Kali Instance) 上运行,并且无法找到所需的工具。 因此,作为替代方案,您可以使用 dockerized 文件夹中的 Docker Compose 文件。如果安装了 Docker,这在 WSL 内部也有效。 在这种情况下,获取 dockerized 文件夹(无需整个仓库 (repo))并在其中运行。 关于 API 密钥 (API Keys) 环境变量语法,请查阅 litellm 文档。LiteLLM 文档

#build and run docker compose Build takes around 20 min.
docker compose build && docker compose up -d

#access cai
docker compose exec cai cai

Android

我们建议至少拥有 8 GB 的内存 (RAM):

  1. 首先,安装 UserLand https://play.google.com/store/apps/details?id=tech.ula&hl=es

  2. 在基本选项中安装 Kali minimal(免费)。[或者如果您更喜欢其他 Kali 选项]

  3. 像这个例子一样更新 apt 密钥:https://superuser.com/questions/1644520/apt-get-update-issue-in-kali,在 UserLand 的 Kali 终端内执行

# Get new apt keys
wget http://http.kali.org/kali/pool/main/k/kali-archive-keyring/kali-archive-keyring_2024.1_all.deb

# Install new apt keys
sudo dpkg -i kali-archive-keyring_2024.1_all.deb && rm kali-archive-keyring_2024.1_all.deb

# Update APT repository
sudo apt-get update

# CAI requieres python 3.12, lets install it (CAI for kali in Android)
sudo apt-get update && sudo apt-get install -y git python3-pip build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev libsqlite3-dev wget libbz2-dev pkg-config
wget https://www.python.org/ftp/python/3.12.4/Python-3.12.4.tar.xz
tar xf Python-3.12.4.tar.xz
cd ./configure --enable-optimizations
sudo make altinstall # This command takes long to execute

# Clone CAI's source code
git clone https://github.com/aliasrobotics/cai && cd cai

# Create virtual environment
python3.12 -m venv cai_env

# Install the package from the local directory
source cai_env/bin/activate && pip3 install -e .

# Generate a .env file and set up
cp .env.example .env  # edit here your keys/models

# Launch CAI
cai

:nut_and_bolt: 设置 .env 文件

CAI 利用 .env 文件在启动时加载配置。为了方便设置,仓库提供了一个示例 .env.example 文件,为配置 CAI 的设置以及您的 LLM (大型语言模型) API 密钥以配合所需的 LLM 模型提供模板。

:warning: 重要提示:

CAI 默认不提供任何模型的 API 密钥。不要要求我们提供密钥,请使用您自己的或托管您自己的模型。

:warning: 注意:

OPENAI_API_KEY 不能留空。它应包含 "sk-123"(作为占位符)或您实际的 API 密钥。参见 https://github.com/aliasrobotics/cai/issues/27。

:warning: 注意:

如果您正在使用 alias1 模型,请确保 CAI 版本大于 0.4.0,这里有一个 .env 示例供您使用。

OPENAI_API_KEY="sk-1234"
OLLAMA=""
ALIAS_API_KEY="<sk-your-key>"  # note, add yours
CAI_STREAM=False
CAI_MODEL="alias1"

🔹 自定义 OpenAI 基础 URL 支持

CAI 支持通过 OPENAI_BASE_URL 环境变量配置自定义 OpenAI API 基础 URL。这允许用户将 API 调用重定向到自定义端点 (endpoint),例如代理 (proxy) 或自托管 (self-hosted) 的 OpenAI 兼容服务。

示例 .env 条目配置:

OLLAMA_API_BASE="https://custom-openai-proxy.com/v1"

或者直接从命令行:

OLLAMA_API_BASE="https://custom-openai-proxy.com/v1" cai

:triangular_ruler: 架构:

CAI 专注于使网络安全代理的协调执行轻量化、高度可控且对人类有用。为此,它建立在 8 大支柱之上:Agents(代理)、Tools(工具)、Handoffs(交接)、Patterns(模式)、Turns(回合)、Tracing(追踪)、Guardrails(护栏)和 HITL(人在回路)。

                  ┌───────────────┐           ┌───────────┐
                  │      HITL     │◀─────-───▶│   Turns   │
                  └───────┬───────┘           └───────────┘
                          │
                          ▼
┌───────────┐       ┌───────────┐       ┌───────────┐      ┌───────────┐
│  Patterns │◀──-──▶│  Handoffs │◀──-─▶ │   Agents  │◀──-─▶│    LLMs   │
└───────────┘       └─────┬─────┘       └─────┬─────┘      └───────────┘
                          │                   │
                          │                   ▼
┌────────────┐       ┌────┴──────┐       ┌───────────┐     ┌────────────┐
│ Extensions │◀────▶ │  Tracing  │       │   Tools   │◀──▶ │ Guardrails │
└────────────┘       └───────────┘       └───────────┘     └────────────┘
                                              │
                          ┌─────────────┬─────┴────┬─────────────┐
                          ▼             ▼          ▼             ▼
                    ┌───────────┐┌───────────┐┌────────────┐┌───────────┐
                    │ LinuxCmd  ││ WebSearch ││    Code    ││ SSHTunnel │
                    └───────────┘└───────────┘└────────────┘└───────────┘

如果您想深入了解代码,请查看以下文件作为使用 CAI 的起点:

  • init.py
  • cli.py - 命令行界面(CLI)入口点
  • util.py - 实用函数
  • agents - 代理实现
  • internal - CAI 内部功能(端点、指标、日志等)
  • prompts - 代理提示词数据库
  • repl - CLI 界面样式和命令
  • sdk - CAI 命令 SDK
  • tools - 代理工具

🔹 代理

核心而言,CAI 通过 Agents(代理)和代理式 Patterns(模式)抽象其网络安全行为。代理是指与某些环境交互的智能系统。从技术层面来看,在 CAI 中我们采用以机器人为中心的定義,即代理被视为任何能够通过传感器感知环境、根据其目标进行推理并通过执行器对该环境采取行动的系统(改编自 Russell & Norvig, AI: A Modern Approach)。在网络安全领域,Agent(代理)与系统和网络交互,将外围设备和网络接口用作传感器,据此进行推理,然后像执行器一样执行网络操作。相应地,在 CAI 中,Agent 实现了 ReACT(推理与行动)代理模型 [^3]。更多信息,请参阅 此处示例 获取完整执行代码,并参考此 Jupyter Notebook 了解如何使用它。

from cai.sdk.agents import Agent, Runner, OpenAIChatCompletionsModel

import os
from openai import AsyncOpenAI
from dotenv import load_dotenv
load_dotenv()

agent = Agent(
      name="Custom Agent",
      instructions="""You are a Cybersecurity expert Leader""",
      model=OpenAIChatCompletionsModel(
          model=os.getenv('CAI_MODEL', "openai/gpt-4o"),
          openai_client=AsyncOpenAI(),
          )
      )

message = "Tell me about recursion in programming."
result = await Runner.run(agent, message)

🔹 工具

Tools(工具)让网络安全代理能够通过提供接口来执行系统命令、运行安全扫描、分析漏洞以及与目标系统和 API 交互——它们是使 CAI 代理能够有效执行安全任务的核心能力;在 CAI 中,工具包括内置的网络安全实用程序(如用于命令执行的 LinuxCmd、用于开源情报收集(OSINT)的 WebSearch、用于动态脚本执行的 Code 以及用于安全远程访问的 SSHTunnel),允许将任何 Python 函数集成为安全工具的函数调用机制,以及代理即工具功能,这使得专用安全代理(如侦察或利用代理)可以被其他代理使用,从而创建强大的协作安全工作流,而无需代理之间正式交接。更多信息,请参阅 此处示例 以获取自定义函数的完整配置。

from cai.sdk.agents import Agent, Runner, OpenAIChatCompletionsModel
from cai.tools.reconnaissance.exec_code import execute_code
from cai.tools.reconnaissance.generic_linux_command import generic_linux_command

import os
from openai import AsyncOpenAI
from dotenv import load_dotenv
load_dotenv()

agent = Agent(
      name="Custom Agent",
      instructions="""You are a Cybersecurity expert Leader""",
      tools= [
        generic_linux_command,
        execute_code
      ],
      model=OpenAIChatCompletionsModel(
          model=os.getenv('CAI_MODEL', "openai/gpt-4o"),
          openai_client=AsyncOpenAI(),
          )
      )

message = "Tell me about recursion in programming."
result = await Runner.run(agent, message)

您可以找到不同的 工具。它们受安全杀伤链(kill chain) [^2] 启发,分为 6 大类:

  1. 侦察和武器化 - 侦察(加密、列表等)
  2. 利用 - 利用
  3. 权限提升 - 提升
  4. 横向移动 - 横向
  5. 数据外泄 - 外泄
  6. 命令与控制 - 控制

🔹 Handoffs

Handoffs(交接)允许一个 Agent(智能体)将任务委托给另一个智能体,这在网络安全操作中至关重要,因为不同的安全行动阶段需要不同的专业知识。在我们的框架中,Handoffs 被实现为 LLM(大型语言模型)的工具,其中像 transfer_to_flag_discriminator 这样的交接/转移函数使得 ctf_agent 在认为已找到 flag(旗帜/答案)后能将控制权传递给 flag_discriminator_agent。这创建了一个安全验证链,第一个智能体负责漏洞利用和 flag 发现,而第二个智能体专门负责 flag 验证,确保职责分离得当,并利用不同模型的专用能力来处理不同的安全任务。更多信息,请参见 此处示例 以获取完整执行代码。

from cai.sdk.agents import function_tool
from cai.tools.common import run_command
from cai.sdk.agents import Agent, OpenAIChatCompletionsModel, HandoffInputData, Runner, function_tool, handoff, trace
from cai.sdk.agents.extensions import handoff_filters

import os
from openai import AsyncOpenAI
from dotenv import load_dotenv
load_dotenv()

@function_tool
def execute_cli_command(command: str) -> str:
    return run_command(command)

flag_discriminator = Agent(
    name="Flag discriminator",
    description="Agent focused on extracting the flag from the output",
    instructions="You are an agent tailored to extract the flag from a given output.",
    model=OpenAIChatCompletionsModel(
        model=os.getenv('CAI_MODEL', "qwen2.5:14b"),
        openai_client=AsyncOpenAI(),
    ) 
)

ctf_agent = Agent(
    name="CTF agent",
    description="Agent focused on conquering security challenges",
    instructions="You are a Cybersecurity expert Leader facing a CTF",
    tools=[
        execute_cli_command,
    ],
    model=OpenAIChatCompletionsModel(
        model= os.getenv('CAI_MODEL', "qwen2.5:14b"),
        openai_client=AsyncOpenAI(),
    ), 
    handoffs = [flag_discriminator]
)

🔹 Patterns

一种智能体 模式(Pattern)是人工智能系统中的结构化设计范式,自主或半自主智能体在其中在定义的交互框架(即该模式)内运作以实现目标。这些 模式 规定了智能体之间的组织、协调和通信方法,指导决策、任务执行和委托。

智能体模式 (AP) 可以形式化地定义为一个元组:

\[ AP = (A, H, D, C, E) \]

其中:

  • \(A\)(智能体): 一组自主实体,\( A = \{a_1, a_2, ..., a_n\} \),每个实体都有定义的角色、能力和内部状态。
  • \(H\)(交接): 一个函数 \( H: A \times T \to A \),根据预定义逻辑(例如规则、协商、竞价)管理任务 \( T \) 如何在智能体之间转移。
  • \(D\)(决策机制): 一个决策函数 \( D: S \to A \),其中 \( S \) 代表系统状态,\( D \) 决定在任何给定时间哪个智能体采取行动。
  • \(C\)(通信协议): 一个消息函数 \( C: A \times A \to M \),其中 \( M \) 是消息空间,定义智能体如何共享信息。
  • \(E\)(执行模型): 一个函数 \( E: A \times I \to O \),其中 \( I \) 是输入空间,\( O \) 是输出空间,定义智能体如何执行业务。

在构建 模式 时,我们通常将它们归类为以下类别之一,尽管也存在其他类别:

智能体 模式 类别 描述
Swarm(群集) (去中心化) 智能体共享任务并自我分配责任,无需中央协调器。交接动态发生。对等智能体模式的例子是 CTF Agentic Pattern,涉及一组智能体协作解决 CTF 挑战,具有动态交接。
Hierarchical (层级) 顶层智能体(如"PlannerAgent")通过结构化的交接将任务分配给专门的子智能体。或者,智能体的结构被硬编码到智能体模式中,带有预定义的交接。
Chain-of-Thought (思维链) (顺序工作流) 结构化管道,其中智能体 A 产生输出,将其交给智能体 B 进行重用或改进,依此类推。交接遵循线性序列。思维链智能体模式的例子是 ReasonerAgent,涉及一种推理类型的 LLM,为主智能体提供上下文以通过线性序列解决 CTF 挑战。^1
Auction-Based (基于拍卖) (竞争性分配) 智能体根据优先级、能力或成本对任务进行“竞标”。决策智能体评估竞标并将任务交给最合适的智能体。
Recursive (递归) 单个智能体不断改进其自身输出,将自己视为执行者和评估者,交接(内部或外部)给自己。递归智能体模式的例子是 CodeAgent(当用作递归智能体时),它通过执行代码并更新自身指令来不断改进其自身输出。

有关常见智能体模式的更多信息和示例,请参阅 示例文件夹

🔹 Turns and Interactions

在智能体流程(对话)期间,我们区分交互回合

  • 交互:是一个或多个智能体之间的顺序交换。每个执行其逻辑的智能体对应一次交互。由于 CAI 中的 Agent 通常实现 ReACT 智能体模型 [^3],每次交互包括 1) 通过 LLM 推理的推理步骤和 2) 调用零到 n 个 工具 的行为。这在 core.py 中的 process_interaction() 中定义。
  • 回合:一个回合代表一个或多个交互的循环,当执行的 Agent(或 模式)返回 None 且判断没有进一步行动可采取时结束。这在 run() 中定义,见 core.py

[!NOTE] CAI 智能体与 Assistants API 中的助手无关。它们名称相似是为了方便,但除此之外完全无关。CAI 完全由 Chat Completions API(聊天补全 API)驱动,因此在调用之间是无状态的。

🔹 追踪

CAI 通过采用 OpenTelemetry 标准来实现 AI 可观测性 (AI Observability),为此它利用了 Phoenix。Phoenix 提供了基于 OpenTelemetry 插桩 (Instrumentation) 的全面追踪能力,允许你实时监控和分析安全运营 (Security Operations)。此集成提供了对智能体 (Agent) 交互、工具使用和攻击向量在整个渗透测试工作流中的详细可见性,使得调试复杂的利用链、跟踪漏洞发现流程以及优化智能体性能以进行更有效的安全评估变得更加容易。

🔹 护栏

护栏 (Guardrails) 为 CAI 智能体提供了关键的安全层,防止提示词注入 (Prompt Injection) 攻击并阻止危险命令的执行。这些护栏与智能体并行运行,验证输入和输出以确保安全操作。该框架包括:

  • 输入护栏 (Input Guardrails):在到达智能体之前检测和阻止提示词注入尝试,使用模式匹配、Unicode 同形异义符检测和 AI 驱动的分析
  • 输出护栏 (Output Guardrails):在执行前验证智能体输出,防止危险命令如反向 Shell (Reverse Shells)、分支炸弹 (Fork Bombs) 或数据外泄 (Data Exfiltration)
  • 多层防御 (Multi-layered Defense):在输入、处理和执行阶段提供保护,并进行工具级验证
  • Base64/Base32 感知:自动解码和分析编码负载以检测隐藏的恶意命令
  • 可配置 (Configurable):可通过 CAI_GUARDRAILS 环境变量启用或禁用

有关详细实现,请参阅 docs/guardrails.mddocs/cai_prompt_injection.md

🔹 人在回路 (HITL)

                      ┌─────────────────────────────────┐
                      │                                 │
                      │      Cybersecurity AI (CAI)     │
                      │                                 │
                      │       ┌─────────────────┐       │
                      │       │  Autonomous AI  │       │
                      │       └────────┬────────┘       │
                      │                │                │
                      │                │                │
                      │       ┌────────▼─────────┐      │
                      │       │ HITL Interaction │      │
                      │       └────────┬─────────┘      │
                      │                │                │
                      └────────────────┼────────────────┘
                                       │
                                       │ Ctrl+C (cli.py)
                                       │
                           ┌───────────▼───────────┐
                           │   Human Operator(s)   │
                           │  Expertise | Judgment │
                           │    Teleoperation      │
                           └───────────────────────┘

CAI 提供了一个构建网络安全 AI (Cybersecurity AIs) 的框架,强调 半自主 (Semi-autonomous) 操作,因为现实情况是 完全自主 (Fully-autonomous) 的网络安全系统在应对复杂任务时仍然不成熟且面临重大挑战。虽然 CAI 探索了自主能力,但我们认识到有效的安全运营仍需要人工遥操作 (Teleoperation) 来提供专业知识、判断力和监督。

因此,人在回路 (HITL) 模块是 CAI 的核心设计原则,承认人为干预和遥操作是负责任的安全测试的重要组成部分。通过 cli.py 接口,用户只需按 Ctrl+C 即可在执行的任何点无缝地与智能体交互。这实现在了 core.py 中,也在 REPL 抽象 REPL 中实现。

:rocket: 快速开始

安装后启动 CAI,只需在命令行界面 (CLI) 中输入 cai

└─# cai

          CCCCCCCCCCCCC      ++++++++   ++++++++      IIIIIIIIII
       CCC::::::::::::C  ++++++++++       ++++++++++  I::::::::I
     CC:::::::::::::::C ++++++++++         ++++++++++ I::::::::I
    C:::::CCCCCCCC::::C +++++++++    ++     +++++++++ II::::::II
   C:::::C       CCCCCC +++++++     +++++     +++++++   I::::I
  C:::::C                +++++     +++++++     +++++    I::::I
  C:::::C                ++++                   ++++    I::::I
  C:::::C                 ++                     ++     I::::I
  C:::::C                  +   +++++++++++++++   +      I::::I
  C:::::C                    +++++++++++++++++++        I::::I
  C:::::C                     +++++++++++++++++         I::::I
   C:::::C       CCCCCC        +++++++++++++++          I::::I
    C:::::CCCCCCCC::::C         +++++++++++++         II::::::II
     CC:::::::::::::::C           +++++++++           I::::::::I
       CCC::::::::::::C             +++++             I::::::::I
          CCCCCCCCCCCCC               ++              IIIIIIIIII

                      Cybersecurity AI (CAI), vX.Y.Z
                          Bug bounty-ready AI

CAI>

这将初始化 CAI 并提供一个提示符,用于执行你想要进行的任何安全任务。底部的导航栏显示重要的系统信息。这些信息有助于你在与 CAI 协作时了解你的环境。

这里有一个快速的 演示视频 帮助你开始使用 CAI。我们将介绍基本步骤——从启动工具到在终端中运行第一个 AI 驱动的任务。无论你是初学者还是只是好奇,本指南将向你展示开始使用 CAI 是多么容易。

从这里开始,在 CAI 中输入内容并开始你的安全演练。最好的学习方式是通过示例:

环境变量

使用私有模型时,您会获得一个 .env.example 文件。复制它并将其重命名为 .env。填入相应的 API 密钥,即可准备使用 CAI。

环境变量列表
变量 描述
CTF_NAME 要运行的 CTF 挑战名称(例如 "picoctf_static_flag")
CTF_CHALLENGE CTF 内特定的挑战测试名称
CTF_SUBNET CTF 容器的网络子网
CTF_IP CTF 容器的 IP 地址
CTF_INSIDE 是否从容器内部攻克 CTF
CAI_MODEL 代理使用的模型
CAI_DEBUG 设置调试输出级别 (0: 仅工具输出,1: 详细调试输出,2: CLI 调试输出)
CAI_BRIEF 启用/禁用简要输出模式
CAI_MAX_TURNS 代理交互的最大轮数
CAI_TRACING 启用/禁用 OpenTelemetry 追踪
CAI_AGENT_TYPE 指定要使用的代理 (boot2root, one_tool...)
CAI_STATE 启用/禁用有状态模式
CAI_MEMORY 启用/禁用记忆模式 (情景式、语义式、全部)
CAI_MEMORY_ONLINE 启用/禁用在线记忆模式
CAI_MEMORY_OFFLINE 启用/禁用离线记忆
CAI_ENV_CONTEXT 将目录和当前环境添加到 LLM 上下文
CAI_MEMORY_ONLINE_INTERVAL 在线记忆更新之间的轮数
CAI_PRICE_LIMIT 对话的价格限制(美元)
CAI_REPORT 启用/禁用报告模式 (ctf, nis2, pentesting)
CAI_SUPPORT_MODEL 支持代理使用的模型
CAI_SUPPORT_INTERVAL 支持代理执行之间的轮数
CAI_WORKSPACE 定义工作区的名称
CAI_WORKSPACE_DIR 指定工作区所在的目录路径
CAI_GUARDRAILS 启用/禁用用于提示注入保护的护栏 (默认:true)

OpenRouter 集成

Cybersecurity AI (CAI) 平台与 OpenRouter 无缝集成,OpenRouter 是大型语言模型 (LLM) 的统一接口。这种集成对于希望在网络安全任务中利用先进 AI 能力的用户至关重要。OpenRouter 充当桥梁,允许 CAI 与各种 LLM 通信,从而增强 CAI 内部使用的 AI 代理的灵活性和能力。

要在 CAI 中启用 OpenRouter 支持,您需要通过在 .env 文件中添加特定条目来配置您的环境。此设置确保 CAI 可以与 OpenRouter API 交互,促进像 Meta-LLaMA 这样的高级模型的使用。以下是配置方法:

CAI_AGENT_TYPE=redteam_agent
CAI_MODEL=openrouter/meta-llama/llama-4-maverick
OPENROUTER_API_KEY=<sk-your-key>  # note, add yours
OPENROUTER_API_BASE=https://openrouter.ai/api/v1

Azure OpenAI

Cybersecurity AI (CAI) 平台与 Azure OpenAI 无缝集成,使组织能够针对企业托管模型(例如 gpt-4o)运行 CAI。此路径非常适合必须在 Azure 治理范围内运作同时利用高级模型能力的团队。 要在 CAI 中启用 Azure OpenAI 支持,请在 .env 中添加以下条目以配置您的环境。这确保 CAI 可以访问您的 Azure 部署端点并正确认证。

CAI_AGENT_TYPE=redteam_agent
CAI_MODEL=azure/<model-name-deployed>
# Required: keep non-empty even when using Azure
OPENAI_API_KEY=dummy
# Azure credentials and endpoint
AZURE_API_KEY=<your-azure-openai-key>
AZURE_API_BASE=https://<resource>.openai.azure.com/openai/deployments/<deployment-name>/chat/completions?api-version=2025-01-01-preview

MCP

CAI 支持 Model Context Protocol (MCP),用于将外部工具和服务与 AI 代理集成。MCP 通过两种传输机制支持:

  1. SSE (Server-Sent Events) - 适用于通过 HTTP 连接推送更新的基于 Web 的服务器:
CAI>/mcp load http://localhost:9876/sse burp
  1. STDIO (Standard Input/Output) - 用于本地进程间通信:
CAI>/mcp load stdio myserver python mcp_server.py

连接后,您可以将 MCP 工具添加到任何代理:

CAI>/mcp add burp redteam_agent
Adding tools from MCP server 'burp' to agent 'Red Team Agent'...
                                 Adding tools to Red Team Agent
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Tool                              ┃ Status ┃ Details                                         ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
│ send_http_request                 │ Added  │ Available as: send_http_request                 │
│ create_repeater_tab               │ Added  │ Available as: create_repeater_tab               │
│ send_to_intruder                  │ Added  │ Available as: send_to_intruder                  │
│ url_encode                        │ Added  │ Available as: url_encode                        │
│ url_decode                        │ Added  │ Available as: url_decode                        │
│ base64encode                      │ Added  │ Available as: base64encode                      │
│ base64decode                      │ Added  │ Available as: base64decode                      │
│ generate_random_string            │ Added  │ Available as: generate_random_string            │
│ output_project_options            │ Added  │ Available as: output_project_options            │
│ output_user_options               │ Added  │ Available as: output_user_options               │
│ set_project_options               │ Added  │ Available as: set_project_options               │
│ set_user_options                  │ Added  │ Available as: set_user_options                  │
│ get_proxy_http_history            │ Added  │ Available as: get_proxy_http_history            │
│ get_proxy_http_history_regex      │ Added  │ Available as: get_proxy_http_history_regex      │
│ get_proxy_websocket_history       │ Added  │ Available as: get_proxy_websocket_history       │
│ get_proxy_websocket_history_regex │ Added  │ Available as: get_proxy_websocket_history_regex │
│ set_task_execution_engine_state   │ Added  │ Available as: set_task_execution_engine_state   │
│ set_proxy_intercept_state         │ Added  │ Available as: set_proxy_intercept_state         │
│ get_active_editor_contents        │ Added  │ Available as: get_active_editor_contents        │
│ set_active_editor_contents        │ Added  │ Available as: set_active_editor_contents        │
└───────────────────────────────────┴────────┴─────────────────────────────────────────────────┘
Added 20 tools from server 'burp' to agent 'Red Team Agent'.
CAI>/agent 13
CAI>Create a repeater tab

您可以列出所有活动的 MCP 连接及其传输类型:

CAI>/mcp list

https://github.com/user-attachments/assets/386a1fd3-3469-4f84-9396-2a5236febe1f

开发

开发通过 VS Code 开发环境进行。要试用我们的开发环境,请克隆仓库,打开 VS Code 并进入开发容器模式:

CAI Development Environment

贡献

如果您想为此项目做出贡献,请在您的 MR (Merge Request,合并请求) 之前使用 Pre-commit

pip install pre-commit
pre-commit # files staged
pre-commit run --all-files # all files

可选要求:caiextensions

目前,由于维护这些扩展的工程投入巨大,它们尚未公开可用。取而代之的是,我们通过合作项目向合作伙伴公司提供选定的自定义 caiextensions。

:information_source: 使用数据收集

CAI 免费提供给研究人员。为了提高 CAI 的检测准确率并发布开放安全研究,代替针对研究用例的付费,我们邀请您通过允许使用数据收集来为 CAI 社区做贡献。这些数据有助于我们识别改进领域,了解框架的使用方式,并确定新功能的优先级。数据收集的法律效力依据 GDPR (通用数据保护条例) 第 6 条 (1)(f) 款——即 CAI 在维护和改善安全工具方面的合法利益,同时包含第 89 条关于研究的保障措施。收集的数据包括:

  • 基本系统信息(OS (操作系统) 类型、Python 版本)
  • 用户名和 IP 信息
  • 工具使用模式和性能指标
  • 模型交互和令牌使用情况统计

我们非常重视您的隐私,仅收集使 CAI 变得更好所需的数据。如需更多信息,请联系 research@aliasrobotics.com。您可以通过 CAI_TELEMETRY 环境变量 (environment variable) 禁用部分数据收集功能,但我们鼓励您保持启用状态并为研究做出贡献:

CAI_TELEMETRY=False cai

在本地复现 CI 设置

为了模拟 CI/CD (持续集成/持续部署) 流水线,您可以在 GitLab Runner 机器上运行以下内容:

docker run --rm -it \
  --privileged \
  --network=exploitflow_net \
  --add-host="host.docker.internal:host-gateway" \
  -v /cache:/cache \
  -v /var/run/docker.sock:/var/run/docker.sock:rw \
  registry.gitlab.com/aliasrobotics/alias_research/cai:latest bash

常见问题解答

OLLAMA 报错 404

Ollama 的 OpenAI 模式 API 使用 /v1/chat/completions,而 openai 库使用 base_url + /chat/completions

为了与生成式人工智能(gen AI)社区整体保持一致,我们采用后者,并通过允许用户自行添加 v1 来支持前者,方法如下:

OLLAMA_API_BASE=http://IP:PORT/v1

请参阅以下更详细讨论此主题的 issue:

所有的 caiextensions 在哪里?

参见 所有 caiextensions

如何安装 report caiextension?

参见此处

如何为 Gitlab 设置 SSH 访问?

生成新的 SSH 密钥

ssh-keygen -t ed25519

将密钥添加到 SSH agent

ssh-add ~/.ssh/id_ed25519

将公钥添加到 Gitlab 复制密钥并将其添加到 Gitlab 的 https://gitlab.com/-/user_settings/ssh_keys

cat ~/.ssh/id_ed25519.pub

验证它:

ssh -T git@gitlab.com
Welcome to GitLab, @vmayoral!
如何清除 Python 缓存?
find . -name "*.pyc" -delete && find . -name "__pycache__" -delete
如果 ollama 的主机网络无法工作,请检查是否因未登录而在 Docker 中被禁用

OS X 上的 Docker 有时行为异常。检查是否出现以下消息:

主机网络已被禁用,因为您未登录。请登录以启用它

确保已解决此问题,并且 Dev Container(开发容器)没有转发 8000 端口(如有必要,在端口部分点击 x)。

要验证连接,请在 VSCode devcontainer 内执行:

curl -v http://host.docker.internal:8000/api/version
针对任何目标运行 CAI

cai-004-first-message

此处的初始用户提示是:Target IP: 192.168.3.10, perform a full network scan

代理已开始执行 nmap 扫描。您可以与代理交互并给它更多指令,或者让它运行以查看它接下来探索什么。

如何与代理交互?输入两次 CTRL + C

cai-005-ctrl-c

如果您想使用 HITL(Human-in-the-loop,人机回环)模式,可以通过按两次 Ctrl + C 来实现。 这将允许您在任何时候与代理交互(发送提示)。代理不会丢失之前的上下文,因为它存储在 history 变量中,该变量会传递给当前代理以及被调用的任何代理。这使得任何代理都能利用先前的信息,从而更加准确和高效。

CAI 运行时能更改模型吗?/model

使用 /model 更改模型。

cai-007-model-change

如何列出所有可用的代理?/agent

使用 /agent 列出所有可用的代理。

cai-010-agents-menu

在哪里可以列出所有环境变量?/config

cai-008-config

如何监控上下文使用和令牌消耗?/context 或 /ctx 🚀 CAI PRO

⚡ CAI PRO 独占功能 /context 命令仅在 CAI PRO 中提供。要访问此功能并解锁高级监控能力,请访问 Alias Robotics 获取更多信息。

使用 /context(或简写形式 /ctx)查看您当前的上下文窗口使用和令牌统计信息。

此命令显示:

  • 总上下文使用情况(已用令牌 / 最大令牌)及百分比
  • 带有 CAI 标志的视觉网格表示,显示填充的上下文
  • 按类别的详细分解:
    • 系统提示令牌
    • 工具定义令牌
    • 记忆/RAG(检索增强生成)令牌
    • 用户提示令牌
    • 助手响应令牌
    • 工具调用令牌
    • 工具结果令牌
  • 可用剩余空间

为什么这很重要:不同的模型有不同的上下文限制(例如,GPT-4: 128k 令牌,Claude: 200k 令牌)。监控您的上下文使用情况有助于避免在长对话中达到这些限制,这可能会导致错误或需要截断对话。

# 显示上下文使用情况
/context

# 或使用简写形式
/ctx
如何了解更多关于 CLI(命令行界面)的信息?/help

cai-006-help

如何追踪整个执行过程? 环境变量 `CAI_TRACING` 允许用户将其设置为 `CAI_TRACING=true` 以启用追踪,或 `CAI_TRACING=false` 以禁用它。 当 CAI 首次被提示时,用户将获得两个路径:执行日志和追踪日志。

cai-009-logs

我可以使用之前的运行日志来扩展 CAI 的功能吗?

是的。目前,CAI 依靠上下文学习(In-Context Learning, ICL)表现最佳。与其构建长期存储,推荐的工作流是将相关的前置日志直接加载到当前会话中,以便模型可以在上下文中利用它们进行推理。

使用 /load 命令将 JSONL 日志引入 CAI 的上下文(这取代了旧的内存加载工具):

CAI>/load logs/cai_20250408_111856.jsonl         # Load into current agent
CAI>/load <file> agent <name>                    # Load into a specific agent
CAI>/load <file> all                             # Distribute across all agents
CAI>/load <file> parallel                        # Match to configured parallel agents

提示:如果省略 ,/load 将使用 logs/last。别名:/l


CAI 在启动时会打印当前运行的 JSONL 日志路径(橙色高亮显示),您可以将其传递给 /load:

![cai-009-logs](imgs/readme_imgs/cai-009-logs.png)

遗留说明:早期的“记忆扩展”(memory extension)机制(情景/语义存储 episodic/semantic stores 和离线摄入 offline ingestion)仅保留供参考。有关背景和遗留细节,请参阅 [src/cai/agents/memory.py](src/cai/agents/memory.py)。我们当前的方向优先考虑 ICL(In-Context Learning,上下文学习)而非持久化记忆。

</details>

<details>
<summary>我可以使用脚本或额外信息来扩展 CAI 的功能吗?</summary>

目前,CAI 支持基于文本的信息。您可以通过直接将任何关于目标对象的额外信息复制粘贴到系统提示或用户提示中来添加它。

**如何操作?** 通过将其添加到系统 ([`system_master_template.md`](cai/repl/templates/system_master_template.md)) 或用户提示 ([`user_master_template.md`](cai/repl/templates/user_master_template.md)) 中。您始终可以直接提示模型的路径,它将执行 ```cat``` 命令读取它。
</details>


<details><summary>CAI 的许可证是如何运作的?</summary>

CAI 当前的许可证不限制用于研究目的的使用。只要遵守当地法律,您可以自由地将 CAI 用于安全评估(渗透测试 pentests)、开发附加功能以及将其集成到您的研究活动中。

如果您或您的组织开始从 CAI 中获得商业利益(例如,提供由 CAI 支持的渗透测试服务),则需要商业许可证以维持项目的持续运营。

CAI 本身并非营利性项目。我们的目标是建立一个可持续的开源项目。我们只是希望那些从 CAI 中获利的人能够回馈并支持我们的持续发展。

</details>

<details><summary>在我的基于 Debian 的系统上安装前置依赖时,我遇到了 `Unable to locate package python3.12-venv` 错误!</summary>

解决此问题最简单的方法是直接从源代码安装 [`python3.12`](https://www.python.org/downloads/release/python-3120/)。


</details>

## 引用

如果您想引用我们的工作,请使用以下内容(按出版日期排序):

```bibtex
@article{mayoral2025cai,
  title={CAI: An Open, Bug Bounty-Ready Cybersecurity AI},
  author={Mayoral-Vilches, V{\'\i}ctor and Navarrete-Lozano, Luis Javier and Sanz-G{\'o}mez, Mar{\'\i}a and Espejo, Lidia Salas and Crespo-{\'A}lvarez, Marti{\~n}o and Oca-Gonzalez, Francisco and Balassone, Francesco and Glera-Pic{\'o}n, Alfonso and Ayucar-Carbajo, Unai and Ruiz-Alcalde, Jon Ander and Rass, Stefan and Pinzger, Martin and Gil-Uriarte, Endika},
  journal={arXiv preprint arXiv:2504.06017},
  year={2025}
}

@article{mayoral2025automation,
  title={Cybersecurity AI: The Dangerous Gap Between Automation and Autonomy},
  author={Mayoral-Vilches, V{\'\i}ctor},
  journal={arXiv preprint arXiv:2506.23592},
  year={2025}
}

@article{mayoral2025fluency,
  title={CAI Fluency: A Framework for Cybersecurity AI Fluency},
  author={Mayoral-Vilches, V{\'\i}ctor and Wachter, Jasmin and Chavez, Crist{\'o}bal RJ and Schachner, Cathrin and Navarrete-Lozano, Luis Javier and Sanz-G{\'o}mez, Mar{\'\i}a},
  journal={arXiv preprint arXiv:2508.13588},
  year={2025}
}

@article{mayoral2025hacking,
  title={Cybersecurity AI: Hacking the AI Hackers via Prompt Injection},
  author={Mayoral-Vilches, V{\'\i}ctor and Rynning, Per Mannermaa},
  journal={arXiv preprint arXiv:2508.21669},
  year={2025}
}

@article{mayoral2025humanoid,
  title={Cybersecurity AI: Humanoid Robots as Attack Vectors},
  author={Mayoral-Vilches, V{\'\i}ctor},
  journal={arXiv preprint arXiv:2509.14139},
  year={2025}
}

@article{balassone2025evaluation,
  title={Cybersecurity AI: Evaluating Agentic Cybersecurity in Attack/Defense CTFs},
  author={Balassone, Francesco and Mayoral-Vilches, V{\'\i}ctor and Rass, Stefan and Pinzger, Martin and Perrone, Gaetano and Romano, Simon Pietro and Schartner, Peter},
  journal={arXiv preprint arXiv:2510.17521},
  year={2025}
}

@article{mayoral2025caibench,
  title={CAIBench: A Meta-Benchmark for Evaluating Cybersecurity AI Agents},
  author={Mayoral-Vilches, V{\'\i}ctor and Balassone, Francesco and Navarrete-Lozano, Luis Javier and Sanz-G{\'o}mez, Mar{\'\i}a and Crespo-{\'A}lvarez, Marti{\~n}o and Rass, Stefan and Pinzger, Martin},
  journal={arXiv preprint arXiv:2510.24317},
  year={2025}
}

致谢

CAI 最初由 Alias Robotics 开发,并由欧洲 EIC 加速器项目 RIS(GA 101161136)- HORIZON-EIC-2023-ACCELERATOR-01 资助。原始的代理(agentic)原则灵感来源于 OpenAI 的 swarm 库,并被转化为新的原型。本项目还使用了其他相关的开源构建模块,包括 LiteLLMphoenix

学术合作

CAI 受益于与学术机构的持续研究合作。对合作项目、数据集访问或学术许可证感兴趣的研究人员请联系 research@aliasrobotics.com。我们为以下方面提供特别支持:

  • 博士研究项目
  • 学术基准测试研究
  • 安全教育计划
  • 来自研究实验室的开源贡献

[^2]: Kamhoua, C. A., Leslie, N. O., & Weisman, M. J. (2018). Game theoretic modeling of advanced persistent threat in internet of things. Journal of Cyber Security and Information Systems. [^3]: Yao, S., Zhao, J., Yu, D., Du, N., Shafran, I., Narasimhan, K., & Cao, Y. (2023, January). React: Synergizing reasoning and acting in language models. In International Conference on Learning Representations (ICLR). [^4]: Deng, G., Liu, Y., Mayoral-Vilches, V., Liu, P., Li, Y., Xu, Y., ... & Rass, S. (2024). {PentestGPT}: Evaluating and harnessing large language models for automated penetration testing. In 33rd USENIX Security Symposium (USENIX Security 24) (pp. 847-864).

版本历史

0.5.9
0.5.8
0.5.7
0.5.6
0.5.5

常见问题

相似工具推荐

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|今天
开发框架图像Agent

everything-claude-code

everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上

139k|★★☆☆☆|今天
开发框架Agent语言模型

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

107.7k|★★☆☆☆|2天前
开发框架图像Agent

NextChat

NextChat 是一款轻量且极速的 AI 助手,旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性,以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发,NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。 这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言,它也提供了便捷的自托管方案,支持一键部署到 Vercel 或 Zeabur 等平台。 NextChat 的核心亮点在于其广泛的模型兼容性,原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型,让用户在一个界面即可自由切换不同 AI 能力。此外,它还率先支持 MCP(Model Context Protocol)协议,增强了上下文处理能力。针对企业用户,NextChat 提供专业版解决方案,具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能,满足公司对数据隐私和个性化管理的高标准要求。

87.6k|★★☆☆☆|今天
开发框架语言模型

ML-For-Beginners

ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。

85k|★★☆☆☆|今天
图像数据工具视频

ragflow

RAGFlow 是一款领先的开源检索增强生成(RAG)引擎,旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体(Agent)能力相结合,不仅支持从各类文档中高效提取知识,还能让模型基于这些知识进行逻辑推理和任务执行。 在大模型应用中,幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构(如表格、图表及混合排版),显著提升了信息检索的准确度,从而有效减少模型“胡编乱造”的现象,确保回答既有据可依又具备时效性。其内置的智能体机制更进一步,使系统不仅能回答问题,还能自主规划步骤解决复杂问题。 这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统,还是致力于探索大模型在垂直领域落地的创新者,都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口,既降低了非算法背景用户的上手门槛,也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目,它正成为连接通用大模型与行业专有知识之间的重要桥梁。

77.1k|★★★☆☆|2天前
Agent图像开发框架