Back to Rivet

AI Agent with Durable Streams (Experimental)

examples/experimental-durable-streams-ai-agent/README.md

2.2.12.5 KB
Original Source

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.

Getting Started

sh
git clone https://github.com/rivet-dev/rivet.git
cd rivet/examples/experimental-durable-streams-ai-agent
npm install
npm run dev

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:
    sh
    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

License

MIT