- EvalRun.triggered_by 全链路(manual/ai_assistant/cli)+ 迁移 b7d4e6f81c22 - 标准 agenteval-run SKILL.md 纳入版本管理,deploy 脚本同步 + API Key 注入 - 简单登录:AGENTEVAL_ADMIN_PASSWORD + HMAC 会话 token,require_auth 双凭据 - 对比报告限同场景(400)+ 空 results 误判修复 - /api/stats/dashboard 扩展聚合;/api/runs 返回场景/对象名 - 测试 218 → 232
77 lines
2.6 KiB
Markdown
77 lines
2.6 KiB
Markdown
# OpenClaw 插件 for AgentEvalTool
|
||
|
||
本目录提供 OpenClaw 调用 AgentEvalTool 的标准接入方式,使 OpenClaw(AI 助手)能够自闭环完成评测。
|
||
|
||
## 设计原则
|
||
|
||
- AgentEvalTool 负责:
|
||
- 评测对象管理
|
||
- 评测场景管理
|
||
- 评测执行与原始数据收集
|
||
- 评估分析与报告生成
|
||
- OpenClaw 负责:
|
||
- 评测策略编排(选择对象、场景、触发时机)
|
||
- 定时调度(OpenClaw 自身的 cron + skill 机制)
|
||
- 结果通知与后续动作
|
||
|
||
## 唯一标准接入方式:HTTP API
|
||
|
||
**所有 OpenClaw 触发的评测必须走 AgentEvalTool 的 HTTP API**(`POST /api/runs` 等),
|
||
并在启动评测时携带 `"triggered_by": "ai_assistant"`,以便平台区分手动触发与 AI 助手触发。
|
||
|
||
> ⚠️ 禁止在 OpenClaw 中通过 subprocess 调用 `agenteval` CLI。
|
||
> CLI 直接写入其运行环境下的本地 SQLite(路径硬编码),与 Web 后台的数据库不共享,
|
||
> 会导致评测记录"消失"——Web 页面永远查不到。CLI 仅用于开发者在 agenteval
|
||
> 服务同一环境下的手工调试。
|
||
|
||
### 方式一:agenteval-run 技能(推荐)
|
||
|
||
`skills/agenteval-run/SKILL.md` 是标准技能文件,指导 AI 助手用 `curl` 走 API 全流程
|
||
(列对象/场景 → 启动评测 → 轮询状态 → 取报告)。
|
||
|
||
部署脚本(`scripts/deploy-t480.sh`)会自动把它同步到 OpenClaw 工作区:
|
||
`data/openclaw/workspace/skills/agenteval-run/SKILL.md`。
|
||
|
||
### 方式二:Python Skill 封装
|
||
|
||
参考 `agenteval_skill.py`(httpx 调 API),在 OpenClaw 中注册技能时传入配置:
|
||
|
||
```json
|
||
{
|
||
"api_base_url": "http://agenteval:8000",
|
||
"api_key": "<可选,对应 AGENTEVAL_API_KEY>",
|
||
"target_id": "<target-id>",
|
||
"scenario_id": "<scenario-id>",
|
||
"report_format": "json"
|
||
}
|
||
```
|
||
|
||
## OpenClaw 定时评测示例
|
||
|
||
OpenClaw 的 cron 配置(具体格式以 OpenClaw 平台为准):
|
||
|
||
```yaml
|
||
skill: agenteval_skill
|
||
schedule: "0 9 * * *" # 每天早上 9 点执行
|
||
config:
|
||
api_base_url: "http://agenteval:8000"
|
||
target_id: "<target-id>"
|
||
scenario_id: "<scenario-id>"
|
||
report_format: "json"
|
||
```
|
||
|
||
## API 速查
|
||
|
||
| 操作 | 请求 |
|
||
|---|---|
|
||
| 启动评测 | `POST /api/runs` body: `{"target_id", "scenario_id", "triggered_by": "ai_assistant"}` |
|
||
| 查询状态 | `GET /api/runs/{run_id}`(轮询至 completed/failed) |
|
||
| 获取报告 | `GET /api/reports/{run_id}` |
|
||
|
||
如果平台设置了 `AGENTEVAL_API_KEY`,所有请求需带 `X-API-Key` 头。
|
||
|
||
## 扩展建议
|
||
|
||
- 可以在 OpenClaw Skill 中根据报告结果触发告警、创建工单或通知相关人员。
|
||
- 可以将报告推送到企业微信、钉钉、邮件等通道。
|