Cloudflare Workers × Durable Objects

EDGE-FIRST
AI AGENTS


Build stateful, streaming agents backed by Durable Objects. No server. No Redis. No cold starts.

5 PHASES
3 MEMORY TIERS
EDGE-NATIVE
TypeScript
1import { createAgent } from 'honidev'
2
3export const agent = createAgent({
4 name: 'support-bot',
5 model: 'claude-sonnet-4-20250514',
6 memory: 'tiered', // DO + D1 + Vectorize
7
8 tools: {
9 lookupOrder: {
10 description: 'Look up a customer order',
11 input: z.object({ orderId: z.string() }),
12 async run({ orderId }) {
13 return db.query(`SELECT * FROM orders WHERE id = ?`, orderId)
14 }
15 }
16 }
17})

MASTRA IS GREAT.
IT JUST DOESN'T
RUN ON THE EDGE.

Honi is built for the infrastructure you actually deploy on.


BUILT DIFFERENT FOR THE EDGE

DO-Backed State

Every agent is a Durable Object. Persistent state, zero cold starts, global by default.

True Edge

Not "edge-compatible". Built from scratch to run on Cloudflare Workers.

Tiered Memory

Working (DO), Episodic (D1), Semantic (Vectorize), Graph (edgraph). Four tiers, zero glue code.

Graph Memory

Entity and relationship recall via edgraph — an edge-native property graph on Cloudflare DOs. BFS/DFS traversal at zero per-hop cost. Tools write directly to the graph via ctx.graph.

Type-safe Tools

Zod schemas, auto-generated JSON for LLM tool calling. Full TypeScript inference.

Workflows

Multi-step pipelines via CF Workflows. Checkpointed retries built in.

Any LLM

Anthropic, OpenAI, Workers AI. Switch model with one string.

MCP Server

Every agent exposes a /mcp endpoint. Connect from Claude Desktop, Cursor, or any MCP client — zero config.

Multi-Agent

Route messages and call tools across agents via DO stubs. Build orchestrator patterns without leaving Cloudflare's network.

HOW HONI STACKS UP

HoniMastraLangChain@cf/agents
CF Workers native
DO-backed state
Built-in memory
TypeScript-first
Edge distribution
MCP server built-in
Graph memory (edgraph)
Multi-agent orchestration
Opinionated conventions

UP AND RUNNING IN SECONDS

1

Install

npm install honidev
2

Create Agent

Define your agent with createAgent() — model, tools, memory, and instructions.

3

Deploy

Ship to 300+ Cloudflare locations with a single command. Global by default.

TypeScript
1import { createAgent } from 'honidev'
2
3export const agent = createAgent({
4 name: 'my-agent',
5 model: 'claude-sonnet-4-20250514',
6 instructions: 'You are a helpful assistant.'
7})