尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

CAI CLI 完全入门指南:从首次启动到完成第一个安全评估任务

CAI CLI 完全入门指南:从首次启动到完成第一个安全评估任务 CAI CLI 完全入门指南从首次启动到完成第一个安全评估任务【免费下载链接】caiCybersecurity AI (CAI), the framework for AI Security项目地址: https://gitcode.com/GitHub_Trending/cai3/cai本指南以 CAICybersecurity AI开源仓库中的 CLI 交互界面为核心完整讲解如何安装后首次启动cai命令、配置 Alias API Key、选择模型与专业安全 Agent、执行真实的安全评估任务网络侦察、Web 漏洞测试、CTF 夺旗并掌握/config、/agent、/model、/shell等核心命令。读完本文你将能够在终端中独立跑通从启动 → 配置 → 选 Agent → 下发任务 → 保存会话的完整安全评估闭环并理解这些命令在仓库源码中的底层实现原理。本文基于仓库文档 docs/cli/getting_started.md 展开并结合 CLI 入口源码、REPL 命令实现 与 Agent 工厂 做纵深讲解。一、前置条件在开始之前请确认环境满足以下三项要求✅CAI 已安装按照安装指南完成 CAI 的安装。在pyproject.toml的[project.scripts]中注册了cai cai.cli:main入口安装后即可在任意终端直接运行cai命令参见 pyproject.toml。✅Python 3.9CAI 依赖较新的 Python 特性与生态请确保解释器版本不低于 3.9。✅有效的ALIAS_API_KEYCAI 面向 AI 安全任务需要从 Alias Robotics 获取有效的 API Key 作为模型服务凭证。提示如果你计划离线或本地运行也可以参考仓库中的 Ollama 配置方式OLLAMA_API_BASE详见后续章节的模型说明。二、Step 1启动 CLI打开终端直接运行cai正常情况下你会看到 CAI 的 ASCII 艺术 Banner 与提示符类似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), v0.6.0 Bug bounty-ready AI CAI2.1 Banner 与快速指南背后的实现Banner 由 src/cai/repl/ui/banner.py 中的display_banner()渲染其中的版本号并非硬编码而是从pyproject.toml动态读取get_version()函数确保 Banner 与发行版本始终一致紧随其后的display_quick_guide()会输出一份命令参考 快速启动工作流的三栏面板展示/agent list、/parallel add、/memory list、/workspace set、/mcp load等高频命令以及 CTF、Bug Bounty、并行侦察、MCP 集成四个示例工作流。run_cai_cli()主循环位于 src/cai/cli.py启动时会初始化命令补全器FuzzyCommandCompleter、按键绑定create_key_bindings、会话日志记录setup_session_logging与全局用量追踪GLOBAL_USAGE_TRACKER.start_session并显示 Banner 与快速指南。2.2 底部导航栏Banner 与提示符下方会持续显示一个信息栏toolbar包含你当前使用的模型、Agent、累计费用与会话信息。该信息栏由 src/cai/repl/ui/toolbar.py 的get_toolbar_with_refresh实现会随会话状态实时刷新是你在长任务中监控成本与上下文的关键位置。三、Step 2配置 API Key如果ALIAS_API_KEY未配置启动后会看到认证错误。CAI 提供三种配置方式按推荐优先级排列如下。3.1 方法一使用.env文件推荐在工作目录下创建.env文件ALIAS_API_KEYak_live_1234567890abcdef CAI_MODELalias1 CAI_AGENT_TYPEredteam_agent CAI_DEBUG1 CAI_PRICE_LIMIT10.0为什么推荐.env从源码看src/cai/cli.py 在所有其他导入之前执行load_dotenv(overrideTrue)也就是说.env中的变量会覆盖系统环境变量、优先于 shell 中已有的同名变量src/cai/agents/init.py 在导入 Agent 模块前同样执行了load_dotenv(overrideTrue)保证即使从 PyPI 安装后在工作目录运行配置也能生效。把密钥与常用参数集中放在.env里是最稳定、可复现的配置方式。3.2 方法二环境变量直接在终端导出后启动export ALIAS_API_KEYak_live_1234567890abcdef cai3.3 方法三运行时配置/configCAI 启动后使用/config命令在会话内随时修改配置CAI /config CAI_MODELalias1查看当前全部配置CAI /config/config命令的实现见 src/cai/repl/commands/config.py它维护了一张带编号的环境变量表ENV_VARS/config无参数时以 Rich 表格打印所有变量的当前值与默认值支持/config list、/config set 编号 值、/config get 编号三种子命令。运行时会话内的修改立即生效于当前进程。四、Step 3选择模型CAI 支持多种 AI 模型。综合性能与成本官方推荐alias1专为网络安全任务设计的模型CAI /model alias1查看所有可用模型CAI /model-show4.1 推荐模型参考模型提供方适用场景成本alias1Alias Robotics推荐— 均衡的性能与成本中gpt-4oOpenAI复杂推理与多模态高claude-3-5-sonnet-20241022Anthropic快速响应且质量良好高o1-miniOpenAI推理型任务中 提示随时可以切换模型不会丢失对话历史。4.2/model与/model-show的源码级差异在 src/cai/repl/commands/model.py 中两者职责清晰/model无参数时显示当前激活模型并以表格列出内置预定义模型含 Input/Output Cost 每百万 token 价格带参数时既可按模型名/model gpt-4o也可按表格编号/model 1切换。切换后写入CAI_MODEL环境变量在下一次 Agent 交互时生效主循环中的update_agent_models_recursively会递归更新当前 Agent 及其 handoff 子 Agent 的模型参见 cli.py。/model-show从 LiteLLM 的model_prices_and_context_window.json拉取全量模型清单展示支持的功能Vision、Function calling、Parallel functions、Audio 等支持supported仅显示支持函数调用的模型与关键词搜索两种过滤参数例如/model-show supported gpt。4.3 内置模型分类源码确认get_predefined_model_categories()model.py定义了当前仓库内置的模型分类可作为选型参考Aliasalias1网络安全任务最优、alias1-fast快速任务版Anthropic Claudeclaude-sonnet-4-20250514、claude-3-7-sonnet-20250219、claude-3-5-sonnet-20240620、claude-3-5-haiku-20240307OpenAIo3-mini、gpt-4oDeepSeekdeepseek-v3、deepseek-r1Ollama Cloudollama_cloud/gpt-oss:120b、ollama_cloud/llama3.3:70b、ollama_cloud/qwen2.5:72b、ollama_cloud/deepseek-v3:671b等免 GPU 云端本地模型。此外load_all_available_models()会动态合并 LiteLLM 在线模型清单与本地 OllamaOLLAMA_API_BASE模型因此/model输出随你的网络与本地环境变化。五、Step 4选择 AgentCAI 为不同安全任务提供了高度专业化的 Agent选择合适的 Agent 是任务成败的关键。5.1 方式一列出全部 AgentCAI /agent list该命令会打印所有 Agent 的序号、名称、Key、所属模块与描述若有并行模式parallel pattern配置还会额外打印并行模式表。实现见 src/cai/repl/commands/agent.py。5.2 方式二让选择 Agent 替你决策不确定该用哪个 Agent 时先启动selection_agent直接描述任务CAI /agent selection_agent CAI I need to test a web application for SQL injectionAgent 会根据任务描述推荐最合适的 Agent。5.3 方式三直接指定明确目标时直接切换CAI /agent redteam_agent5.4 常用 Agent 与适用场景Agent用途适用时机redteam_agent攻防安全测试渗透测试默认选择bug_bounter_agentBug Bounty 狩猎在 Web 应用中寻找高价值漏洞blueteam_agent防御性安全分析安全态势评估与加固one_tool_agent单工具执行使用特定工具快速扫描dfir_agent数字取证与应急响应日志分析与取证调查reverse_engineering_agent二进制分析恶意软件分析、固件逆向network_security_analyzer_agent网络安全评估网络扫描与流量分析wifi_security_agentWiFi 安全测试无线渗透测试selection_agentAgent 推荐不确定该用哪个 Agent 时 新手建议先使用selection_agent它会引导你找到正确的 Agent。5.5 Agent 的底层注册与动态实例化机制/agent命令支持别名/a并提供list、select、info、multi、current五个子命令agent.py。其中info会展示 Agent 的完整画像工具数量、Handoffs、输入/输出 Guardrails、Output Type、Hooks、并行工具调用能力与完整指令Instructions——这是评估一个 Agent 能力边界最直接的入口。Agent 实例并非写死而是通过动态工厂体系生成src/cai/agents/factory.py 的discover_agent_factories()会扫描cai/agents包含patterns子目录下所有模块凡是模块内以Agent实例导出的属性都会被注册为工厂函数get_agent_by_name()src/cai/agents/init.py调用工厂按显式覆盖 → Agent 专属环境变量CAI_AGENT_MODEL→ 全局CAI_MODEL的优先级选择模型并创建全新的 Agent 实例clone新模型同时自动把 MCP 配置的工具注入到该 Agent。这意味着每次切换 Agent 都会得到独立的模型实例与对话状态并行模式下各实例以P1、P2… 编号隔离。六、Step 5开始第一次交互配置就绪后直接在CAI提示符输入任务描述并回车即可。6.1 示例一基础网络侦察CAI Scan 192.168.1.1 for open ports and servicesAgent 会解析你的请求选择并执行合适的工具如 nmap实时展示工具输出给出分析与建议。6.2 示例二Web 应用测试CAI /agent bug_bounter_agent CAI Test https://example.com for common web vulnerabilitiesAgent 会执行信息收集reconnaissance按 OWASP Top 10 进行漏洞测试执行安全工具输出详细发现。6.3 示例三CTF 挑战# 配置 CTF 环境 CAI /config CTF_NAMEhackableii CAI /config CTF_CHALLENGEweb_challenge # 开始挑战 CAI Analyze this CTF challenge and find the flag6.4 理解 Agent 的输出任务执行过程中你会依次看到工具执行显示正在启动哪些工具的消息工具输出执行命令的实时结果Agent 推理当CAI_DEBUG1时展示 Agent 的思考过程最终分析总结、发现与建议成本追踪底部导航栏实时更新的费用。从实现角度看主循环通过start_idle_timer()/start_active_timer()精确计量用户思考时间与 LLM 活跃时间退出时会在Session Summary面板中汇总会话时长、活跃占比、总成本与日志路径并依据CAI_TELEMETRY默认开启上传匿名指标参见 cli.py。七、Step 6核心命令速查7.1 获取帮助# 总帮助快速指南完整环境变量表见下文 CAI /help # 特定命令帮助 CAI /help agent # 单个环境变量的长帮助 CAI /help var CAI_MODEL # 快速参考指南 CAI /quickstart/help命令src/cai/repl/commands/help.py支持超过 20 个分类子主题agent、parallel、run、memory、history、compact、flush、load、merge、config、env、workspace、virtualization、mcp、platform、shell、model、graph、aliases、kill、commands、quick、quickstart并可用/help aliases查看全部命令别名。7.2 Agent 管理# 列出所有 Agent CAI /agent list # 切换到指定 Agent CAI /agent redteam_agent # 查看当前 Agent 信息 CAI /agent info7.3 模型管理# 查看当前模型 CAI /model # 切换模型 CAI /model gpt-4o # 列出所有可用模型 CAI /model-show7.4 会话管理# 保存当前对话 CAI /save pentest_session.json # 保存为 Markdown 报告 CAI /save findings_report.md # 加载之前的对话 CAI /load pentest_session.json7.5 历史与成本# 查看对话历史 CAI /history # 查看最近 20 条消息 CAI /history 20 # 查看成本与 token 用量 CAI /cost/cost命令src/cai/repl/commands/cost.py不只是显示当前会话费用它还提供summary会话 全局双栏面板、models按模型的成本/请求数/token 明细与柱状图、daily近 30 天每日用量与周汇总、sessions最近会话记录、reset备份后重置统计五个子命令数据由GLOBAL_USAGE_TRACKER持久化在~/.cai/usage.json。7.6 清屏与退出# 清空终端输出保留历史 CAI CtrlL # 清空对话历史 CAI /flush # 退出 CAI CAI /exit # 或按 CtrlD八、Step 7直接执行 Shell 命令CAI 允许直接在会话内执行系统命令非常适合快速验证扫描结果、操作文件或调用交互式工具。8.1 使用/shell命令CAI /shell nmap -sV 192.168.1.18.2 使用$快捷方式CAI $ whoami CAI $ ls -la CAI $ nmap -sV localhost8.3 交互式工具对于nc、netcat、telnet、ssh、python -m http.server这类需要持续运行的命令Agent 会识别并切换为异步模式执行CtrlC可随时返回 REPLCAI Run a comprehensive port scan on 192.168.1.0/24 # Agent 会以合适的参数执行 nmap源码细节/shell实现于 src/cai/repl/commands/shell.py别名/s与$。它支持同步命令实时流式输出subprocess.Popen逐行打印、异步命令检测is_async判断、CtrlC优雅中断临时 SIGINT handler 只中断子进程、以及Docker 容器内执行——当设置了CAI_ACTIVE_CONTAINER时命令会通过docker exec在容器工作区执行失败时自动回退到宿主机。九、Step 8配置管理9.1 查看当前配置CAI /config这会打印一张包含所有环境变量、当前值与默认值的表格。9.2 运行时修改配置# 按编号设置编号来自 /config 输出 CAI /config set 18 5.0 # 或直接按变量名设置 CAI /config CAI_PRICE_LIMIT5.0 CAI /config CAI_MAX_TURNS509.3 重要配置变量含源码默认值下表汇总了 src/cai/repl/commands/config.py 中定义的核心变量及其真实默认值原文档示例值保留在示例列变量说明源码默认值示例CAI_MODEL默认使用的模型alias1alias1CAI_AGENT_TYPE默认 Agentone_tool_agentcli 入口默认redteam_agentCAI_DEBUG调试级别0 仅工具输出 / 1 详细调试 / 2 CLI 调试11CAI_PRICE_LIMIT会话最高费用美元110.0CAI_MAX_TURNS最大对话轮数inf不限50CAI_MAX_INTERACTIONS最大工具交互次数—100CAI_TRACING启用 OpenTelemetry 追踪truetrueCAI_GUARDRAILS启用安全 Guardrails防提示注入truetrue除上述外/config的变量表还覆盖 CTF 相关CTF_NAME、CTF_CHALLENGE、CTF_SUBNET默认192.168.3.0/24、CTF_IP默认192.168.3.100、CTF_INSIDE、记忆系统CAI_MEMORYepisodic/semantic/all、CAI_MEMORY_ONLINE、CAI_MEMORY_OFFLINE、CAI_MEMORY_ONLINE_INTERVAL默认5、支持 AgentCAI_SUPPORT_MODEL默认o3-mini、CAI_SUPPORT_INTERVAL默认5、并行执行CAI_PARALLEL默认1、工作区CAI_WORKSPACE、CAI_WORKSPACE_DIR以及报告模式CAI_REPORTctf/nis2/pentesting等。运行时还会为每个可用 Agent 动态追加CAI_AGENT_MODEL覆盖变量并行模式下追加CAI_AGENT_N_MODEL实例级覆盖。完整选项请参阅配置指南。十、Step 9常见工作流10.1 工作流一快速安全扫描# 以指定 Agent 启动 CAI_AGENT_TYPEredteam_agent cai # 执行扫描 CAI Perform a quick security assessment of 192.168.1.100 # 保存结果 CAI /save quick_scan_results.md10.2 工作流二Bug Bounty 侦察# 切换到 Bug Bounty Agent CAI /agent bug_bounter_agent # 信息收集 CAI Perform full reconnaissance on target.com # 测试特定漏洞 CAI Test the login form for SQL injection # 生成报告 CAI Generate a detailed bug bounty report # 保存会话 CAI /save bugbounty_target_session.json10.3 工作流三CTF 挑战# 配置 CTF 环境 export CTF_NAMEhackableii export CTF_CHALLENGEweb_app export CAI_AGENT_TYPEredteam_agent # 启动并解题 cai CAI Analyze this CTF challenge and find the flag10.4 工作流四网络分析CAI /agent network_security_analyzer_agent # 分析网络 CAI Scan the network 192.168.1.0/24 for security issues # 分析抓包流量 CAI Analyze this PCAP file for suspicious activity # 查看发现 CAI /history十一、Step 10键盘快捷键快捷键动作Tab自动补全命令与参数↑/↓在命令历史中导航CtrlC中断当前执行CtrlL清屏CtrlZ挂起进程用fg恢复CtrlU清除当前输入行CtrlA光标移动到行首CtrlE光标移动到行尾按键绑定实现在 src/cai/repl/ui/keybindings.py命令模糊补全由FuzzyCommandCompletersrc/cai/repl/commands/completer.py提供输入/Tab即可浏览所有可用命令。十二、首次使用常见问题排查12.1 API Key 无效解决方案# 检查 API Key 是否正确设置 CAI /env | grep ALIAS_API_KEY # 若未设置追加到 .env 文件 echo ALIAS_API_KEYyour_key_here .env12.2 Agent 无响应解决方案# 取消当前操作 CtrlC # 检查 Agent 是否加载 CAI /agent # 切换到其他 Agent CAI /agent redteam_agent12.3 命令未找到解决方案# 获取可用命令帮助 CAI /help # 使用 Tab 补全查看可用命令 CAI /Tab # 查看命令语法 CAI /help command_name12.4 达到费用上限解决方案# 查看当前费用 CAI /cost # 提高上限 CAI /config CAI_PRICE_LIMIT20.0 # 或在启动前设置 CAI_PRICE_LIMIT20.0 cai12.5 超过最大轮数解决方案# 提高轮数上限 CAI /config CAI_MAX_TURNS100 # 或清空历史重新开始 CAI /flush关于达到最大轮数的机制说明主循环会在每轮检查CAI_MAX_TURNS一旦turn_count max_turns便锁定普通输入仅允许/开头的 CLI 命令继续执行直到你用/config CAI_MAX_TURNS新值提高限制参见 cli.py 与 cli.py。十三、下一步进阶恭喜你已经掌握了 CAI CLI 的基础操作。接下来建议按此路线深入13.1 学习更多命令 命令参考 — 完整命令文档 高级用法 — 自动化、脚本与高级特性13.2 探索高级特性队列系统批量处理多个提示词/run并行执行同时运行多个 Agent/parallel由CAI_PARALLEL控制实例数记忆管理跨会话的持久上下文/memory支持 episodic / semantic 记忆MCP 集成连接外部工具与服务/mcp支持sse与stdio两类服务器会话恢复/save与/load配合实现会话持久化与交接。13.3 专项工作流CTF 挑战学习 CTF 专属工作流CTF_NAME/CTF_CHALLENGE/CTF_INSIDE环境变量驱动Bug Bounty掌握 Bug Bounty 狩猎技巧自动化使用cai --prompt ...脚本化安全评估CI/CD 集成将 CAI 接入流水线。13.4 获取帮助❓ 常见问题 — 常见问题解答完整配置项请见配置指南十四、快速参考卡最常用命令/agent list # 列出所有 Agent /agent name # 切换 Agent /model name # 切换模型 /config # 查看配置 /help # 获取帮助 /save file # 保存会话 /load file # 加载会话 /cost # 显示费用 /history # 查看历史 /shell cmd # 执行 shell 命令 $ cmd # shell 快捷方式 /exit # 退出 CAI必备工作流# 快速扫描 cai --prompt scan target.com for vulnerabilities # CTF 模式 CTF_NAMEchallenge cai # Bug Bounty CAI_AGENT_TYPEbug_bounter_agent cai # 带初始配置启动 CAI_MODELalias1 CAI_PRICE_LIMIT10 cai从源码理解 CLI 启动参数cai --prompt ...与所有环境变量CTF_NAME、CAI_MODEL、CAI_AGENT_TYPE、CAI_PARALLEL、CAI_TRACING、CAI_GUARDRAILS、CAI_MEMORY、CAI_PRICE_LIMIT等的完整语义与使用示例都可以在 src/cai/cli.py 的模块文档字符串中找到——它是 CLI 行为的权威说明书例如带在线记忆运行 CTFCTF_NAMEhackableII CAI_MEMORYepisodic CAI_MODELalias1 \ CAI_MEMORY_ONLINETrue CTF_INSIDEFalse CTF_HINTSFalse \ CAI_PRICE_LIMIT5 cai本文基于仓库 docs/cli/getting_started.md 编写适用于 CAI CLI v0.6。【免费下载链接】caiCybersecurity AI (CAI), the framework for AI Security项目地址: https://gitcode.com/GitHub_Trending/cai3/cai创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表