stiggy

Agents that coordinate through the trail they share.

stiggy runs fleets of AI agents on NATS. Every decision, handoff and human answer is written to a durable event log, so a fleet survives crashes, scales out across machines, and can be replayed, forked and rewound.

go install github.com/henomis/stiggy/cmd/stiggy@latest

Named after stigmergy

Ants don't hold meetings. Each one leaves a trace in the ground, and the next one reads it. The colony's plan lives in the environment, not in any single ant.

stiggy works the same way. Agents never call each other through fragile in-memory state: a step finishes, its output and its routing choice land in the execution's event log on JetStream, and the next step picks them up from there. Kill a worker halfway through and another one carries on from the last trace.

Describe the fleet once

Write it as YAML and run it with the stiggy binary, or build it in Go. Both produce the same model, checked before anything runs.

namespace: newsroom
models:
  fast: {provider: ollama, model: llama3.2-eco}
agents:
  researcher: {model: fast, role: Researcher, goal: "Find accurate, recent facts."}
  writer: {model: fast, role: Writer, goal: "Write short, clear articles."}
crews:
  article:
    tasks:
      - {id: research, agent: researcher, description: "Research {{.input.topic}}."}
      - {id: write, agent: writer, description: Write a 200-word article from the research.}

Six team shapes, ready to use

Each shape is a few lines of YAML that expand into an ordinary durable flow. Run stiggy compile to see exactly what it becomes.

Need something else? Write the flow yourself: choices, fan-out and join, maps, subflows, waits, retries and budgets are all there, with agents as steps.

Go back to any point and try again

An execution is its event log. Read the state right after any event, branch a new execution from it with different input, or rerun from one step after fixing a prompt. Routing choices and human answers are in the log too, so a fork sees exactly its own history.

Select an event to see the command.

stiggy get <exec> -seq 12

The state as it was right after event 12.

One file on every machine

Each process runs the same fleet file and picks its part. Add worker processes when the queue grows; stop one and its jobs are redelivered.

stiggy run -role engine  -http :8080 fleet.yaml                # drives executions, timers, schedules
stiggy run -role workers -http :8080 fleet.yaml                # runs agents; scale it out
stiggy run -role workers -only researcher,writer fleet.yaml    # dedicated hosts for some agents

Or draw it

stiggy design opens a canvas in your browser. Connect blocks for agents, routers, loops, conditions, parallel branches, human approval and agent teams, and every save writes a fleet file checked by the same compiler as stiggy validate.

How the designer maps to a fleet

Start with one agent, keep the trail.

Open source under Apache 2.0. Needs Go and a NATS server with JetStream.