Skip to content

Anti-patterns and checklists

A collection of recurring mistakes, organized by phase, with the control that prevents them.

Design anti-patterns

Anti-pattern Why it fails Better pattern
Prompt as policy A prompt describes a rule; it does not enforce it Policy at an architectural boundary
Model as architecture The model is a component, not the system Explicit layers, contracts, and controls
One agent for everything Unbounded scope and authority Roles, capabilities, and delegation limits
Vector store as memory An index is not a memory architecture Separate context, memory, grounding, world state
Logs as evidence Logs are optimized for debugging, not proof Structured, linked, retained evidence
Shared database integration Couples schemas and bypasses policy Versioned contracts and APIs
No exit path Lock-in and unbounded cost Open surfaces and replaceable adapters
Simulation as decoration A demo is not an experiment Reproducible matrices and provenance

Build anti-patterns

Anti-pattern Why it fails Better pattern
Unbounded tools The agent can do too much Minimal, explicit capabilities
Long-lived shared keys Weak identity and slow revocation Workload identity and short-lived tokens
Direct external calls Credentials and egress are uncontrolled Governed gateway
No step or cost limit Runaway loops and denial of wallet Budgets and step limits
Retries without idempotency Duplicate effects Idempotency keys and recorded effects
Testing one happy path Probabilistic systems fail differently Distributional testing
Unsigned artifacts Supply-chain risk Signing and provenance

Operate anti-patterns

Anti-pattern Why it fails Better pattern
No recovery plan Failures become incidents Checkpoints and durable process
No revocation path Authority cannot be withdrawn Revocation tested
No human override The system cannot be stopped Intervention and kill switch
Evidence not retained Audit and learning are impossible Retention and access control
No rollback A bad change persists Versioned releases and rollback
Governance as a gate at the end Too late to change the design Governance at the boundary

Checklists

Design review

  • [ ] The problem and success criteria are explicit.
  • [ ] The agent type and autonomy level are named.
  • [ ] The control planes are identified.
  • [ ] The evidence chain is designed.
  • [ ] The failure and recovery paths are defined.
  • [ ] The exit path is acceptable.

Security review

  • [ ] Identity is workload-based.
  • [ ] Capabilities are deny-by-default.
  • [ ] Egress is governed.
  • [ ] Secrets are injected, not embedded.
  • [ ] Artifacts are signed.
  • [ ] Delegation attenuates.
  • [ ] Revocation is tested.

Operations review

  • [ ] Budgets and step limits exist.
  • [ ] Evidence is complete and retained.
  • [ ] Recovery is tested.
  • [ ] Human override works.
  • [ ] Model/policy/skill changes trigger re-verification.
  • [ ] A rollback exists.

Release review

  • [ ] Contracts pass.
  • [ ] Verification evidence exists.
  • [ ] The change is understood.
  • [ ] The risk is accepted by an accountable person.
  • [ ] The rollback is ready.

The simplest test

Ask: if this agent does the wrong thing tomorrow, what stops it, what proves it, and who can turn it off? If the answer is “the prompt,” the design is not done.