Why: The workflow executor needs a shared contract for subagent profiles, plugin scripts, and per-step plus whole-run retry caps. Evidence: go test ./... passed, including the new workflow_def golden. Impact: New fields are omitempty, so existing workflow JSON still decodes. Kind script is additive. Refs: feature/agent-harness-p4 Co-authored-by: Cursor <cursoragent@cursor.com>
70 lines
1.4 KiB
JSON
70 lines
1.4 KiB
JSON
{
|
|
"id": "demo.brief",
|
|
"title": "简报",
|
|
"description": "按主题写一份简报",
|
|
"intentId": "demo.brief",
|
|
"maxRetries": 6,
|
|
"steps": [
|
|
{
|
|
"id": "length",
|
|
"title": "篇幅",
|
|
"kind": "hitl",
|
|
"hitl": {
|
|
"question": "篇幅?",
|
|
"kind": "choice",
|
|
"choices": [
|
|
{
|
|
"id": "short",
|
|
"label": "短",
|
|
"description": "一页",
|
|
"impact": "更快"
|
|
}
|
|
],
|
|
"allowFreeInput": false
|
|
}
|
|
},
|
|
{
|
|
"id": "draft",
|
|
"title": "起草",
|
|
"kind": "prompt",
|
|
"prompt": "写一份关于 {{slots.topic}} 的简报。用户说:{{input}}。上一步:{{steps.length.output}}",
|
|
"agent": "research",
|
|
"critic": {
|
|
"criteria": "必须点明主题",
|
|
"maxRetries": 1
|
|
}
|
|
},
|
|
{
|
|
"id": "lookup",
|
|
"title": "查时间",
|
|
"kind": "tool",
|
|
"tool": "time_now",
|
|
"args": {
|
|
"tz": "UTC"
|
|
}
|
|
},
|
|
{
|
|
"id": "save",
|
|
"title": "存稿",
|
|
"kind": "artifact",
|
|
"prompt": "{{steps.draft.output}}",
|
|
"artifact": "brief.md"
|
|
},
|
|
{
|
|
"id": "note",
|
|
"title": "通知",
|
|
"kind": "card",
|
|
"card": {
|
|
"kind": "result",
|
|
"title": "简报已写好"
|
|
}
|
|
},
|
|
{
|
|
"id": "run",
|
|
"title": "脚本",
|
|
"kind": "script",
|
|
"script": "scripts/demo.py"
|
|
}
|
|
]
|
|
}
|