Caldera 的一个由 AI 驱动的插件,用于编排长期运行的 LLM 工作流,以自动创建对手模拟能力和计划操作。可选地使用来自 STIX JSON 文件的网络威胁情报(CTI)增强工作流。所有执行过程都通过 MLflow 进行跟踪,以便全面观察 LLM 推理和工具使用情况。
在 Caldera 根目录下:
python3 server.py --insecure
MCP 插件会在 Caldera 初始化时自动启动 MLflow,端口为 5000。
导航到 Caldera Web 界面,并从侧边栏选择 MCP 插件。
在全局模型配置面板中:
LLM 能力工厂:创建特定的能力
LLM 操作规划器:计划并执行操作
前端(Vue.js)
mcp.vue:带有导航的主要登陆页面local_mcp_ability_factory.vue:能力创建界面public_mcp_ability_factory.vue:公共能力界面mcp_history.vue:历史运行浏览器mcp_extension_guide.vue:开发者扩展指南后端(Python)
mcp_api.py:aiohttp API 路由mcp_svc.py:服务编排层mcp_factory_client.py:能力工厂 DSPy 客户端mcp_planner_client.py:操作规划器 DSPy 客户端mcp_server.py:暴露 Caldera API 的 MCP 工具服务器factory.py:命令生成 DSPy 模块rag.py:STIX CTI 检索服务集成
hook.py:插件初始化和 MLflow 启动编辑 conf/default.yml 来设置默认 LLM 配置:
llm:
model: gpt-4o
api_key: YOUR_API_KEY
offline: true
use_mock: false
factory:
model: gpt-4o
api_key: YOUR_API_KEY
temperature: 0.4
注意:前端模型配置会覆盖这些默认设置。
当使用 CTI 增强时:
openai/text-embedding-3-smalldata/ 目录plugins/mcp/data/LLM 将根据您的提示接收相关的 CTI 上下文,包括:
用户提示 → RAG 搜索(语义)→ 检索 Top-K CTI 对象
↓
Top 3 对象的详细上下文
↓
格式化的 CTI 上下文字符串
↓
LLM 接收任务 + CTI 上下文
↓
创建 CTI 信息的能力/操作
打开浏览器访问:http://localhost:5000
导航至 实验 → 追踪 查看:
thought_0,thought_1 等)tool_name_N,tool_args_N)状态标签:
status:运行中、完成、失败stage:当前执行阶段reasoning:LLM 的最终推理总结process_result:创建内容的总结RAG 标签(启用 CTI 时):
rag_retrieval_step_N:RAG 检索过程rag_retrieved_object_N:检索到的 CTI 对象名称cti_context_preview:发送给 LLM 的 CTI 的前 1000 字符cti_context_length:总 CTI 上下文大小LLM 轨迹:
thought_N:每一步的 LLM 推理observation_N:工具执行结果tool_name_N:被调用的工具tool_args_N:传递给工具的参数参阅 UI 中的 扩展与定制 指南,了解详细说明:
示例用例:
# 测试工厂客户端(需要运行 Caldera)
cd app
python mcp_factory_client.py
# 测试规划器客户端
python mcp_planner_client.py
# 测试 MCP 服务器工具
python mcp_server.py
plugins/mcp/
├── app/ # Python 后端
│ ├── mcp_api.py # API 路由
│ ├── mcp_svc.py # 服务层
│ ├── mcp_factory_client.py
│ ├── mcp_planner_client.py
│ ├── mcp_server.py # MCP 工具服务器
│ ├── factory.py # 命令生成
│ └── rag.py # CTI 检索
├── gui/views/ # Vue 前端
│ ├── mcp.vue
│ ├── local_mcp_ability_factory.vue
│ ├── public_mcp_ability_factory.vue
│ ├── mcp_history.vue
│ └── mcp_extension_guide.vue
├── conf/default.yml # 默认配置
├── data/ # STIX JSON 文件
├── hook.py # 插件初始化
└── README.md
错误:"需要提供 API 密钥但未提供"
解决方案:在全局模型配置面板中输入您的 API 密钥。
错误:无法访问 http://localhost:5000
解决方案:检查 Caldera 日志中的 MLflow 启动消息。插件会在初始化时自动终止 5000 端口上的进程并启动 MLflow。
错误:"RAG 服务未初始化" 或嵌入错误
解决方案:
错误:工具无法初始化或执行
解决方案:
http://localhost:8888/api/v2/ 访问检查 MLflow UI 以获取:
error 参数中traceback 参数中对于 Bug 和功能请求:
[MCP] 前缀的 Caldera 日志Caldera 项目的一部分。详见主 Caldera 存储库的许可信息。