Why: I1 increment one - recognition output becomes a command list for the host router, same-score ties resolve by priority (I5), and CJK substring false positives get an opt-in boundary mode (I3). Evidence: go vet clean; go test ./... all ok, including new command (6), boundary (3), and tie-break tests; intentctl lint smoke run shows boundary hints on short unbounded terms. Existing classifier and ambiguity fixtures repointed to an equal-priority pair; the greet corpus case now expects the I5 tie-break outcome. Impact: Result gains Commands; recognizer derives them at one point (guard/fallback stay empty); MatchSpec gains Boundary (default off, legacy behavior unchanged); lint gains boundary hints. Top/Branch stay for compatibility. Refs: Documents proposal 2026-10-07-agent-stack-n1q1i1-plans.md I1 WP1/WP4/WP5
135 lines
2.5 KiB
JSON
135 lines
2.5 KiB
JSON
{
|
|
"intents": [
|
|
{
|
|
"id": "demo.run.status_query",
|
|
"domain": "demo",
|
|
"version": 1,
|
|
"description": "查询任务运行进度",
|
|
"matcher": {
|
|
"includes_any": [
|
|
"进度",
|
|
"状态"
|
|
],
|
|
"excludes_any": [
|
|
"配置"
|
|
]
|
|
},
|
|
"slots": [
|
|
{
|
|
"key": "run_id",
|
|
"required": false,
|
|
"pattern": "(?:run|任务)[:# ]*([A-Za-z0-9-]+)",
|
|
"group": 1
|
|
}
|
|
],
|
|
"confidence": {
|
|
"base": 0.8,
|
|
"threshold": 0.7
|
|
},
|
|
"risk": "low",
|
|
"handler": "taskrun.query_status",
|
|
"metadata": {
|
|
"channel": "dialogue"
|
|
}
|
|
},
|
|
{
|
|
"id": "demo.run.restart",
|
|
"domain": "demo",
|
|
"version": 1,
|
|
"description": "重启任务",
|
|
"matcher": {
|
|
"includes_any": [
|
|
"重启"
|
|
],
|
|
"includes_all": [
|
|
"任务"
|
|
]
|
|
},
|
|
"confidence": {
|
|
"base": 0.75,
|
|
"threshold": 0.7
|
|
},
|
|
"risk": "medium",
|
|
"requires_confirm": true,
|
|
"handler": "taskrun.restart"
|
|
},
|
|
{
|
|
"id": "demo.run.cancel",
|
|
"domain": "demo",
|
|
"version": 1,
|
|
"description": "取消任务",
|
|
"matcher": {
|
|
"includes_any": [
|
|
"取消"
|
|
]
|
|
},
|
|
"slots": [
|
|
{
|
|
"key": "run_id",
|
|
"required": true,
|
|
"pattern": "(?:run|任务)[:# ]*([A-Za-z0-9-]+)",
|
|
"group": 1
|
|
}
|
|
],
|
|
"handler": "taskrun.cancel"
|
|
},
|
|
{
|
|
"id": "demo.greet.hello",
|
|
"domain": "demo",
|
|
"version": 1,
|
|
"matcher": {
|
|
"includes_any": [
|
|
"你好"
|
|
]
|
|
},
|
|
"priority": 10
|
|
},
|
|
{
|
|
"id": "demo.greet.hi",
|
|
"domain": "demo",
|
|
"version": 1,
|
|
"matcher": {
|
|
"includes_any": [
|
|
"你好"
|
|
]
|
|
},
|
|
"priority": 5
|
|
},
|
|
{
|
|
"id": "demo.misc.deploy",
|
|
"domain": "demo",
|
|
"version": 1,
|
|
"matcher": {
|
|
"includes_any": [
|
|
"deploy",
|
|
"发布"
|
|
],
|
|
"case_sensitive": false
|
|
},
|
|
"handler": "deploy.run"
|
|
},
|
|
{
|
|
"id": "demo.tie.alpha",
|
|
"domain": "demo",
|
|
"version": 1,
|
|
"matcher": {
|
|
"includes_any": [
|
|
"打结"
|
|
]
|
|
},
|
|
"priority": 5
|
|
},
|
|
{
|
|
"id": "demo.tie.beta",
|
|
"domain": "demo",
|
|
"version": 1,
|
|
"matcher": {
|
|
"includes_any": [
|
|
"打结"
|
|
]
|
|
},
|
|
"priority": 5
|
|
}
|
|
],
|
|
"disable": []
|
|
} |