a2cf07f69331346c043775c1e983794ba2510c92
Agent-Intent
可定义、可配置、可扩展的通用意图识别基础库:把「输入文本 → 意图 + 槽位 + 分支裁决」做成纯内存、确定性的库能力,供宿主在 LLM 之前完成确定性分流——守卫拦截(安全红线、识别即拒绝)、系统功能命令识别、路由提示与多轮澄清入口。
本仓库是该模块的源码位置。Go 模块路径为 agent-intent。不依赖 Agent-Native、Agent-Squad 或任何第三方模块;错误码与日志和 Error-Code-System / Logging-System 轻接入对齐(常量对齐 + 鸭子接口,核心包不依赖错误码库)。
设计目标与边界:
- 机制与内容分离:本仓只提供识别流水线与定义框架,不内置任何业务意图;词表、正则、守卫内容一律由宿主以 Go 注册或 JSON 配置提供。
- 确定性:同输入 + 同快照 → 同结果;识别路径纯内存、无 I/O、无时间与随机因素,「无匹配」(fallback)是正常结果而非错误。
- fail-closed 配置:spec 校验或配置加载失败时整批原子拒绝,保留上一生效快照并给出可定位到字段与来源的错误。
- 扩展点只留接口:LLM 分类器、会话挂起预期、分句等由宿主实现并注入。
分层
| 包 | 职责 | 依赖边界 |
|---|---|---|
| intent | spec 定义与校验、注册表与不可变快照、JSON overlay 加载合并、四级漏斗识别器、槽位抽取、诊断 | 标准库 + 可选 logging-system |
| conformance | 消费方行为验收套件(Recognizer 公开契约正反例) | 只用公开 API |
| catalogcheck | 本仓错误常量与错误码库 intent 域的对齐断言 |
仅测试,import error-code-system |
| examples | 最小接入示例(embed 配置端到端) | 只用公开 API |
| cmd/intentctl | 配置 lint / 单条解释 / 评测集跑批的只读诊断 CLI | 组合根之一 |
识别流水线
Stage 0 Guard 守卫域规则(宿主声明 GuardDomains;命中 → GuardHit,可表达"识别即拒绝")
Stage 1 Expectation 会话挂起预期(可选注入;命中 → ExpectationHit,支持多轮澄清)
Stage 2 Rules 规则计分:includes_any / includes_all / excludes_any / patterns 对快照内启用 spec 计分
Stage 3 Adjudicate 置信度裁决:唯一过阈 → Matched;多候选分数贴近 → Ambiguous;全不过 → Fallback
意图定义(IntentSpec)支持 Go 注册与 JSON overlay(新增 / 覆盖 / 禁用),合并产物为带 revision 的不可变快照;保护域(ProtectedDomains)内的 spec 不接受 overlay 覆盖或禁用。
详细字段说明、接入代码与 intentctl 用法在核心实现合入后补全于本 README 与 docs/。
作为 submodule 使用
消费方把本库固定为 submodule,推荐路径 deps/agent-intent;版本以消费方 gitlink 为准,不执行 submodule update --remote:
git submodule add ssh://git@git-ssh.u1680832.nyat.app:31411/weichen/Agent-Intent.git deps/agent-intent
require agent-intent v0.0.0
replace agent-intent => ./deps/agent-intent
依赖模块内部的 replace 在上层构建中不生效:消费方须自带 error-code-system 与 logging-system 的 require + replace,并保持与本仓 gitlink 相同的组合。
验证
GOWORK=off go vet ./... && GOWORK=off go test -count=1 ./...
GOWORK=off go test -count=1 -race ./...
需要 Go 1.27。规则入口见 AGENTS.md,项目事实见 PROJECT.md。
Description
可复用的通用意图识别基础:四级漏斗识别器、槽位抽取、JSON overlay 配置与守卫/保护域,把「输入文本 → 意图 + 槽位 + 裁决」做成纯内存确定性能力,供宿主在 LLM 之前完成守卫拦截、命令识别、路由与澄清分流;意图注册表兼作规划侧能力目录,附 intentctl 诊断 CLI。不依赖 LLM、Agent-Native/Agent-Squad 或具体业务系统。
278 KiB
Languages
Go
97.1%
Shell
2.9%