Frequently Asked Questions

Everything you need to know about the Rotifer Protocol — from core concepts to how it compares with other frameworks.

What is Rotifer Protocol?

What is the Rotifer Protocol?

Rotifer Protocol is an open-source evolution framework for AI agents. Instead of manually curating tool lists for your agents, Rotifer introduces biological evolution: capabilities (called Genes) compete in an Arena, the fittest survive, and your agents grow smarter autonomously.

The name comes from the bdelloid rotifer — a microscopic organism that has thrived for 40 million years without sexual reproduction by absorbing genes from its environment. Rotifer Protocol applies the same principle to software.

What problem does it solve?

Today's AI agents have static capabilities — a hardcoded list of tools that never improves on its own. If Tool A is terrible and Tool B is great, the agent has no way to know. There's no competition, no selection, no evolution.

Rotifer fixes this by introducing:

  • Arena competition — same-domain Genes fight head-to-head on fitness metrics
  • Natural selection — the fittest Genes survive, the rest are eliminated
  • Autonomous improvement — agents automatically upgrade their genome over time

Comparisons with Other Frameworks

Rotifer vs MCP (Anthropic)

Relationship: Complementary — MCP standardizes how agents call tools; Rotifer standardizes how tools evolve.

DimensionMCPRotifer
Core problemHow agents invoke external toolsHow tools continuously improve
StandardizesTool interfaceEvolution rules
Quality assuranceNo built-in mechanismArena ranking + Reputation
SecurityDepends on host implementationProtocol-level L0 constraint (immutable)
GovernanceAnthropic-initiated open standardDecentralized self-evolution

Synergy: MCP Tools can be upgraded to Rotifer Genes with one command (rotifer wrap --from-skill), gaining quality ranking, security scoring, and autonomous evolution. MCP is Rotifer's most important upstream ecosystem.

Rotifer vs EvoMap

Relationship: Direct competitor — both build an "evolution layer" on top of MCP/Skills, but with fundamentally different definitions of what "evolution" means.

DimensionEvoMap (GEP)Rotifer
What is a "Gene"?Strategy template (JSON) — describes how to fix a problemExecutable capability unit — has an express() function, compiles to WASM
Does it execute code?No — generates prompts that guide evolutionYes — runs inside a WASM sandbox
Evolution paradigmRepair-driven: observe failure → fix → package → share (GDI 4-dimension scoring)Competition-driven: publish → Arena head-to-head → fitness selection → elimination
Safety modelValidation command whitelist (node/npm/npx only), no execution sandboxProtocol-level L0 immutable constraint + WASM sandbox + resource limits
Economic systemCredits (1 Credit = $0.01), bounties, service marketplace, validator stakingReputation scoring (economic model in roadmap)
Multi-agent collaborationSwarm Intelligence — task decomposition with parallel solvingGene composition algebra (Seq / Par / Cond / Try)
Theoretical foundationGDI weighted formula (quality 35% + usage 30% + social 20% + freshness 15%)SIR propagation model, Pareto convergence proof, herd immunity theorem
Cross-platformJavaScript/Node.js runtimeRotifer IR compiles to any target

Core architectural distinction: EvoMap treats Genes as strategy documents — standardized records of how a problem was solved, shared for other agents to replicate. Rotifer treats Genes as living programs — executable code that competes, evolves, and gets eliminated through natural selection. The same word "Gene", two entirely different things.

Rotifer's structural advantages: formalized mathematical foundation (provable fitness convergence), WASM-level execution isolation, and universal IR that decouples capabilities from any specific runtime.

EvoMap's strengths: operational platform with real usage, complete economic system, and lower barrier to entry (no code execution required).

Rotifer vs LangChain / CrewAI / AutoGen

Relationship: Complementary — these are orchestration frameworks (how multiple agents collaborate); Rotifer is a capability protocol (how individual capabilities evolve).

DimensionOrchestration FrameworksRotifer
Core problemMulti-agent coordinationCapability evolution
Protocol layerOrchestration layerCapability layer
Update mechanismManual code updatesAutonomous evolution + Arena elimination
Cross-frameworkFramework-lockedCompiles to universal IR

