bosun-ai/swiftide

Fast, streaming indexing, query, and agentic LLM applications in Rust

What it solves

Swiftide is a framework for building LLM applications in Rust, providing a structured way to manage the complexity of autonomous agents, complex orchestration workflows, and retrieval-augmented generation (RAG) pipelines.

How it works

It provides three core primitives for different AI interaction models:

  • Agent Harness: Manages the loop of LLM calls, tool execution, and lifecycle hooks. It supports human-in-the-loop approval, streaming responses, and integration with Model Context Protocol (MCP) servers.
  • Typed Task Graphs: An orchestration layer where workflows are defined as graphs of typed nodes. This allows for strong build-time typing of inputs and outputs, supporting parallel execution (fan-out) and joining results.
  • RAG Pipelines: Composable, streaming pipelines for indexing and querying. These pipelines handle the flow of data from loaders (files, scraping) through transformers (chunking, embedding) to storage backends (vector databases).

Who it’s for

Developers who want to build high-performance, type-safe LLM applications in Rust, specifically those needing complex agentic workflows or scalable RAG indexing pipelines.

Highlights

  • Type-Safe Orchestration: Uses typed task graphs to ensure data consistency across complex AI workflows.
  • Flexible Tooling: Supports local Rust functions, custom tool implementations, and MCP servers.
  • Human-in-the-Loop: Built-in support for pausing and resuming tasks or agents for human approval.
  • Extensive Integrations: Compatible with a wide range of LLM providers (OpenAI, Anthropic, Gemini, etc.) and vector databases (Qdrant, Redis, LanceDB, etc.).
  • Observability: Integrated support for tracing, metrics, and Langfuse for execution tracing.