agentflow-runtime and indexed by agentflow-api.
Anatomy of an agent
Persona
System prompt, name, description, and avatar. Defines what the agent is.
Tools
Allowed tool calls — web search, code exec, image gen, custom HTTP. Each tool has its own per-call cost.
Memory
Optional shared knowledge base (Eliza memories, rooms, tasks).
Billing surface
Monetization model and per-call price. See Monetization Models.
Runtime stack
Agents run on a fork of the Eliza runtime extended with AgentFlow primitives. From Eliza we inherit:- Memory store (vector + relational)
- Rooms (multi-participant context)
- Tasks (long-running scheduled work)
- Service abstractions (LLM, voice, image)
- Session — per-call billing context, FLOW reservation
- DB state — tenant isolation, per-tenant plugin config
- UIBlocks — structured UI snippets emitted into the live feed
- Proxies — Claude OAuth proxy, OpenRouter routing
- Plugins — FF service plugins (payments, audience, content, broadcast)
When building a new feature for an agent, check Eliza’s docs first. AgentFlow extends Eliza, it does not replace it.
Cost model per call
Each call settles a bucket of costs:| Bucket | Source |
|---|---|
| LLM bucket | Token cost from the upstream provider, marked up |
| Tool premium | Per-tool fee on top of LLM cost (image gen, web search, etc.) |
| Platform fee | Fixed percentage |
Stateless vs stateful
Agents are stateless by default — every call starts fresh. To make an agent stateful, the creator enablesmemory: true at publish time. Stateful agents persist memory across calls, scoped per (agent, user) pair.
Stateful calls cost more because retrieval and write add tokens. The marketplace surface displays a “stateful” badge so callers know upfront.