[{"data":1,"prerenderedAt":4},["ShallowReactive",2],{"readme:swiftide":3},"\u003Cp>\u003Ca rel=\"nofollow ugc noopener\">\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Factions\u002Fworkflow\u002Fstatus\u002Fbosun-ai\u002Fswiftide\u002Ftest.yml?style=flat-square\" alt=\"CI\" \u002F>\n\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002FcoverallsCoverage\u002Fgithub\u002Fbosun-ai\u002Fswiftide?style=flat-square\" alt=\"Coverage Status\" \u002F>\n[![Crate Badge]][Crate]\n[![Docs Badge]][API Docs]\n[![Contributors][contributors-shield]][contributors-url]\n[![Stargazers][stars-shield]][stars-url]\n\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fdiscord\u002F1257672801553354802?style=flat-square&amp;link=https%3A%2F%2Fdiscord.gg%2F3jjXYen9UY\" alt=\"Discord\" \u002F>\n[![MIT License][license-shield]][license-url]\n[![LinkedIn][linkedin-shield]][linkedin-url]\u003C\u002Fp>\n\u003Cbr \u002F>\n\u003Cdiv align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fbosun-ai\u002Fswiftide\" rel=\"nofollow ugc noopener\">\n    \u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002Fbosun-ai\u002Fswiftide\u002Fmaster\u002Fimages\u002Flogo.png\" alt=\"Swiftide logo\" width=\"190\" height=\"190\" \u002F>\n  \u003C\u002Fa>  \u003Ch1>Swiftide\u003C\u002Fh1>  \u003Cp align=\"center\">\n    Composable LLM agents and harness, typed task graphs, and streaming RAG pipelines in Rust.\n    \u003Cbr \u002F>\n    \u003Ca href=\"https:\u002F\u002Fdocs.rs\u002Fswiftide\u002Flatest\u002Fswiftide\u002F\" rel=\"nofollow ugc noopener\">\u003Cstrong>API docs\u003C\u002Fstrong>\u003C\u002Fa>\n    ·\n    \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fbosun-ai\u002Fswiftide\u002Ftree\u002Fmaster\u002Fexamples\" rel=\"nofollow ugc noopener\">\u003Cstrong>Examples\u003C\u002Fstrong>\u003C\u002Fa>\n    ·\n    \u003Ca href=\"https:\u002F\u002Fswiftide.rs\" rel=\"nofollow ugc noopener\">\u003Cstrong>Website\u003C\u002Fstrong>\u003C\u002Fa>\n    ·\n    \u003Ca href=\"https:\u002F\u002Fdiscord.gg\u002F3jjXYen9UY\" rel=\"nofollow ugc noopener\">\u003Cstrong>Discord\u003C\u002Fstrong>\u003C\u002Fa>\n  \u003C\u002Fp>\n\u003C\u002Fdiv>\u003Cp>Swiftide is an opinionated framework for building LLM applications. It gives you\nan agent harness, typed task graphs for orchestration, and streaming, composable indexing\u002Fquery\npipelines for RAG.\u003C\u002Fp>\n\u003Cdiv align=\"center\">\n    \u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002Fbosun-ai\u002Fswiftide\u002FHEAD\u002Fimages\u002Fcomposition.svg\" alt=\"Swiftide composition overview\" width=\"100%\" \u002F>\n\u003C\u002Fdiv>\u003Cdetails>\n  \u003Csummary>Table of Contents\u003C\u002Fsummary>\u003Cul>\n\u003Cli>\u003Ca href=\"#why-swiftide\" rel=\"nofollow ugc noopener\">Why Swiftide\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"#quick-start\" rel=\"nofollow ugc noopener\">Quick Start\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"#agent-harness\" rel=\"nofollow ugc noopener\">Agent Harness\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"#typed-task-graphs\" rel=\"nofollow ugc noopener\">Typed Task Graphs\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"#rag-pipelines\" rel=\"nofollow ugc noopener\">RAG Pipelines\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"#integrations\" rel=\"nofollow ugc noopener\">Integrations\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"#examples\" rel=\"nofollow ugc noopener\">Examples\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"#project-status\" rel=\"nofollow ugc noopener\">Project Status\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"#contributing\" rel=\"nofollow ugc noopener\">Contributing\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"#core-team-members\" rel=\"nofollow ugc noopener\">Core Team Members\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"#license\" rel=\"nofollow ugc noopener\">License\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fdetails>\u003Ch2>Why Swiftide\u003C\u002Fh2>\n\u003Cul>\n\u003Cli>Build agents that loop over LLM calls, tool calls, lifecycle hooks, and stop conditions.\u003C\u002Fli>\n\u003Cli>Compose prompt steps, agents, command executors, and domain-specific Rust code in typed task\ngraphs.\u003C\u002Fli>\n\u003Cli>Fan out work into parallel branches and join typed results back into one task output.\u003C\u002Fli>\n\u003Cli>Pause and resume agents or tasks for human approval, external callbacks, or persisted state.\u003C\u002Fli>\n\u003Cli>Bring tools from local Rust functions, custom \u003Ccode>Tool\u003C\u002Fcode> implementations, or MCP servers.\u003C\u002Fli>\n\u003Cli>Stream large indexing and retrieval workloads through loaders, transformers, embedders, caches,\nand storage backends.\u003C\u002Fli>\n\u003Cli>Trace agent, task, and pipeline execution with \u003Ccode>tracing\u003C\u002Fcode>, metrics, and Langfuse support.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>The core primitives provide the shared interaction model. Around them, use pipelines for data\nflows, agents for tool loops, and tasks for graphs of typed hand-offs.\u003C\u002Fp>\n\u003Ch2>Quick Start\u003C\u002Fh2>\n\u003Cp>Swiftide keeps default dependencies light. Start with the agent harness and add the integrations\nyour application needs.\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-sh\">cargo add swiftide --features swiftide-agents,openai\ncargo add anyhow\ncargo add tokio --features macros,rt-multi-thread\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>If using OpenAI, set the API key expected by the OpenAI-compatible integration:\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-sh\">export OPENAI_API_KEY=...\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch2>Agent Harness\u003C\u002Fh2>\n\u003Cp>Swiftide provides a harnass for building (semi) autonomous agents. The harnass owns message history, call an LLM, invoke tools,\nrun hooks, and stopping. Tools are pure functions and easy to add. The AgentContext abstracts over message history (in memory by default) and provides tools access to the outside world via a ToolExecutor (local by default, see also the \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fbosun-ai\u002Fswiftide-docker-executor\" rel=\"nofollow ugc noopener\">docker executor\u003C\u002Fa>).\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-rust\">use anyhow::Result;\nuse swiftide::{\n    agents,\n    chat_completion::{ToolOutput, errors::ToolError},\n    traits::AgentContext,\n};\n\n#[swiftide::tool(\n    description = \"Looks up a Swiftide concept\",\n    \n\u003C\u002Fcode>\u003C\u002Fpre>\n",1785430104636]