Skip to content
← All posts

AI / Agent Systems

Agent = Model + Harness: Layering Ruflo on Top of Claude Code

Formerly Claude Flow, Ruflo targets the layer around the model: swarm coordination, persistent vector memory, 100+ agents, and cross-machine federation. I went through the 66k-star project — and its claims.

Published July 29, 202613 min read

Ruflo’s thesis fits in one line: “Agent = Model + Harness.” What determines an agent’s quality isn’t only the model’s intelligence, but the tooling, memory, control loop, and sandbox around it.

That sounds unremarkable, but it points at something real. Working with Claude Code, even with a good enough model you hit these walls: memory disappears when the session closes, two agents can’t share the same context, and you decide which agent gets which task every single time. Ruflo positions itself as exactly that missing layer — a “meta-harness.”

Project facts

The project is built by ruvnet (rUv) and was previously known as Claude Flow. The developer explains the rename directly: “Ru” refers to rUv, “flo” to late-night flow state. Underneath sit the Cognitum.One architecture, a Rust-based engine, an embedding layer, and a plugin system.

AttributeValue
Authorruvnet (rUv)
Former nameClaude Flow
Stars~66,600
Forks~7,900
Primary languageTypeScript (Rust on the engine side)
LicenseMIT
CreatedJune 2025
Target toolsClaude Code, Codex, Hermes

Figures as of July 2026. The repo gets commits daily — and that pace has a cost, which I’ll get to below.

Architecture: where does a request go?

The documented flow works like this:

  1. 01

    The request enters Ruflo through the CLI or MCP.

  2. 02

    The Router analyzes the task and decides which agent or group of agents fits.

  3. 03

    The swarm layer picks a topology and, where needed, runs consensus between agents.

  4. 04

    Specialist agents do the work.

  5. 05

    Results and traces are written to memory.

  6. 06

    The memory layer feeds back into the Router — this is where the learning loop closes.

As a layered stack, six levels are described: the Claude Code / CLI entry point, orchestration (MCP server, router, 27 hooks), swarm coordination (Queen agent, topology selection, consensus), 100+ specialist agents, memory and learning (AgentDB, HNSW, SONA, ReasoningBank), and LLM providers at the bottom (Claude, GPT, Gemini, Cohere, Ollama).

Claude Code alone vs. with Ruflo

The repo makes this comparison itself, and it’s the clearest picture of what the project claims:

CapabilityAloneWith Ruflo
Agent collaborationIsolated, no shared contextSwarms with shared memory and consensus
CoordinationManualQueen-led hierarchy (Raft, Byzantine, Gossip)
MemorySession-onlyHNSW vector memory, sub-millisecond retrieval
LearningStaticSONA pattern learning
Task routingManualAutomatic routing
Background workersNone12 auto-triggered workers
LLM providersOne provider5 providers with failover
SecurityStandardCVE hardening + AIDefence

The memory and learning layer

This is the project’s most concrete technical piece. A vector store called AgentDB is indexed with HNSW, making what agents learn from past work persistent.

  • AgentDB + HNSW: memory retrieval via approximate nearest neighbor search. The repo reports 3.2–4.7× speedups over brute force at N=5,000, 1.9× at N=20,000, and recall@10 near 0.99.
  • SONA: a neural pattern-learning layer aimed at recognizing and reusing successful flows.
  • ReasoningBank: a store where reasoning traces accumulate.
  • Trajectory learning: learning from the path the agent took, not just the outcome.
  • GOAP A* planning: planning a goal across state space with preconditions and effects.

Federation: “Slack for agents”

This is the most ambitious feature. The goal is for agents on different machines or in different organizations to discover each other, authenticate, and exchange work. The security model is built on zero trust:

LayerHow it works
IdentitymTLS + ed25519 challenge-response. The repo says “no API keys, no shared secrets”
Remote peer trustNew peers start untrusted; raising a trust score requires history, lowering it is immediate
Trust formula0.4×success + 0.2×uptime + 0.2×threat + 0.2×integrity
Data leakage14-type PII detection; BLOCK, REDACT, HASH, or PASS depending on trust level
ComplianceHIPAA, SOC2, and GDPR modes
NetworkOptional WireGuard mesh layer

MetaHarness and ruflo eject

Two features caught my attention. MetaHarness grades a project’s agent setup from 1 to 100, scans tool configurations, and snapshots the project to catch regressions. And ruflo eject converts the project into a standalone toolkit — a way out that avoids lock-in.

The plugin surface is broad too: around 35 plugins covering swarm, memory, RAG, test generation, security auditing, observability, cost tracking, and methodologies like ADR and SPARC.

Installation: two paths, very different scope

This is the most critical practical detail, and the repo tracks it in an open issue. The two install paths do not give you the same thing:

Claude Code pluginCLI install
What you getSlash commands, some skills, agent definitions98 agents, 60+ commands, 30 skills, MCP server, hooks, daemon
Workspace filesNone.claude/, .claude-flow/, CLAUDE.md, helpers, settings
MCP server registeredNoYes
HooksNoYes

Commands

  • Plugin path: /plugin marketplace add ruvnet/ruflo then /plugin install ruflo-core@ruflo
  • CLI, all platforms: npx ruflo@latest init wizard (the safest path, including Windows)
  • CLI, global install: npm install -g ruflo@latest
  • CLI, macOS/Linux/WSL: curl -fsSL https://cdn.jsdelivr.net/gh/ruvnet/ruflo@main/scripts/install.sh | bash
  • Registering the MCP server with Claude Code: claude mcp add ruflo -- npx ruflo@latest mcp start
  • Verifying the install: ruflo verify

There’s a Windows trap: the curl install requires a POSIX shell. If you hit a “bash is not recognized” error, use the npx path instead — both converge on the same init flow.

Web interfaces

There are two hosted interfaces. flo.ruv.io offers multi-model chat with MCP tool calling; six models arrive via OpenRouter and you can connect any OpenAI-compatible endpoint (vLLM, Ollama, LM Studio, Together, Groq). It’s self-hostable via Docker with embedded MongoDB. goal.ruv.io is the GOAP planner’s front end: it converts a plain-English goal into an A* plan, visualizes the plan tree, and replans after failures.

Things to be careful about

To assess this repo honestly, a few caveats are needed:

  • The performance and accuracy figures are the repo’s own claims. There’s no independent verification; the benchmarks were produced in the developer’s environment.
  • The docs contain internal inconsistencies: the plugin count appears as both 33+21 and 35, and the agent count as both “100+” and 98.
  • The surface area is enormous. Swarm, federation, vector memory, GOAP planning, a trading plugin, IoT — all in one project. Expecting documentation to keep up with that pace isn’t realistic.
  • Fast development cuts both ways: features ship quickly, but so does breaking-change risk. Open issues number over 500.
  • The old name is still in circulation: some command examples are still written with npx claude-flow@latest.

Why it’s still worth following

Because it asks the right question. The model side keeps improving quickly, and the difference in agent quality increasingly comes from the harness: is memory persistent, do agents share context, is routing intelligent, where do hard-to-undo actions stop for approval. Ruflo attempts an answer to all of these and leaves those answers readable as open source.

I follow this project as a source of ideas rather than as a product. Swarm topologies, trust scoring, and MetaHarness’s approach to grading a setup all made me think about things I hadn’t considered while building my own agent infrastructure.