Forward missing explain_triples through RAG clients and agent tool callback (#768)

fix: forward explain_triples through RAG clients and agent tool callback
- RAG clients and the KnowledgeQueryImpl tool callback were
  dropping explain_triples from explain events, losing provenance
  data (including focus edge selections) when graph-rag is invoked
  via the agent.

Tests for provenance and explainability (56 new):
- Client-level forwarding of explain_triples
- Graph-RAG structural chain
  (question → grounding → exploration → focus → synthesis)
- Graph-RAG integration with mocked subsidiary clients
- Document-RAG integration
  (question → grounding → exploration → synthesis)
- Agent-orchestrator all 3 patterns: react, plan-then-execute,
  supervisor
This commit is contained in:
cybermaggedon 2026-04-08 11:41:17 +01:00 committed by GitHub
parent e899370d98
commit 4b5bfacab1
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
9 changed files with 2178 additions and 7 deletions

View file

@ -15,7 +15,7 @@ class GraphRagClient(RequestResponse):
user: User identifier
collection: Collection identifier
chunk_callback: Optional async callback(text, end_of_stream) for text chunks
explain_callback: Optional async callback(explain_id, explain_graph) for explain notifications
explain_callback: Optional async callback(explain_id, explain_graph, explain_triples) for explain notifications
timeout: Request timeout in seconds
Returns:
@ -30,7 +30,7 @@ class GraphRagClient(RequestResponse):
# Handle explain notifications
if resp.message_type == 'explain':
if explain_callback and resp.explain_id:
await explain_callback(resp.explain_id, resp.explain_graph)
await explain_callback(resp.explain_id, resp.explain_graph, resp.explain_triples)
return False # Continue receiving
# Handle text chunks