Skip to content

Reactive Agents

Every capability is an independent, composable layer. 17 packages. One command. Type-safe from prompt to production with Effect-TS.
17Packages
900+Tests
5LLM Providers
5Reasoning Strategies
10Execution Phases

Most agent frameworks give you a chat loop and call it a day. Reactive Agents gives you a 10-phase execution engine, 5 reasoning strategies, 4-tier memory, A2A protocol for agent interop, and 14 composable layers — all fully typed, all independently toggleable.

Type-Safe from End to End

Every agent, tool, memory entry, and LLM call is validated by Effect-TS schemas. Catch errors at compile time. Runtime validation at every service boundary. No any leaking through your agent stack.

Composable Layer Architecture

Enable exactly the capabilities you need. Memory without guardrails? Just reasoning and tools? Full production stack? Each layer is an independent Effect Layer with explicit dependencies — no hidden coupling, no wasted resources.

Observable Execution Engine

Every agent task flows through a deterministic 10-phase lifecycle with before/after/error hooks. When observability is enabled, every phase emits spans and metrics. You see exactly what your agent decided and why.

5 Reasoning Strategies

ReAct for tool use. Reflexion for self-improvement. Plan-Execute for structured work. Tree-of-Thought for creative exploration. Adaptive to auto-select the best strategy. Register your own strategies too.

Multi-Agent & A2A Protocol

Build teams of specialized agents that collaborate via the A2A (Agent-to-Agent) protocol. Dynamic agent spawning, agent-as-tool composition, SSE streaming, and structured JSON-RPC communication. Scale from single agents to orchestrated multi-agent workflows.

40+ LLM Providers

Native support for Anthropic, OpenAI, Google Gemini, Ollama, and 35+ more via LiteLLM. Mix providers per-agent, route by cost/capability, or use multiple models in parallel. Fallback chains and A/B testing built in.


import { ReactiveAgents } from "reactive-agents";
const agent = await ReactiveAgents.create()
.withName("assistant")
.withProvider("anthropic")
.withModel("claude-sonnet-4-20250514")
.build();
const result = await agent.run("Explain quantum entanglement");
console.log(result.output);

vs. LangChain / LlamaIndex

Those frameworks are Python-first, dynamically typed, and monolithic. Reactive Agents is TypeScript-native, statically typed with Effect-TS schemas, and fully modular — you only load what you use.

vs. Vercel AI SDK

Vercel AI SDK handles streaming and tool calling well but stops there. Reactive Agents adds reasoning strategies, persistent memory, guardrails, verification, cost routing, observability, and multi-agent orchestration.

vs. AutoGen / CrewAI

Multi-agent frameworks that lack type safety, composable architecture, or fine-grained observability. Reactive Agents gives you all three plus a 10-phase execution engine you can hook into at any point.

vs. Building From Scratch

You get 17 production-ready packages with 900+ tests, covering memory, reasoning, tools, A2A protocol, safety, cost, identity, and orchestration. Focus on your agent’s logic, not infrastructure.


ReactiveAgentBuilder
-> createRuntime()
-> CoreServices (EventBus, AgentService, TaskService)
-> LLMProvider (Anthropic, OpenAI, Gemini, Ollama, LiteLLM 40+)
-> Memory (Working, Semantic, Episodic, Procedural)
-> Reasoning (ReAct, Reflexion, Plan-Execute, ToT, Adaptive)
-> Tools (Registry, Sandbox, MCP Client)
-> A2A (Agent Cards, JSON-RPC, SSE Streaming)
-> Guardrails (Injection, PII, Toxicity, Contracts)
-> Verification (Semantic Entropy, Fact Decomposition)
-> Cost (Complexity Router, Budget Enforcer)
-> Identity (Certificates, RBAC)
-> Observability (Tracing, Metrics, Structured Logging)
-> Interaction (5 Modes, Checkpoints, Preference Learning)
-> Orchestration (Multi-Agent Workflows)
-> Prompts (Template Engine, Built-in Library)
-> ExecutionEngine (10-phase lifecycle with hooks)
Terminal window
bun add reactive-agents effect

Or install individual packages for minimal bundle size. See installation guide →