Skip to content

feat(rag state):RAG isolation and structure - #51

Merged
Heyflyingpig merged 3 commits into
developfrom
feat(rag-state)/isolation
Aug 16, 2026
Merged

feat(rag state):RAG isolation and structure#51
Heyflyingpig merged 3 commits into
developfrom
feat(rag-state)/isolation

Conversation

@Heyflyingpig

Copy link
Copy Markdown
Owner

背景

当前 RAG 子图直接复用父图 State,RAG route、ToolMessage 和解析中间结果可能进入父图;Planner、ToolNode 和 Parser 的异常处理也没有统一经过同一个最终收口节点。

变更内容

  • 新增 RagSubgraphState,隔离 RAG 私有状态。
  • 新增父子 State 适配节点,只向父图投影 knowledge_base_result
  • 显式透传 LangGraph configruntime.context
  • 将 RAG 子图统一为:
    rag_question_planner -> rag_tool_node -> rag_result_parser -> rag_finalize
  • 增加知识库不可用和空工具列表预检,跳过不必要的 LLM 与 ToolNode 调用。
  • 统一 unavailableprotocol_erroravailable 状态。
  • 保留 Planner、ToolNode 的现有 attempt 上限和超时边界。
  • 保证 success=False 的 RAG 工具结果仍然进入 Parser。
  • 保证 Planner、ToolNode、Parser 异常最终进入 rag_finalize
  • 保证 JobExecutionRevokedasyncio.CancelledError 不被重试或降级。
  • 让公共 RAG 工具结果只从 rag_finalize 投影,避免重复事件。
  • 增加 RAG State、路由、降级、取消传播和事件投影测试。
  • 补充运行时架构、测试边界和 CHANGELOG。

验证

  • compileall:通过
  • git diff --check:通过
  • Docker 单元测试:未执行,Docker daemon 不可用
  • 本地 pytest:未进入测试执行阶段,缺少 langchain_coremysql 依赖
  • 真实模型、MCP、知识库、PostgreSQL checkpoint、worker 和浏览器 E2E:未覆盖

风险与后续

Docker 环境恢复后,需要补跑完整的 unit-test 服务,并进一步执行真实模型、MCP、知识库和 worker/checkpoint 集成验证。

@Heyflyingpig Heyflyingpig self-assigned this Aug 16, 2026
@Heyflyingpig
Heyflyingpig requested a review from RUSS0718 August 16, 2026 13:35
@Heyflyingpig Heyflyingpig changed the title Feat(rag state)/isolation feat(rag state):RAG isolation and structure Aug 16, 2026
@Heyflyingpig
Heyflyingpig merged commit 488cb6c into develop Aug 16, 2026
2 of 3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants