Your agent needs a thinking file — here's the pattern that prevents silent failures
Your agent is failing silently. It's getting stuck, making bad decisions, or going in circles — but you only find out when you check back hours later.
The problem isn't intelligence. It's visibility. You can't debug what you can't see.
Here's the pattern that fixes it: give your agent a thinking file. Not just logs. Not just outputs. A real-time stream of its decision process.
The pattern: Your agent writes its thinking to a dedicated file before every action. You can tail it in real-time to see exactly where things go wrong.
Add this to your agent's system prompt:
Before taking any action, write your thinking to ~/.agent_thinking.md: ## [timestamp] Current Task **Goal:** What I'm trying to accomplish **Context:** What I know so far **Decision:** What I'm about to do and why **Concerns:** What could go wrong Then take the action.
Now you can watch your agent think in real-time:
tail -f ~/.agent_thinking.md
This catches three failure modes that kill agent productivity:
- Context drift: When your agent forgets what it's supposed to be doing
- Assumption errors: When it makes decisions based on wrong information
- Infinite loops: When it gets stuck repeating the same failed approach
Real example from my coding agent last week. I asked it to fix a failing test. It spent 30 minutes in a loop, trying the same approach over and over. The thinking file showed me exactly where it went wrong:
## 14:23 Current Task **Goal:** Fix failing test in user_controller_test.rb **Context:** Test fails with 'undefined method email' **Decision:** Add email method to User model **Concerns:** None ## 14:27 Current Task **Goal:** Fix failing test in user_controller_test.rb **Context:** Still failing with same error **Decision:** Add email method to User model again **Concerns:** Why didn't the first fix work?
The thinking file showed me it was adding the method to the wrong model. Without it, I would have let it run for hours.
The thinking file also prevents the "I tried everything" problem. When your agent says it's stuck, you have a complete audit trail of what it actually attempted.
Two implementation notes:
- Use a dedicated file, not your main logs. You want to tail this without noise.
- Make the format consistent. The timestamp and section headers make it scannable when you're debugging.
Warning: Don't make this optional. If your agent can skip the thinking file "to save time," it will — exactly when you need it most.
This pattern works for any agent task — coding, research, content creation, whatever. The key is making the thinking visible before the action happens.
Your agent is already thinking. You're just not seeing it. The thinking file changes that — and changes how effectively you can run agents in production.