Why: I1 WP6 - eval needs per-turn command expectations to carry the SetSlot+Start acceptance case, and corpora must reproduce standalone in intentctl (the guard case has been red there since before I1 because the guard spec only existed as a test builtin). Evidence: go vet clean; go test ./... all ok; intentctl eval passes 11/11 on the v1 corpus (guard case fixed via self-declaration) and 1/1 on the new two-turn SetSlot+Start corpus. Impact: new intent/corpus.go (CorpusCase/CorpusTurn/CommandExpect, RunCorpusCase with chained expectations); intentctl eval consumes turns and corpus-declared builtin_specs and domains; report.generate spec and corpus_multiturn.json fixtures added. v1 corpus format and conformance unchanged. Refs: Documents proposal 2026-10-07-agent-stack-n1q1i1-plans.md I1 WP6
48 lines
1.1 KiB
JSON
48 lines
1.1 KiB
JSON
{
|
|
"cases": [
|
|
{
|
|
"name": "report_fill_slot_two_turns",
|
|
"turns": [
|
|
{
|
|
"input": "帮我生成报告",
|
|
"expect_branch": "matched",
|
|
"expect_top": "report.generate",
|
|
"expect_commands": [
|
|
{
|
|
"kind": "start",
|
|
"action_kind": "handler",
|
|
"action_id": "reportHandler"
|
|
},
|
|
{
|
|
"kind": "clarify",
|
|
"missing": [
|
|
"topic"
|
|
],
|
|
"question": "要查询哪个主题?"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"input": "生成报告,主题是电机",
|
|
"expect_branch": "expectation_hit",
|
|
"expect_top": "report.generate",
|
|
"expect_commands": [
|
|
{
|
|
"kind": "set_slot",
|
|
"name": "topic",
|
|
"value": "电机"
|
|
},
|
|
{
|
|
"kind": "start",
|
|
"action_kind": "handler",
|
|
"action_id": "reportHandler",
|
|
"slots": {
|
|
"topic": "电机"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
} |