CAI 快速上手:从终端启动到自主安全任务的完整指南
2026/9/15 23:27:15 网站建设 项目流程

CAI 快速上手:从终端启动到自主安全任务的完整指南

【免费下载链接】caiCybersecurity AI (CAI), the framework for AI Security项目地址: https://gitcode.com/GitHub_Trending/cai3/cai

本篇技术指南以 Cybersecurity AI(CAI)框架的官方快速入门文档为核心,讲解如何通过一行cai命令启动终端交互式安全助手、理解底部状态栏信息、掌握全套环境变量配置方式,并运用--continue自主模式让 Agent 无人值守地完成漏洞审计、SQL 注入检测、代码安全审查等实战任务。读完本文,你将能够独立完成 CAI 的初始化、按需配置模型与成本上限,并编写可复用的自主安全任务命令。


一、启动 CAI:一条命令进入安全作战终端

安装 CAI 之后,只需在终端输入cai即可完成初始化并进入交互式提示符:

└─# cai CCCCCCCCCCCCC ++++++++ ++++++++ IIIIIIIIII CCC::::::::::::C ++++++++++ ++++++++++ I::::::::I CC:::::::::::::::C ++++++++++ ++++++++++ I::::::::I C:::::CCCCCCCCCC::::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), v0.4.0 Bug bounty-ready AI CAI>

初始化成功后你会看到CAI>提示符,可以在其中执行任意安全任务。屏幕底部的导航栏会持续显示重要的系统信息(当前 Agent、模型、会话成本、运行时长等),帮助你随时了解运行环境。

从源码结构看,启动流程由 src/cai/cli.py 中的main()函数驱动:它先调用fix_litellm_transcription_annotations()修复 LiteLLM 的注解兼容性问题,再依据CAI_AGENT_TYPE(默认one_tool_agent)通过get_agent_by_name()实例化 Agent,最后进入 run_cai_cli() 的主循环——该循环负责读取用户输入、拼接对话上下文(history_context)、调用Runner.run()执行 Agent,并处理CAI_MAX_TURNS轮次上限、CAI_PARALLEL并行实例等运行时逻辑。

启动后最有效的学习方式是直接下达任务,例如让 CAI 执行一次针对认证系统的安全检查。原文档提供了对应的演示视频,你可以按同样的步骤从启动工具一路走到运行第一个 AI 驱动的安全任务。


二、环境变量全景:控制 CAI 行为的 20+ 个开关

CAI 通过环境变量来配置几乎所有的运行行为。下表完整列出了快速入门文档中的变量清单,并补充了源码(src/cai/cli.py 顶部模块文档与 src/cai/repl/commands/config.py 中的ENV_VARS定义)确认的默认值与可选值:

