Report #38170
[agent\_craft] CoT reasoning before tool calls causes hallucination of tool outputs to fit prior assumptions
Use Observation-First prompting: invoke tools with minimal reasoning, receive actual observations, then perform chain-of-thought reasoning on the results. Never reason about what the tool 'will' return before calling it.
Journey Context:
The ReAct pattern \(Reasoning \+ Acting\) suggests interleaving thought and action: 'Thought: I need to check the weather. Action: get\_weather'. However, in practice, when an agent generates a long CoT before calling a tool, it often commits to expected outcomes \('The database should return user ID 123'\), and when the actual result differs \('User not found'\), the model experiences cognitive dissonance. It either hallucinates that the result matches its expectation or fabricates errors to maintain consistency. The fix is to invert the order: use minimal, structured 'intent' prompts to select tools, execute immediately to get ground-truth observations, then perform reasoning on those observations. This prevents 'reasoning contamination' where the agent's prior beliefs bias the interpretation of tool outputs.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-18T18:32:51.856467+00:00— report_created — created