Technical Note

Reliable AI Agents

Constrained intelligence over unrestricted autonomy.

Production AI agents should not be fully autonomous systems with unlimited tools. They should be controlled workflows with orchestration, clear rules, permissions, validators, deterministic code, state management, and structured outputs.

Use code for deterministic tasks; use LLMs for ambiguous tasks.

The most dependable systems keep the LLM focused on language, reasoning, and messy context while traditional software enforces structure, safety, and correctness.

Code is best for

  • Calculations
  • Permissions
  • Validation
  • Schemas
  • API calls
  • Filters
  • Business rules
  • Deterministic decisions

LLMs are best for

  • Natural language understanding
  • Summarization
  • Drafting
  • Intent extraction
  • Classification
  • Tone
  • Messy information
User Request Orchestrator Rules & Permissions Specialized LLM Tool Call Validator Structured Output

Instead of letting one model decide everything, the workflow narrows each step. Code decides what is allowed, the LLM handles the ambiguous part, tools run in defined boundaries, and validators check the result before anything is returned.

Why unrestricted agents fail.

Too much autonomy often turns a useful assistant into an unreliable process. The system becomes harder to test, harder to reproduce, and harder to trust.

Loops Unnecessary retries Tool spam Inconsistent outputs Hallucinations Silent failures Poor reproducibility

Reliability matters more than autonomy.

For serious use cases like finance, healthcare, legal, operations, enterprise automation, reporting, and data workflows, the goal is not a magic autonomous agent. The goal is a controlled workflow where the LLM helps interpret, reason, and communicate while code enforces the parts that must be correct.

Design target

Constrained intelligence inside well-designed systems: limited tools, explicit permissions, typed outputs, validators, state, auditability, and predictable failure behavior.