变量说明
CTF_NAME要运行的 CTF 挑战名称(如"picoctf_static_flag"
CTF_CHALLENGECTF 内的具体子挑战名(如CTF_NAME="kiddoctf"包含 4 个子挑战,运行其中之一:"01 linux i"
CTF_SUBNETCTF 容器的网络子网(默认192.168.3.0/24
CTF_IPCTF 容器的 IP 地址(默认192.168.3.100
CTF_INSIDE是否在容器内部攻克 CTF(默认true
CAI_MODELAgent 使用的模型(默认alias1
CAI_DEBUG调试输出级别:0仅显示工具输出,1详细调试输出,2CLI 调试输出(默认1
CAI_BRIEF启用/禁用精简输出模式(默认false
CAI_MAX_TURNSAgent 交互的最大轮数(默认inf,即不限)
CAI_TRACING启用/禁用 OpenTelemetry 追踪(默认true
CAI_AGENT_TYPE指定使用的 Agent(默认one_tool_agent;如boot2rootredteam_agent等,可用/agent命令列出全部)
CAI_PRICE_LIMIT会话的价格上限,单位美元(默认1
CAI_WORKSPACE工作区名称(影响日志文件命名)
CAI_GUARDRAILS启用/禁用提示注入防护的 guardrails(默认true

在 src/cai/repl/commands/config.py 的ENV_VARS注册表中,还可以看到快速入门未列出的扩展变量,供深入使用时参考:

变量说明(含默认值)
CAI_STATE启用状态化模式(默认false),开启后 Agent 会用状态 Agent 追踪网络状态与已发现 flag
CAI_MEMORY记忆模式:episodic(情景记忆)、semantic(语义记忆)、all(两者并用),默认false
CAI_MEMORY_ONLINE/CAI_MEMORY_OFFLINE在线/离线记忆开关(默认false
CAI_MEMORY_ONLINE_INTERVAL在线记忆更新的轮次间隔(默认5
CAI_ENV_CONTEXT是否将目录与当前环境加入 LLM 上下文(默认true
CAI_SUPPORT_MODEL支持 Agent 使用的模型(默认o3-mini
CAI_SUPPORT_INTERVAL支持 Agent 执行的轮次间隔(默认5
CAI_STREAM是否以实时分块流式输出(默认false
CAI_TELEMETRY是否上传遥测数据(默认true
CAI_PARALLEL并行运行的 Agent 实例数(默认1,大于 1 时同屏展示所有结果)
CAI_REPORT报告模式(扩展):ctf(CTF 解决报告,默认)、nis2pentesting

提示:CAI_GUARDRAILS在 config.py 注册表中对应编号26CAI_PRICE_LIMIT对应编号18,这与快速入门文档及 src/cai/cli.py 中"/config set 26 false"的提示完全一致。


三、三种配置环境变量的方式

快速入门文档给出了三种互相等价、可灵活组合的配置手段,以下逐一展开。

1. 使用.env文件(推荐,持久化)

在启动目录放置.env文件,CAI 会自动加载。值得注意的是,src/cai/cli.py 在导入任何其他模块之前就调用load_dotenv(override=True),且.env的优先级高于系统环境变量,因此这是最可靠的配置来源:

# 在 .env 文件中添加任意环境变量 CAI_PRICE_LIMIT="0.004" CAI_MODEL="qwen2.5:72b"

2. 命令行参数(单次会话)

直接在启动命令前以键值对形式传入,适合临时覆盖:

CAI_PRICE_LIMIT="0.004" CAI_MODEL="qwen2.5:72b" cai

3. 运行时/config配置(不重启生效)

进入 CAI 后输入/config,会以 Rich 表格形式展示全部环境变量及当前值、默认值。根据第一列的数字编号执行set即可热更新:

cai /config # 显示包含所有环境变量的面板,取第一列的引用编号 # 例如 18 对应 CAI_PRICE_LIMIT /config set 18 "0.004"

/config的实现细节(src/cai/repl/commands/config.py)值得留意:

  • 支持子命令list(列全部)、get <number>(查单个)、set <number> <value>(改单个);
  • ConfigCommand._add_agent_model_vars()会为每个已注册 Agent 动态追加CAI_<AGENT>_MODEL覆盖变量,并行模式(CAI_PARALLEL > 1)下还会追加CAI_<AGENT>_<N>_MODEL实例级覆盖变量;
  • 主循环 run_cai_cli() 每轮都会重新读取CAI_MAX_TURNS,若运行时调大上限,会解除之前的“仅允许 CLI 命令”锁定状态,提示Turn limit increased. You can now continue using CAI.

结合cli.py的用法示例,可以组合出典型的真实场景:

# 针对 CTF 运行(指定挑战、Agent 与模型,关闭追踪) CTF_NAME="kiddoctf" CTF_CHALLENGE="02 linux ii" \ CAI_AGENT_TYPE="one_tool_agent" CAI_MODEL="alias1" \ CAI_TRACING="false" cai # 开启在线情景记忆:每 5 轮注册一次记忆,成本上限 5 美元 CTF_NAME="hackableII" CAI_MEMORY="episodic" \ CAI_MODEL="alias1" CAI_MEMORY_ONLINE="True" \ CTF_INSIDE="False" CTF_HINTS="False" \ CAI_PRICE_LIMIT="5" cai

四、--continue自主模式:让 Agent 不停机地完成任务

CAI 最强大的特性之一是--continue自主模式:Agent 在原本会停下等待用户输入的位置,自动生成智能续接指令,持续工作直至任务完成或被中断。

基本用法

# 让 CAI 连续讲安全笑话 cai --continue --prompt "tell me a joke about security" # 运行自主安全审计 cai --continue --prompt "perform security audit of authentication system" # 自动寻找漏洞 cai --continue --prompt "find SQL injection vulnerabilities"

启用--continue后,CAI 会:

  • 每一轮结束后分析对话上下文;
  • 生成智能化的续接提示(Auto-continuing with: ...);
  • 持续工作,直到任务完成或被Ctrl+C中断。

工作原理解读

续接系统在 Agent 完成一轮后,会综合分析以下信号来决定下一步动作(详细机制参见 docs/continue_mode.md):

  • 原始请求:用户最初下达的任务;
  • 对话历史:最近的用户消息与 Agent 回复;
  • 工具使用:使用了哪些工具及其输出;
  • 错误状态:遇到的错误类型;
  • 任务进度:当前完成度。

随后系统使用配置的模型生成上下文感知的续接提示,例如:

# 系统构建的上下文摘要示意 context_summary = """ ORIGINAL TASK: Tell me a joke about security CONVERSATION FLOW: User: Tell me a joke about security Agent: Why did the hacker break up with their password? Because it wasn't strong enough! CURRENT STATUS: - Last action: Told a cybersecurity joke - Tools used: None - Errors: No Generate a specific continuation prompt... """

当主模型不可用时,系统还内置了基于上下文的智能回退(fallback)策略,部分典型映射如下:

场景回退续接提示
讲完安全笑话"Tell another cybersecurity joke or pun."
文件未找到"Search for the correct file path or create the missing resource."
搜索完成"Examine the search results in detail and investigate the most relevant findings."
安全分析"Analyze the code for security vulnerabilities like injection flaws or authentication issues."
权限被拒"Check permissions and try accessing the resource with appropriate credentials."

终止与防失控机制

系统通过以下规则判断是否停止:

  1. 完成指示:Agent 明确说出 "completed"、"finished"、"done" 时停止;
  2. 活跃工作检测:仍有工具调用进行时继续;
  3. 错误恢复:尝试自动解决错误;
  4. 任务进度:评估原始目标是否已达成。

若担心无限循环,可以组合CAI_MAX_TURNS限制轮数:

# 在代码集成中使用 max_turns 限制 run_cai_cli( starting_agent=agent, initial_prompt="analyze security", continue_mode=True, max_turns=10 # 限制为 10 轮 )

五、自主模式的典型实战场景

1. 自动化安全审计

cai --continue --prompt "perform a security audit of the authentication system"

Agent 会依次:搜索认证相关文件 → 分析代码漏洞 → 检查常见安全问题 → 生成综合报告。

2. 持续漏洞狩猎

cai --continue --prompt "find and document all XSS vulnerabilities"

Agent 会:搜索用户输入处理代码 → 识别潜在 XSS 向量 → 记录发现 → 给出修复建议。

3. 扩展代码分析(OWASP Top 10)

cai --continue --prompt "analyze this codebase for OWASP Top 10 vulnerabilities"

Agent 会系统性逐类检查漏洞类型,直至全部覆盖。

4. 与 Session Resume 组合:断点续跑

--continue可与--resume无缝配合,让中断的会话自主恢复(详见 docs/session_resume.md):

# 恢复上次会话并继续自主工作 cai --resume --continue # 恢复指定会话并继续 cai --resume abc12345 --continue # 从交互选择器恢复并继续 cai --resume list --continue

该组合的能力链条是:恢复完整对话历史 → 基于上次停点自动生成续接提示 → 无需人工输入持续工作


六、与--continue配套的模型与功能配置

模型与密钥

# 为续接生成指定不同模型 export CAI_MODEL=gpt-4 cai --continue --prompt "analyze this code" # 设置主模型失败时的回退模型 export CAI_CONTINUATION_FALLBACK_MODEL=gpt-3.5-turbo cai --continue --prompt "test application security" # 为自定义模型配置 API 密钥 export ALIAS_API_KEY=your-api-key cai --continue --prompt "perform penetration testing"

与其他 CAI 特性组合

# 指定特定 Agent 进入自主模式 CAI_AGENT_TYPE=bug_bounter_agent cai --continue --prompt "test example.com" # 设置工作区便于文件操作 CAI_WORKSPACE=project1 cai --continue --prompt "audit all Python files" # 开启流式输出,实时监控进度 CAI_STREAM=true cai --continue --prompt "monitor security events"

七、可运行的示例脚本

仓库提供了两个开箱即用的示例,展示如何以编程方式驱动--continue

  • examples/continue_mode_jokes.py:演示连续讲安全笑话,包含Ctrl+C优雅中断与输出高亮;
  • examples/continue_mode_security_audit.py:演示自主漏洞扫描,会创建含 SQL 注入、命令注入、路径穿越、硬编码凭据的示例文件,让 CAI 连续审计直至发现多处问题,并在结束后自动清理。

运行方式:

python examples/continue_mode_jokes.py python examples/continue_mode_security_audit.py

从实现看,两个脚本均通过subprocess.Popenpython src/cai/cli.py --continue --prompt "..."的方式调用 CLI,并逐行读取输出、统计Auto-continuing with:续接次数,展示了自主模式在无人值守场景下的完整调用链。


八、最佳实践与故障排查

编写高质量的初始提示

# 好——具体、可执行 cai --continue --prompt "find SQL injection vulnerabilities in user.py" # 差——过于模糊 cai --continue --prompt "check security"

监控与限流

  • 定期检查输出,确保方向正确;
  • 需要停止时使用Ctrl+C
  • 查看logs/last符号链接指向的会话日志(该链接由 run_cai_cli() 在退出时自动创建)获取详细执行历史。

常见问题

症状可能原因解决方案
续接提示总是泛化文本(如 "Continue working on the task based on your previous findings")模型配置错误或 API 密钥失效检查模型配置与密钥有效性,查看调试日志中的 API 错误
续接未触发,Agent 一轮即停Agent 明说任务 "completed/done"、无工具调用、续接模块报错使用更开放式的初始提示;检查日志中的完成指示;确认--continue已正确传入
无限循环,反复做同一件事任务定义过宽或模型陷入循环设置max_turns上限;改用更具体的初始提示;Ctrl+C中断后细化任务

九、结语

cai一条命令启动交互式终端,到通过.env/ 命令行 //config三路配置环境变量,再到用--continue把 CAI 变成可无人值守的自主安全助手——快速入门文档覆盖的正是 CAI 日常使用中最核心的路径。结合 src/cai/cli.py 的主循环实现、src/cai/repl/commands/config.py 的变量注册表以及 examples 目录下的可运行示例,你可以在此基础上进一步探索 CAI PRO 特性、完整命令参考 与 自主模式详解,将 CAI 深度接入自己的安全研究与漏洞挖掘工作流。

【免费下载链接】caiCybersecurity AI (CAI), the framework for AI Security项目地址: https://gitcode.com/GitHub_Trending/cai3/cai

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询