本地代理服务,用于记录 OpenClaw 与 MiniMax LLM 之间的完整交互数据,并提供 Web 分析界面。
- 监听本地端口,将请求转发至 MiniMax API
- 完整记录请求/响应,支持流式和非流式
- 自动提取工具调用链、分析 prompt 结构
- 内置 Web 分析界面 - 可视化研究 OpenClaw 的协议机制和上下文管理策略
cd /home/node/.openclaw/llmproxy
source .venv/bin/activate
python minimax.py服务启动后访问:
- Web 界面: http://127.0.0.1:8081/
- API 代理: http://127.0.0.1:8081/v1/messages
- 按日期分组的请求列表
- 筛选搜索功能
- 标签显示:tools / thinking / stream
- User Messages: 会话启动和用户输入,tool_result 含错误高亮(红色)
- System Prompt: 可折叠,含全文搜索和关键词高亮(研究 prompt engineering)
- Thinking Chain: MiniMax 思维链,紫色边框 + 💭 图标,一键复制
- Tool Execution Chain: 工具调用链可视化,批量分组,JSON 语法高亮
- Model Response: 模型输出文本
- Assistant Responses: 历史助手消息
修改 minimax.py 顶部常量:
| 变量 | 默认值 | 说明 |
|---|---|---|
PORT |
8081 | 监听端口 |
TARGET_MODEL |
MiniMax-M2.5 | 强制模型 |
LOG_DIR |
./logs | 日志目录 |
logs/yyyy-mm-dd/req_xxxxxxxxx_xxxx/
├── prompt.json # 原始请求 body
├── llm_request.json # 发送给 LLM 的请求
├── analysis.json # Prompt 统计
├── tools.json # 工具调用链
├── response.json # LLM 响应(非流式)
├── stream.txt # 原始 SSE(流式)
├── full.txt # 拼接文本(流式)
└── deltas.json # 增量数据(流式)
| 文件 | 内容 |
|---|---|
| prompt.json | OpenClaw 发出的原始请求,包含完整历史消息 |
| llm_request.json | 转发前最终请求(可能修改了 model) |
| analysis.json | 统计:消息数、角色分布、工具调用、字符数 |
| tools.json | 结构化工具调用(tool_use + tool_result) |
| response.json | LLM 返回的完整 JSON |
| stream.txt | SSE 原始数据 |
| full.txt | 流式拼接后的完整文本 |
| deltas.json | text/thinking 增量 |
pip install -r requirements.txt或使用虚拟环境:
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt修改 openclaw.json 中 minimax-portal 的 baseUrl:
"minimax-portal": {
"baseUrl": "http://127.0.0.1:8081",
...
}然后重启 OpenClaw,所有请求会经过代理并以 ~/llmproxy/yyyy-mm-dd/req_xxxxxxxxxxxx_xxxx/xxxx.json 的形式记录。
| 接口 | 说明 |
|---|---|
GET /api/logs |
列出所有日志(按日期分组) |
GET /api/logs/{date}/{request_id} |
获取单个日志详情 |
GET / |
Web 分析界面(static/index.html) |
- 后端: FastAPI (Python)
- 前端: Vue 3 + Tailwind CSS(单文件 CDN 版本)
- 日志格式: 兼容 Anthropic/OpenClaw 消息格式