Reactive Agents
Reactive Agents is a TypeScript framework for building agent loops that are transparent, reliable across model tiers, composable, and accountable. It solves the problems of opaque execution, model lock-in, and unverifiable outputs by providing a deterministic 12-phase harness with hooks, model-adaptive profiles, and signed receipts. It is for developers who need fine-grained control over AI agent behavior and want to run the same code on local and cloud models.
✨ Key features
- 12-phase execution engine with before/after/error hooks
- 8 LLM providers including local Ollama and cloud APIs
- 8 reasoning strategies: ReAct, Reflexion, Plan-Execute, etc.
- Opt-in layers via .with() builder for memory, guardrails, cost routing
- Signed receipt with claim-evidence record and verdict per run
- Durable crash-resume with on-disk checkpoints
🎯 Use cases
- Build a research agent that investigates incidents and calls tools
- Create multi-step agents that survive process crashes mid-run
- Deploy the same agent code on local 4B models and frontier APIs
- Implement guardrails and cost controls for production LLM apps
- Run agent pipelines with functional combinators like parallel and race
📦 Installation
🧰 Requirements: Requires Bun runtime (for bun:sqlite and bun test). No API keys needed for local models, but cloud providers require their own keys.
bun add @reactive-agents/core
(Assuming Bun is installed. See README for full setup.)
🚀 Usage
import { ReactiveAgents } from '@reactive-agents/core';
const agent = ReactiveAgents.quick(); // resolves provider/model from env
const result = await agent.run('Investigate the incident and recommend a fix.');
console.log(result.receipt); // signed claim-evidence record
⚠️ Good to know
Some features are experimental or opt-in (e.g., Code-Action strategy, .withAdaptiveHarness()) and not yet validated for default-on; the README notes that certain features are not yet lift-gated.
❓ FAQ
What runtimes are supported?
The framework is built on Effect-TS and uses bun:sqlite, so it requires Bun as the runtime.
Can I use local models like Ollama?
Yes, Ollama is one of the 8 supported providers, and the same code works on local 4B models and cloud models.
How do I enable extra features like memory or guardrails?
Features are opt-in via the builder pattern; you add them with .with*() calls, e.g., .withMemory() or .withGuardrails().
What is the receipt?
Every run returns a signed receipt containing a claim-evidence record with a verdict and confidence, providing accountability for the agent's output.
📊 Repository
🤖 Overview, features, install steps and FAQ were generated from the project's README on Sep 4, 2026. Always check the original source before running commands.