Synergy: These frameworks can serve as upstream users — orchestrate multiple agents with AutoGen/CrewAI, while each agent's capabilities are powered by Rotifer Genes that evolve autonomously.

Rotifer vs Google A2A

Relationship: Orthogonal — A2A handles agent-to-agent communication; Rotifer handles capability evolution. They operate at entirely different protocol layers.

DimensionA2ARotifer
Core problemAgent discovery & communicationCapability evolution
Protocol layerCommunication layerCapability layer
Interaction modelAgent-to-Agent RPCGene-to-Gene competition

Synergy: Agents on the A2A network can use Rotifer Genes as their capability modules. Zero overlap, full compatibility.

About the Project

Is it open source?

Yes. The engine is Apache 2.0 + Rotifer Safety Clause, the specification is CC BY-SA 4.0.

What's the current version?

v0.8.5 — the current public release line. It consolidates the shipped v0.8.x surface across the CLI, MCP Server, VS Code extension, and rotifer.dev, including the Skill→Gene migration path, CLI UX refresh, and version/update alignment work. Versions v0.8.2 through v0.8.4 were reserved internal iteration numbers rather than separate public releases. See the Roadmap for what's next.

Core Concepts

What is a Gene?

A Gene is the atomic capability unit in Rotifer. Think of it as a "living plugin" that can:

  • Compete in the Arena against other Genes in the same domain
  • Evolve through mutation and selection pressure
  • Propagate to other agents via horizontal gene transfer
  • Be eliminated when its fitness declines

Every Gene has a typed interface (inputSchema / outputSchema), a unique identity (content hash), and runs inside a WASM sandbox.

What's the difference between a Skill and a Gene?

Similarities: Both are modular, composable, reusable AI agent capability units. Both define input/output schemas.

Key differences:

DimensionSkillGene
EvolutionStatic after installCompetes & evolves in Arena
IdentityNo unique IDContent-addressable
SecurityOften no sandboxWASM sandbox + L0
Cross-platformFramework-lockedUniversal IR
RetirementManual deprecationNatural elimination

In short: Skill is the degenerate special case of Gene — turn off all "life characteristics" and you get a Skill.

What is the Arena?

The Arena is where Genes compete. Same-domain Genes are evaluated head-to-head on four fitness dimensions:

  • Correctness (S_r) — does it produce the right output?
  • Utilization (C_util) — how much real-world usage does it get?
  • Robustness (R_rob) — does it handle edge cases gracefully?
  • Efficiency — latency and resource cost

Evaluation is automated by the protocol — no human judges. The fittest survive and gain Reputation; the rest are gradually eliminated. It's biological natural selection applied to software capabilities.

What is a Binding? How does an AI IDE (CC/Cursor) relate to Rotifer?

A Binding is the execution environment for Genes — the protocol doesn't care where a Gene runs, only that it conforms to the interface standard. There are currently three Bindings: Local (CLI), Cloud (Supabase), and Web3 (on-chain).

AI IDEs (Cursor, Claude Code, Windsurf, etc.) are a special type of Local Binding that plays two roles simultaneously:

  • Growth Environment — Agents express Genes, execute tasks, and accumulate data here
  • Gene Incubator — creators build, debug, and test new Genes here, then publish them to the Arena

