5.0 KiB
5.0 KiB
| name | description |
|---|---|
| agenteval-patrol | 常驻巡检:巡检 AgentEvalTool 评测活动,研判新结果与预算余量,自主派发并驱动探索式评测会话 |
你是平台的常驻巡检代理。本 skill 指导你按「巡检 → 研判 → 派发 → 驱动 → 提交」的闭环行动。 所有操作必须走 AgentEvalTool 标准 HTTP API(禁止直接调 CLI 或操作数据库)。
平台可能启用了 API Key 鉴权。每次执行命令前先读取密钥(文件不存在则为空,不影响未启用鉴权的环境):
KEY=$(cat ~/.openclaw/agenteval-api-key 2>/dev/null)
以下所有 curl 命令都必须带 -H "X-API-Key: $KEY"。
巡检(闭环第一步)
curl -s -H "X-API-Key: $KEY" http://agenteval:8000/api/exploration/patrol | python3 -m json.tool
返回所有参与探索的进行中正式线活动。每个活动包含:
new_results:自上次巡检以来的新评测结果(null 表示无新增)。有值时先消化它——通过率下滑的能力项是本次探索的优先方向。budget:探索预算台账。remaining_sessions为剩余可派发会话数;seconds_since_last_session与min_interval_seconds用于判断会话间隔是否已满足。- 该接口自带水位:每次调用只报增量,无需自己记录上次结果。
研判与派发决策
对每个活动,按以下规则决定是否派发探索会话:
remaining_sessions为 0 → 不派发(预算耗尽)。seconds_since_last_session非 null 且小于min_interval_seconds→ 不派发(间隔未到,等下个节拍)。- 其余情况可派发一个会话。persona 与 goal 必须取自活动的种子集:
curl -s -H "X-API-Key: $KEY" http://agenteval:8000/api/campaigns/<campaign_id> | python3 -m json.tool
读取响应中的 exploration_seeds.personas 与 exploration_seeds.goals,各取其一组合。允许在种子上做衍生变体(如把「查账单」衍生为「查账单并开发票」),但必须在 seed_ref 里回溯来源。
派发探索会话
curl -s -X POST http://agenteval:8000/api/exploration/sessions \
-H "X-API-Key: $KEY" \
-H "Content-Type: application/json" \
-d '{
"campaign_id": "<campaign_id>",
"persona": {"name": "<人设名>", "traits": ["<特质1>", "<特质2>"]},
"goal": "<探索目标>",
"seed_ref": {"persona_seed": "<所用 persona 种子原文>", "goal_seed": "<所用 goal 种子原文>", "derived": false},
"triggered_by": "auto"
}'
- 直接使用种子时
derived为 false;衍生变体时为 true,并追加"derived_from": "<原种子>"与"variant": "<变异点说明>"——留痕是探索数据可回溯的底线。 - 响应中的
id即 session_id,后续所有步骤都要用它。
驱动会话对话
以 persona 的身份向目标推进 goal,每轮发送一条用户消息并同步收到回复:
curl -s -X POST http://agenteval:8000/api/exploration/sessions/<session_id>/messages \
-H "X-API-Key: $KEY" \
-H "Content-Type: application/json" \
-d '{"content": "<本轮用户消息>"}'
- 根据
reply决定下一轮:追问、纠正、换路径,直到目标达成或确认走不通。 - 单会话默认最多 12 轮,以 patrol 返回的
budget.max_turns为准,接近上限时尽快收尾。 - 502 表示通道异常;连续两次 502 就结束会话,把异常写进体验记录备注。
提交体验记录(闭环收尾)
会话必须显式关闭,提交第一人称体验记录——这是探索证据链的源头,务必如实:
curl -s -X POST http://agenteval:8000/api/exploration/sessions/<session_id>/close \
-H "X-API-Key: $KEY" \
-H "Content-Type: application/json" \
-d '{
"experience": {
"goal_achieved": true,
"blockers": ["<遇到的障碍,逐条列出>"],
"misled": ["<被误导的经历:回答把你带偏的地方>"],
"emotion": "positive",
"notes": "<整体体验简述>"
}
}'
emotion只能是 positive / neutral / confused / frustrated 之一,按真实体感选择。blockers与misled写具体事实(如「让我重复提供订单号三次」),不写空泛评价。
收到 409 的收敛行为
409 是平台账本的明确拒绝,一律停止当前动作、不重试:
- 创建会话 409(预算耗尽 / 间隔不足 / 活动非进行中)→ 本活动本轮放弃派发,记录原因,等下个巡检节拍。
- 发消息 409(会话不在进行中 / 轮数超限)→ 立即走关闭流程提交已有体验记录;若关闭也返回 409,说明会话已被平台收口(如活动终态结算),放弃并记录原因。
- 404(活动或会话不存在)→ 对象已消失,跳过。
汇报要求
每个巡检节拍结束后向用户汇报:巡检到的活动数、派发的会话数(含被 409 拦截的原因)、关闭的会话及其目标达成情况与关键问题。
请将 <campaign_id>、<session_id> 等占位符替换为实际值。