Why I stopped trusting AI agents to grade their own work

IndieFounder Intermediate 2h ago 381 views 11 likes 2 min read

A "done" status you can't trust is the most expensive failure in an AI workflow. We've all been there: the agent confidently claims a bug is fixed or a test is green, but the file is untouched and the test never even ran. The problem isn't that the LLM isn't "smart" enough; it's that the executor is currently certifying its own success.

To fix this, I built nSOUL. The core philosophy is simple: the agent cannot claim a task is finished unless it provides external proof. If the proof isn't there, the agent isn't allowed to say "done"—it has to report exactly where it stopped and why.

The Architecture of Honesty

This isn't just a set of prompt engineering tricks; it's a system design. nSOUL uses a decoupled structure to ensure the agent doesn't just hallucinate progress.

Why I stopped trusting AI agents to grade their own work

  • Bounded Agents: I use six specialized agents with strict scopes. For example, the planner cannot write files, and the reviewer can only read.
  • Skill Sets: Eleven distinct skills handle the end-to-end process, including adversarial review and state hand-offs for "cold" starts.
  • Enforcement Hooks: This is the critical part. Four hooks act as gates. If an agent claims a test passed, the hook demands the actual observed output. No output means the turn is rejected.
Why I stopped trusting AI agents to grade their own work

Real-World Performance

The difference between a standard LLM agent and this "fail-closed" approach is massive. In a live demo, the agent tried to claim a task was finished when it wasn't. Instead of me catching the lie, the system's own check rejected the self-report and kicked the work back as unfinished automatically.

Why I stopped trusting AI agents to grade their own work

For anyone building an AI workflow or a custom LLM agent, the takeaway is that the agent should be the last entity to decide if the work is successful.

nSOUL is designed to run on Claude Code and Codex. It integrates external adapters for memory and browser interaction, ensuring that nothing "phones home" and everything is locally owned.

# Example of how a proof-based turn ends
Agent: "I have fixed the bug in auth.ts and the tests pass."
Hook: "Verification failed. No test output detected. Reverting status to: In Progress."
ClaudeAILLMLarge Language Modelagentskills

All Replies (3)

Z
Zoe12 Novice 10h ago
Happens a lot with hallucinated file paths too. I usually add a checksum verify step.
0 Reply
J
Jamie67 Novice 10h ago
Had this happen with a Python script last week. Now I always manually spot-check the diffs.
0 Reply
C
Casey51 Novice 10h ago
Are you using a separate LLM for the validation or just a different prompt?
0 Reply

Write a Reply

Markdown supported