- Create a brand-new position - point Zuno at a token + amount, the Scout surveys live pools on the chain, the Strategist proposes 2-5 pool/range candidates, the Critic stress-tests them, the Arbiter resolves on deadlock. See CLI / create.
- Rebalance an existing position - the same four agents debate whether and how to move its range. See CLI / plan.
Why four agents
LP management is a real tension between fee density (tight ranges, high yield) and survival (wide ranges, low exit risk). A single scoring function picks one side. A debate models the tension explicitly - and makes the reasoning auditable.
Each agent runs as its own AXL peer with its own ed25519 peer id. They
talk over Gensyn AXL - the
peer-to-peer Agent eXchange Layer. The CLI is just another peer.
A debate normally converges in 1-2 rounds. When it doesn’t, the
Arbiter reads the full history and breaks the tie with explicit
reasoning the user can read.
What’s deterministic, what isn’t
The agents use the LLM to reason. The LLM never owns arithmetic.- Tick math, range checks, allocation, and stress simulation are pure functions in TypeScript.
- Volatility comes from a real CoinGecko series; gas comes from
eth_gasPriceon the position’s chain; yield is estimated fromliquidity × feeTier × in_range_share. - The Strategist picks
(widthMultiplier, centerOffset)proportions - it can’t fabricate raw tick numbers. - The Critic scores against deterministic floors keyed to the user’s
risk profile (
conservative | balanced | aggressive). - The Arbiter writes the final paragraph, but the chosen candidate index is bounded by the actual proposal.
OPENAI_API_KEY is unset, every agent has a deterministic fallback.
The mesh shape and message kinds are identical.
Working surfaces
- Create + rebalance via the four-agent debate over AXL.
- Real on-chain v4 pool discovery (StateView probe of every
(token0, token1, feeTier)candidate from the curated registry). - Live
agent_thoughttranscript rendered in the CLI and persisted inrisk.reasonssoexplain recommendationcan replay it. - In-process orchestrator fallback when the AXL mesh is offline.
- Deterministic fallback when no LLM key is available.
- Background monitor worker with optional Telegram delivery, dedup,
and a local
~/.zuno/alerts.jsonstore. - Email-OTP sign-in, per-user Turnkey sub-org with isolated wallet.
applyrequires explicit approval and signs through the Turnkey boundary only after policy checks pass.