Getting Started

Design, compose, and evaluate micro-agents

A lightweight playbook for building reliable agent meshes.

What is a micro-agent?

A micro-agent is a single-purpose agent with typed inputs/outputs, explicit tools, and measurable behavior. It behaves like a microservice.

How to design contracts

Define inputs, outputs, tools, guardrails, and known failure modes before writing prompts.

{
  "name": "ClassifierAgent",
  "purpose": "Route intent to the right workflow.",
  "inputs": { "query": "string" },
  "outputs": { "intent": "string" },
  "allowed_tools": ["none"],
  "guardrails": ["no external calls"],
  "eval_rubric": ["intent matches taxonomy"],
  "failure_modes": ["ambiguous intent"],
  "fallback": "SupervisorAgent"
}

How to compose

Start with a router and planner, then fan out to small, typed agents. Validate at the edges.

{
  "flow": [
    "RouterAgent",
    "PlannerAgent",
    ["ExtractorAgent", "WriterAgent", "PolicyAgent"],
    "ValidatorAgent"
  ]
}

How to evaluate

Run evals per agent with fixtures and rubrics. Aggregate metrics for the mesh.

{
  "agent": "ExtractorAgent",
  "fixtures": ["invoice_001", "invoice_002"],
  "rubric": ["schema valid", "totals match source"],
  "threshold": 0.9
}

Common pitfalls

Overloaded prompts

Split responsibilities and keep I/O typed.

Missing guardrails

Define tool boundaries and policy checks early.

Skipping evals

Test each agent in isolation before orchestration.