Not every Binding is an incubator (Cloud Binding only runs, it doesn't create), but IDE Bindings naturally serve both roles — they are where Genes are born and where they run.

What is Native / Hybrid / Wrapped?

Every Gene has a fidelity level that determines how it executes:

  • Native — has an executable express() function, compiles to WASM, runs in a sandbox with no network access. Best for deterministic computation (grammar checking, data transforms, scoring).
  • Hybrid — runs in a sandbox but can make controlled network calls to explicitly declared allowedDomains. Best for capabilities that need external APIs (LLM calls, search APIs).
  • Wrapped — lightweight metadata wrapper, serves as an AI prompt template for tasks requiring LLM reasoning (creative writing, architecture design).

All three participate in the ecosystem. Native and Hybrid Genes compete in full Arena fitness evaluations; Wrapped Genes are ranked on usage and stability only.

What is the URAA five-layer architecture?

URAA (Universal Rotifer Autonomous Architecture) separates the protocol into five immutable layers, each modeled after a biological system:

LayerRoleBiological Analogy
L0 KernelImmutable trust anchor — security constraints no other layer can overrideGenetic code
L1 SynthesisWASM sandbox execution, IR compilation, resource meteringProtein synthesis
L2 CalibrationMulti-stage gene validation (static analysis → sandbox → controlled trial)Immune system (thymic selection)
L3 CompetitionArena fitness ranking + horizontal gene transfer between agentsNatural selection + HGT
L4 Collective ImmunityNetwork-wide threat detection, defense sharing, species memoryHerd immunity

Each layer communicates only through standardized interfaces. This is what makes Rotifer a protocol, not just a framework — the layered architecture is environment-independent and carries formal safety guarantees across all bindings.

What is Gene Composition Algebra?

Rotifer provides a formal algebraic system for composing simple genes into complex behaviors — with type safety, error propagation, and fitness inheritance:

OperatorMeaningExample
Seq(A, B, C)Sequential — output of A feeds into B, then CSearch → Summarize → Translate
Par(A, B)Parallel — run A and B concurrently, collect all resultsQuery 3 search providers simultaneously
Cond(p, T, F)Conditional — choose gene based on runtime predicateLong query → deep research; short → quick search
Try(P, F)Fallback — if primary fails, run fallbackPremium API → free API

This is a key differentiator from tool registries: compositions are type-checked at compile time, incompatible schemas produce errors before execution, and composed genes inherit fitness from their components. The Arena evaluates compositions as a whole.

How does cross-binding portability work?

Genes compile to Rotifer IR — an intermediate representation built on WASM with protocol-specific custom sections (phenotype, constraints, metering). This IR is to genes what LLVM IR is to programs:

  • Write once — develop a gene in any environment (your local IDE, cloud, etc.)
  • Compile oncerotifer compile produces a universal IR artifact
  • Run anywhere — the same IR executes on Local, Cloud, Web3, or Edge bindings

The critical property is the Constitutional Unity Invariant: any L0 safety constraint declared in any binding is preserved through compilation, transmission, and re-compilation. No binding can weaken a constitutional constraint. This is what makes cross-binding portability safe, not just convenient.

Why is the fitness model F(g) multiplicative?

The fitness function uses a multiplicative model, not a weighted average:

F(g) = [S_r · ln(1 + C_util) · (1 + R_rob)] / [L · Resource_Cost]

This means any single zero-valued factor drives the entire score to zero. A gene with 0% success rate always scores zero — no matter how fast or efficient it is. This prevents weak dimensions from being masked by strong ones.

This is distinct from the Gene Reputation Score R(g), which uses a weighted average — see the dedicated question below.

What's the relationship between Gene, Agent, and Genome?

Three levels of abstraction, each building on the previous:

ConceptWhat it isAnalogy
GeneAn atomic capability — one function that does one thingA single gene in DNA
GenomeAn ordered set of Genes — the "recipe" for what an Agent can doA complete chromosome
AgentThe living organism — carries a Genome, decides execution order, interacts with the worldThe organism itself

In practice: you create Genes individually (rotifer init), then assemble them into an Agent (rotifer agent create --genes a b c). The Genome is defined implicitly — you don't manage it as a separate file. Genes are published independently; Agents are local compositions.

How is a Gene's reputation score calculated?

Gene reputation uses phase-based dynamic weights:

R(g) = W_arena × Arena + W_usage × Usage + W_stability × Stability
  • W0 Cold-start — 0.70 Arena + 0.05 Usage + 0.25 Stability
  • W1 Normal — 0.60 Arena + 0.20 Usage + 0.20 Stability
  • W2 Mature — 0.50 Arena + 0.30 Usage + 0.20 Stability

This is a different metric from fitness F(g) (multiplicative model where any zero-valued factor drives the score to zero). Reputation measures "long-term trustworthiness"; fitness measures "how good right now".

Creating & Publishing

Which domains benefit most from upgrading to Native Gene?

Decision framework — if 3+ are "yes", go Native:

1Can input/output be strictly defined by a Schema?
2Does a deterministic "correct answer" exist?
3Can computation complete in a sandbox with no network?
4Is performance (latency, throughput) a meaningful competition axis?

High-value Native domains (far beyond current catalog):

Code analysisAST parsing · complexity metrics · dead code detection · dependency graphs · lint rules
Data transformationCSV↔JSON · Markdown↔HTML · YAML↔TOML · Protobuf serialization · citation formatting
Text / NLPGrammar checking · readability scoring · keyword extraction · tokenization · text statistics
Security & complianceRegex vulnerability scanning · GDPR field detection · license compatibility · config auditing (Dockerfile / K8s / Terraform)
Math & statisticsRegression analysis · matrix operations · feature engineering · financial calculations (interest rates, risk scoring)
Media processingImage resizing · format conversion · watermarking · audio normalization · thumbnail generation
Encoding / cryptoHashing · signature verification · Base64/hex conversion · data integrity checks
ObservabilityLog parsing · anomaly detection · metric aggregation · structured log generation
ValidationOpenAPI / JSON Schema conformance · email/URL format checks · deduplication · outlier filtering
Domain-specificBioinformatics (sequence alignment) · GIS (coordinate conversion, geofencing) · IoT (protocol decoding)

Keep as Wrapped (these rely on LLM reasoning, not deterministic algorithms):

  • Creative writing, brainstorming, architecture design, product management, strategic planning
  • Anything where "good" is subjective and human judgment defines quality
How is a Gene different from a template or data file?

A Gene is an executable function, not static data. Every Gene must have an express(input) function — it takes input, runs logic, and returns structured output.

// ❌ This is NOT a Gene — it's just data
{ name: "anchoring-effect", template: "Was $2999, now only $99" }

// ✅ This IS a Gene — it has input, processing, output
export async function express(input) {
  const analysis = analyzeHooks(input.text);
  return { hooks: analysis.detected, score: analysis.effectiveness };
}

If your "capability" is just a text template, it should be a data file inside a Gene (e.g. patterns.json), consumed by the express() function as a rule engine input.

How many Genes should I create per project?

Follow the Gene axiom of functional cohesion — one Gene solves one atomic problem.

Rule of thumb: if two "capabilities" have identical input/output schemas, they are not two Genes — they're two strategy parameters of the same Gene.

// ❌ 50 templates = 50 Genes (violates functional cohesion)
// ✅ 50 templates = 1 Gene + 50 rule data entries

Typical split: 5–6 functionally distinct Genes (analyze, score, generate, rewrite, recommend, filter) are more valuable than 50 structurally identical ones.

Should I choose Native, Hybrid, or Wrapped?
FidelityMeaningUse When
NativeCompiles to WASM, sandbox execution, no networkPure text analysis, scoring, pattern matching, data transforms
HybridSandbox + controlled network calls (must declare allowedDomains)LLM API calls, search APIs, anything requiring network
WrappedLightweight wrapper, external API drivenQuick prototypes, pure prompt instructions

Quick rule: No network → Native. Needs network → Hybrid. Just get it running → Wrapped. See the Hybrid Gene Development Guide for details.

How do I enter the Arena?

One command:

rotifer arena submit my-gene

Once submitted, your Gene competes head-to-head against other Genes in the same domain on fitness metrics. Use rotifer arena list to view rankings and rotifer arena watch for real-time monitoring. See Arena Commands for details.

How do I migrate an MCP Tool or Skill to a Gene?

Migration is a progressive enhancement, not a rewrite. Two commands handle everything:

rotifer scan --skills       # Scan existing Skills, assess migration feasibility
rotifer wrap --from-skill   # Auto-convert to Gene in one command

Your core business logic stays the same:

  • inputSchema / outputSchema maps directly to Gene Phenotype
  • Workflow / Chain maps to Genome DataFlowGraph

See the Skill Import Guide for details.

Getting Started

How do I install Rotifer?

Option A — Terminal:

npm install -g @rotifer/playground
rotifer init my-project
cd my-project
rotifer hello

Want to preview curated templates first? Run rotifer hello --list-templates.

Option B — Paste this into your AI IDE:

Install the Rotifer Protocol CLI globally (npm install -g @rotifer/playground). Then initialize this project with "rotifer init", run "rotifer hello --list-templates", choose the best preset Agent for this repo, and show me the result.

See the Getting Started guide for a full walkthrough.

How to use Rotifer in your AI IDE?

Each card contains a ready-to-paste prompt. Copy it, paste into your IDE's chat, and the AI handles the rest. Replace grammar-checker with any name from the catalog.

International IDEs

Cursor .cursor/skills/
Install Rotifer "grammar-checker": run "rotifer install grammar-checker", then copy its SKILL.md into .cursor/skills/grammar-checker/SKILL.md so it becomes an Agent Skill I can invoke with @grammar-checker.
Windsurf .windsurfrules
Install Rotifer "grammar-checker": run "rotifer install grammar-checker", read its SKILL.md content, and append it to the project's .windsurfrules file as a new rule block.
GitHub Copilot .github/copilot-instructions.md
Install Rotifer "grammar-checker": run "rotifer install grammar-checker", read its SKILL.md, and append the content to .github/copilot-instructions.md as custom instructions.
Cline .clinerules
Install Rotifer "grammar-checker": run "rotifer install grammar-checker", read its SKILL.md, and add the content to .clinerules in the project root.
Aider .aider.conf.yml
Install Rotifer "grammar-checker": run "rotifer install grammar-checker", then add its SKILL.md path to .aider.conf.yml under the read: key so it's loaded as reference context.
Continue.dev .continue/config.json
Install Rotifer "grammar-checker": run "rotifer install grammar-checker", then register its SKILL.md as a docs context provider in .continue/config.json.
Codex (OpenAI) .codex/skills/
Install Rotifer "grammar-checker": run "rotifer install grammar-checker", then copy its SKILL.md to .codex/skills/grammar-checker/SKILL.md.
Claude Code CLAUDE.md
Install Rotifer "grammar-checker": run "rotifer install grammar-checker", read its SKILL.md and append the content to the project's CLAUDE.md as project knowledge.
Kiro (AWS) .kiro/
Install Rotifer "grammar-checker": run "rotifer install grammar-checker", then copy its SKILL.md to .kiro/skills/grammar-checker/SKILL.md.

China IDEs

Trae (ByteDance) .trae/rules/
Install Rotifer "grammar-checker": run "rotifer install grammar-checker", then copy its SKILL.md to .trae/rules/grammar-checker.md.
TONGYI Lingma (Alibaba) IDE Settings
Install Rotifer "grammar-checker": run "rotifer install grammar-checker", read its SKILL.md content, and add it to the TONGYI Lingma custom prompt settings.
CodeBuddy (Tencent) .codebuddy/
Install Rotifer "grammar-checker": run "rotifer install grammar-checker", then copy its SKILL.md to .codebuddy/skills/grammar-checker/SKILL.md.
Qoder .qoder/
Install Rotifer "grammar-checker": run "rotifer install grammar-checker", then copy its SKILL.md to .qoder/skills/grammar-checker/SKILL.md.
Is Rotifer free?

Yes, completely free and open source. The CLI, runtime, and all 68+ Genes in the catalog are free to use. There are no usage fees, no API keys required for local execution, and no premium tiers.

The only costs are ones you bring yourself — if a Hybrid Gene calls a paid external API (like an LLM provider), you pay that provider directly. Rotifer itself charges nothing.

Is it safe to run Gene code?

Yes — safety is enforced at the protocol level, not left to individual implementations:

  • WASM Sandbox — Native Genes execute inside a WebAssembly sandbox with no filesystem, network, or system access by default
  • L0 Immutable Constraints — security rules that no layer of the protocol can override or weaken
  • Resource Metering — CPU and memory limits prevent runaway execution
  • Hybrid Allowlists — Genes that need network access must explicitly declare allowedDomains; all other network calls are blocked

Every Gene also has a security score V(g) computed through static analysis and sandbox testing before it enters the Arena.

Where can I find Genes to use?

Three ways to discover Genes:

  • Gene Catalog — browse all published Genes with filtering by domain, fidelity, and reputation
  • CLI — run rotifer search <keyword> to find Genes from the terminal
  • Gene Marketplace — visual marketplace with detailed Gene profiles and Arena rankings
Where can I get help?
  • GitHub Issues — bug reports, feature requests, and technical questions
  • Creator FAQ — detailed technical answers for CLI usage, Gene development, and troubleshooting
  • Discord — real-time community chat