ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

CAI REPL 命令大全:Cybersecurity AI 交互式终端从入门到自定义扩展

CAI REPL 命令大全:Cybersecurity AI 交互式终端从入门到自定义扩展 CAI REPL 命令大全Cybersecurity AI 交互式终端从入门到自定义扩展【免费下载链接】caiCybersecurity AI (CAI), the framework for AI Security项目地址: https://gitcode.com/GitHub_Trending/cai3/cai本篇技术指南以 Cybersecurity AICAI框架的 REPLRead-Eval-Print Loop命令体系为核心系统梳理/agent、/parallel、/model、/mcp、/memory等全部内置命令的用途、子命令与真实使用场景并深入到 命令基类 与各命令模块的源码实现帮助你在 AI 安全测试CTF、红蓝对抗、Web 渗透工作流中高效操控多个安全 Agent同时掌握如何注册自己的自定义命令来扩展 REPL。一、REPL 命令系统概览CAIContext-Aware Interface的 REPL 是用户与安全 Agent 交互的主入口所有命令都以/开头分为核心命令、数据管理命令、模型管理命令、高级特性、集成命令、系统管理命令与工具命令七大类。启动方式非常简单在终端输入cai即可进入 REPL首次启动可能需要等待最多 30 秒以完成初始化。命令系统的底层是一个注册表Registry模式定义在 base.pyCOMMANDS以命令名为键的全局字典COMMAND_ALIASES以别名为键、映射到标准命令名的字典register_command(command)将命令实例及其所有别名写入注册表get_command(name)支持按名称或别名解析命令handle_command(command, args)统一分发入口找到命令后调用其handle(args)。所有命令模块都在 commands/init.py 中被批量导入——导入动作本身就会触发各模块底部的register_command(...)调用完成自动注册因此新增命令时只需被导入即可生效。命令基类 Command每个命令都继承自 Command 基类其核心设计是子命令subcommand机制方法作用add_subcommand(name, description, handler)注册一个子命令及其处理函数handle(args)分发入口无参数时调用handle_no_args()匹配到子命令时调用对应 handler否则调用handle_unknown_subcommand()get_subcommands()/get_subcommand_description()供帮助系统与补全系统枚举子命令二、核心命令Agent 管理与会话控制/agent — Agent 管理别名/a/agent用于列出、切换、查看 Agent并支持加载红蓝对抗等并行/群体模式。源码见 agent.py其子命令包括子命令说明/agent list以 Rich 表格列出全部可用 Agent编号、名称、Key、模块、描述并单独列出并行模式Parallel Pattern表格/agent select key\|编号按 Agent key如red_teamer或表格编号切换 Agent支持直接加载 parallel/swarm 模式/agent info key\|编号以 Markdown 表格展示 Agent 的完整属性函数数、并行工具调用、Handoffs、Tools、输入/输出 Guardrails、输出类型、Hooks 与 Instructions/agent current展示当前配置单 Agent 模式下显示活动 Agent、Key、模型、工具数与 Handoffs并行模式下显示模式、Agent 数量与每个并行实例/agent multi启用多 Agent 模式源码层面有几个值得注意的细节模型显示逻辑_get_model_display()会优先读取CAI_AGENT_NAME_MODEL环境变量与CTF_MODEL若与默认模型相同则留空仅在 info 视图中显示为 Default CTF ModelcodeAgent 始终显示真实模型。切换时上下文迁移handle_select()在切换 Agent 时会调用AGENT_MANAGER与PARALLEL_ISOLATION完成历史消息的迁移与并行模式的开关确保会话上下文不丢失参见 agent.py。并行模式自动同步切换到 parallel 模式时会通过os.environ[CAI_PARALLEL]与CAI_PARALLEL_AGENTS同步环境变量供 CLI 层识别。/context/ctx与 /cost — 上下文与成本监控/context或/ctx查看当前会话的上下文用量与 token 统计包括总量已用/上限 百分比、带 CAI Logo 的网格化可视占用图以及按类别系统提示词、工具定义、Memory/RAG、用户提示、助手回复、工具调用、工具结果拆分的 token 明细还提供剩余空间可视化和最近一轮输入 token 汇总。该功能为CAI PRO 专属能力。/cost查看当前会话费用、按模型的成本拆分、随时间的使用量跟踪与统计报告由 cost.py 实现底层与COST_TRACKER见 util.py联动。/exit、/help、/history — 会话生命周期与历史/exit干净地关闭 REPL保存当前会话数据并清理后台进程。/help或/?列出可用命令、命令用法、别名并可针对具体命令查看帮助。/history或/his查看带 Agent 过滤的会话历史。源码见 history.py无参数时展示所有 Agent 的消息统计控制面板并支持以下子命令/history all查看所有 Agent 的历史/history agent 名称\|ID查看指定 Agent支持P1、P2这类并行 ID的历史/history search 关键词跨全部 Agent 搜索消息/history index 索引按索引查看消息可选按角色过滤消息树结构与导出功能由该模块一并提供。三、数据管理命令记忆、压缩与清理/compact — 会话压缩/compact压缩当前会话以减小上下文体积支持在压缩时更换模型、修改提示词设置从而在显著降低 token 消耗的同时保持对话流程的连贯性与CAI_MAX_TURNS、CAI_STATE等环境变量配合使用。/env 与 /config — 环境变量查看与配置/env显示全部环境变量支持按模式过滤突出 CAI 专属设置。/config显示并配置环境变量重点支持CTF 变量配置。源码见 config.py内置的环境变量表节选如下变量说明默认值CTF_NAME要运行的 CTF 挑战名称无CTF_CHALLENGECTF 内具体挑战名无CTF_SUBNETCTF 容器的网络子网192.168.3.0/24CTF_IPCTF 容器 IP192.168.3.100CTF_INSIDE是否从容器内部攻克 CTFtrueCAI_MODELAgent 使用的模型alias1CAI_DEBUG调试输出级别0仅工具输出1详细调试2CLI 调试1CAI_MAX_TURNSAgent 交互的最大轮数infCAI_AGENT_TYPE使用的 Agent 类型boot2root、one_tool 等one_toolCAI_MEMORY记忆模式episodic、semantic、allfalseCAI_PRICE_LIMIT会话价格上限美元1CAI_REPORT报告模式ctf、nis2、pentestingctfCAI_SUPPORT_MODEL支持 Agent 使用的模型o3-mini/memory、/load 与 /flush — 持久化记忆与数据导入/memory管理.cai/memory目录下的持久化记忆可存储会话上下文、把记忆应用到当前上下文、管理记忆条目实现跨会话持久存储与CAI_MEMORY、CAI_MEMORY_ONLINE、CAI_MEMORY_OFFLINE、CAI_MEMORY_ONLINE_INTERVAL默认 5 轮等记忆开关配合。/load将 JSONL 数据加载进当前会话上下文可导入会话历史、外部数据并支持与并行配置集成。/flush清空当前会话历史、重置 Agent 上下文、清理记忆开启全新对话。四、模型管理命令/model — 切换模型别名/mod/model查看与切换当前 LLM 模型。源码见 model.py无参数时显示当前活动模型读取CAI_MODEL环境变量并列出全部可用模型表格编号、模型名、Provider、分类、输入/输出价格、描述。/model 名称按名称选择如/model claude-3-7-sonnet-20250219/model 编号按表格编号选择。模型数据来自三个来源的合并内置预定义模型Alias、Anthropic Claude、OpenAI、DeepSeek、Ollama Cloud 五类、LiteLLM 模型仓库在线拉取model_prices_and_context_window.json超时 5 秒、本地 Ollama 模型通过/api/tags实时探测。Ollama 模型会显示本地模型体积MB/GB价格为 Free。切换结果写入os.environ[CAI_MODEL]在下一次 Agent 交互时生效。/model-show — 展示全部可用模型别名/mod-show/model-show从 LiteLLM 仓库拉取并展示完整模型清单支持筛选用法说明/model-show展示全部模型/model-show supported仅展示支持函数调用Function Calling的模型/model-show 搜索词按关键词过滤模型名/model-show supported 搜索词组合筛选表格列包含编号、模型名、Provider、最大 Token、输入/输出价格$/M与能力标签Vision、Function calling、Parallel functions、Audio、Embeddings、Image generation 等。五、高级特性并行执行与图可视化/parallel — 并行 Agent 工作流别名/par、/p/parallel是 CAI 进行多 Agent 协同的核心命令允许以隔离上下文并行运行多个安全 Agent如红队与蓝队同时工作。源码见 parallel.py子命令一览子命令说明/parallel add agent [--model M] [--prompt P] [--unified]添加并行 Agent≥2 个时自动启用并行模式/parallel list表格展示已配置 Agent编号、ID、Agent、显示名、模型、上下文隔离状态、自定义提示词/parallel clear清空全部并行配置并关闭并行模式/parallel remove 索引\|ID按索引或P1/P2等 ID 移除 Agent移除后自动重排 ID/parallel override-models将所有 Agent 的模型覆盖为全局模型跟随/model设置/parallel merge [agents...]合并多个 Agent 的消息历史支持--strategychronological/by-agent/interleaved、--target与--remove-sources/parallel prompt ID 提示词为指定 Agent 设置自定义提示词关键实现机制parallel.pyPARALLEL_CONFIGS为全局配置列表每个ParallelConfig含agent_name、model、prompt、unified_context为 true 时与其他 unified Agent 共享消息历史与自动分配的idP1、P2…PARALLEL_AGENT_INSTANCES保存强引用防止并行 Agent 实例被垃圾回收导致历史丢失添加第二个 Agent 时通过_sync_to_env()写入CAI_PARALLEL并行数量与CAI_PARALLEL_AGENTS逗号分隔的 Agent 名并调用PARALLEL_ISOLATION.transfer_to_parallel()为每个并行实例创建隔离历史并行模式下输入提示词时会弹出 Agent 选择菜单可按 Agent 单独发提示词或向全部 Agent 广播执行完成后用/merge把结果合回主上下文并退出并行模式或用/parallel clear不合并直接退出。agents.yml — 并行配置的声明式写法除了命令行交互并行配置还支持通过 YAML 文件自动加载。ParallelCommand初始化时会自动探测项目根目录的agents.yml或 agents.yml.example位于 patterns/configs/。示例parallel_agents: - name: one_tool_agent model: claude-sonnet-4-20250514 prompt: Focus on finding vulnerabilities and security issues unified_context: false # 每个 Agent 拥有独立消息历史默认 - name: blueteam_agent model: claude-sonnet-4-20250514 prompt: Focus on defensive security and mitigation strategies unified_context: false - name: web_pentester_agent model: alias1 prompt: Agent that specializes in web application penetration testing. unified_context: false当配置了2 个及以上 Agent 时并行模式自动启用。/parallel load 文件与/parallel save 文件还提供了命令行的配置导入/导出能力。/queue 与 /merge — 顺序队列与历史合并/queue管理与并行模式相互独立的顺序提示词队列——添加提示词、列出队列、顺序执行、安全清空。/merge将并行 Agent 的上下文合并进主上下文并自动退出并行模式合并时支持按--strategy选择chronological按时间线智能交错、by-agent按 Agent 分组或interleaved交错策略并对用户消息去重参见 parallel.py 的_merge_chronological实现。/graph — Agent 交互图/graph可视化 Agent 交互的有向图展示用户与 Agent 的交互关系、工具调用节点与对话流向其可视化能力与visualize_agent_graph()定义于 util.py相关联切换 Agent 时也会自动渲染交互图。六、集成命令MCP 与平台扩展/mcp — MCP 服务器管理/mcp管理 Model Context Protocol 服务器及其工具是 CAI 与外部安全工具如 Burp Suite 的 MCP 扩展集成的桥梁。源码见 mcp.py 的头部用法注释用法说明/mcp load url 名称 [--header K: V]加载 SSE 类型 MCP 服务器支持自定义认证头/mcp load stdio 名称 命令 [参数]加载 STDIO 类型 MCP 服务器如python mcp_server.py/mcp list列出全部活动 MCP 连接/mcp add 服务器 Agent名\|编号把 MCP 工具挂载到指定 Agent/mcp tools 服务器列出某服务器的工具/mcp status检查服务器连接状态可重连/mcp remove 服务器移除服务器连接实现要点工具通过全局注册表_GLOBAL_MCP_SERVERS管理每次工具调用都会建立新连接以保证可靠性STDIO 传输保持持久连接转换后的工具直接加入agent.tools实现与 Agent 的无缝集成。/platform — 平台特性/platform用于访问平台扩展、平台专属集成并检查平台可用性。七、系统管理命令进程、Shell、虚拟化与工作区命令别名说明/kill—终止后台进程或卡住的会话清理进程/shell—在 REPL 内执行 Shell 命令支持访问工作区目录、容器工作区与进程信号处理/virtualization/virt管理基于 Docker 的虚拟化环境创建容器、管理容器生命周期、工作区虚拟化与环境隔离/workspace/ws管理 Docker 容器内或本地的工作区目录导航、挂载外部目录、容器工作区管理、文件系统操作/quickstart—为新用户展示安装与配置指引首次启动时自动运行八、工具命令智能补全/help之外REPL 内置FuzzyCommandCompletercompleter.py提供带模糊匹配的命令补全命令自动补全拼写错误的模糊匹配fuzzy matching子命令与参数补全建议命令遮蔽检测command shadowing detection避免自定义命令与内置命令冲突。九、端到端实战示例基础工作流# 启动 CAI REPL cai # 查看可用 Agent /agent list # 切换到指定 Agent /agent switch red_teamer # 查看会话历史 /history # 更换模型 /model gpt-4o # 清空会话 /flush # 退出 /exit并行红蓝对抗# 配置并行执行 /parallel add red_teamer /parallel add network_traffic_analyzer # 按 Agent 单独发提示词或向全部广播 /parallel prompt all Scan 192.168.1.0/24 # 并行执行 /parallel run # 将全部并行上下文合并进主上下文并退出并行模式 /merge # 可选不合并上下文直接退出并行模式 /parallel clear外部工具集成与虚拟化# 加载 SSE 类型 MCP 服务器如 Burp 的 MCP 扩展 /mcp load http://localhost:9876/sse burp # 把 MCP 工具挂载到指定 Agent /mcp add-to-agent web_pentester_agent burp # 创建 Docker 虚拟化环境 /virtualization create ubuntu:latest # 切换工作区 /workspace /path/to/project十、扩展命令系统注册自定义命令命令系统的开放性是它最实用的设计之一。新增命令只需 5 步在src/cai/repl/commands/下新建 Python 文件从base.py导入Command与register_command继承Command实现命令逻辑调用register_command()完成注册在 commands/init.py 的导入列表中加入该模块。官方给出的最小可运行示例from cai.repl.commands.base import Command, register_command class MyCommand(Command): def __init__(self): super().__init__( name/mycommand, descriptionMy custom command, aliases[/my, /mc] ) def execute(self, args): # Command implementation pass register_command(MyCommand())更完整的写法是重写handle()并结合add_subcommand()组织子命令与/parallel、/history的实现方式一致。注册后/help、补全系统与别名解析都会自动识别新命令。十一、命令模块文件结构命令系统全部位于 src/cai/repl/commands/ 目录src/cai/repl/commands/ ├── __init__.py # 模块导出与导入自动注册 ├── base.py # 命令基类与注册表 ├── agent.py # Agent 管理 ├── compact.py # 会话压缩 ├── completer.py # 命令补全 ├── config.py # 配置管理CTF/CAI 环境变量 ├── cost.py # 成本跟踪 ├── env.py # 环境变量 ├── exit.py # REPL 退出 ├── flush.py # 历史清理 ├── graph.py # 图可视化 ├── help.py # 帮助系统 ├── history.py # 历史管理 ├── kill.py # 进程管理 ├── load.py # 数据加载 ├── mcp.py # MCP 集成 ├── memory.py # 记忆管理 ├── merge.py # 历史合并 ├── model.py # 模型管理 ├── parallel.py # 并行执行 ├── platform.py # 平台特性 ├── quickstart.py # 新手引导 ├── run.py # 并行执行触发器 ├── shell.py # Shell 访问 ├── virtualization.py # 容器管理 └── workspace.py # 工作区管理十二、结合环境的完整使用建议首次使用/quickstart会自动运行展示密钥配置如OPENAI_API_KEY、ANTHROPIC_API_KEY与模型设置指引也可参考 安装指南 完成多平台部署。CTF 场景通过/config设置CTF_NAME、CTF_SUBNET、CTF_IP等变量配合CAI_AGENT_TYPEboot2root、one_tool 等与CAI_REPORTctf 报告模式快速进入挑战。成本控制/cost实时监控费用CAI_PRICE_LIMIT可设置会话价格上限默认 1 美元防止失控。并行协同红蓝对抗场景推荐用/parallel或agents.yml配置多 Agent 隔离上下文并行分析再用/merge汇总结论/graph可直观复盘 Agent 交互链路。【免费下载链接】caiCybersecurity AI (CAI), the framework for AI Security项目地址: https://gitcode.com/GitHub_Trending/cai3/cai创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表