mirror of
https://github.com/infiniflow/ragflow.git
synced 2026-11-11 05:40:52 +08:00
Fixes a family of table-retrieval truncation bugs and an action-session infinite loop in the agentic RAG medium path, all root-caused on a tabular-reasoning question 1. action_session turn cap enforced (action_session.py) _route checked _pending_calls before attempts, so a model that kept emitting tool calls never hit the 4-turn finalize — a single session could burn the whole pass budget (219 retrievals / 600s observed). Added _route_after_tool: after a tool batch, the turn budget is checked and the session converges to finalize instead of looping back to run_action. 2. Table chunks kept whole through retrieval (search.py, text_processing.py, action_session.py) Three truncation points hid mid-table answer rows from the session model: - grep_search narrowed table chunks to 700 chars (_GREP_OUT_CHARS_PER_CHUNK) - _narrow_content only passed HTML tables (<table>/<tr/<td) whole — markdown pipe tables were sentence-window narrowed - _admit_evidence truncated the model-facing output to 1200 chars even though the pool held the full chunk,non-table chunks keep the existing truncation paths unchanged. 3. SCA sees more evidence (agentic_rag_graph.py, sufficient_context.py) _SCA_VIEW_CAP 24 → 60; _SCA_CLAIMS_CONTEXT_MAX 9000 → 48000; table-bearing evidence anchors rendered in full (bounded by the context budget). 4. Supporting: runtime instrumentation for rounds/slots/retrievals, LLM token accounting, slot-evidence preservation through SCA, dedup checkpoints. Timeout/budget constants restored to upstream defaults. --------- Co-authored-by: Loong <213221738@seu.edu.cn> Co-authored-by: Hermes Agent <hermes-agent@localhost>