AI Agent with Durable Streams (Experimental)

AI Agent with Durable Streams (Experimental)

Example project demonstrating how to build an AI agent that communicates through durable streams for reliable message delivery and persistence.

Durable Streams Dev UI

To inspect streams and debug message flow, install and run the Durable Streams CLI:

npx durable-streams ui --url http://127.0.0.1:8787

This opens a web UI to browse streams, view messages, and monitor real-time activity. See the Durable Streams CLI documentation for more options.

Features

  • Durable message delivery: Prompts and responses flow through durable streams, ensuring reliable delivery even if components restart
  • Streaming AI responses: AI responses stream in real-time through durable streams to the frontend
  • Actor-based processing: AI agent runs as a Rivet Actor with persistent state tracking processed prompts

Prerequisites

  • Anthropic API Key (set as ANTHROPIC_API_KEY environment variable)
  • (Optional) Durable Streams Test UI for inspecting streams and debugging message flow:
    git clone https://github.com/durable-streams/durable-streams.git
    cd durable-streams/packages/test-ui
    pnpm dev
    

Implementation

The architecture uses two durable streams per conversation:

  1. Prompt Stream (/conversations/{id}/prompts): Frontend writes user messages, actor consumes them
  2. Response Stream (/conversations/{id}/responses): Actor writes AI response chunks, frontend consumes them

Key implementation details:

Resources