feat:意图识别优化

This commit is contained in:
2026-09-30 08:57:39 -07:00
parent 4d7c91cc41
commit 3e88b339a0
21 changed files with 443 additions and 88 deletions
+13 -3
View File
@@ -55,10 +55,17 @@ def route_after_intent(state: QueryState) -> str:
def route_after_requirement(state: QueryState) -> str:
# 需求输出校验失败直接收尾;需要澄清进入澄清,否则进入修改范围判断
# 需求输出校验失败直接收尾,其余按落地策略的决定分流
if state["status"] == "failed":
return "fallback_node"
return "clarify_node" if state["requirement"].needs_clarification else "scope_node"
outcome = state["requirement_outcome"]
if outcome == "inform":
# 目标不存在时直接告知用户,不执行也不追问
return "qa_node"
if outcome == "clarify":
# 候选选项已由策略生成时直接等待用户,否则由澄清节点组织问题
return "wait_for_user_node" if state.get("clarification") else "clarify_node"
return "scope_node"
def route_after_wait(state: QueryState) -> str:
@@ -70,7 +77,8 @@ def route_after_wait(state: QueryState) -> str:
# 接入后把 needs_planning 与 resource_needs 拆成两个独立开关:
# 规划 -> 按需查资源 -> planner;无需规划但有 resource_needs -> 查资源 -> action
# 并让 component_resource_node 按 resource_needs 决定查什么,而不是固定全量目录
# 在此之前,无需规划且带 resource_needs 的请求会由 action_block_reason 判为失败
# 接入时把 capabilities.RESOURCE_QUERY_SUPPORTED 改为 True;在此之前 ScopeNode 和 PlannerNode
# 会清空资源需求并改用物料默认配置和示例数据,不因资源需求失败
def route_after_scope(state: QueryState) -> str:
# 范围输出校验失败或已判定无法执行,直接失败收尾
if state["status"] == "failed":
@@ -170,6 +178,8 @@ def build_graph(checkpointer=None):
path=route_after_requirement,
path_map={
"clarify_node": "clarify_node",
"wait_for_user_node": "wait_for_user_node",
"qa_node": "qa_node",
"scope_node": "scope_node",
"fallback_node": "fallback_node",
},