# ExAgent v0.4.1 - Table of Contents

An Elixir library for building multi-agent LLM applications.

## guides

- [ExAgent](readme.md)
- [CHANGELOG](changelog.md)
- [NOTICE](notice.md)
- [LICENSE](license.md)

## Modules

- [ExAgent.Services.JinaRerankerService](ExAgent.Services.JinaRerankerService.md): HTTP service for a self-hosted `jina-reranker-m0` server.
- [ExAgent.Services.JinaV5EmbedService](ExAgent.Services.JinaV5EmbedService.md): HTTP service for a self-hosted Jina embeddings v5 server.

- Core API
  - [ExAgent](ExAgent.md): Public API for the ExAgent multi-agent LLM library.

- Providers &amp; roles
  - [ExAgent.Provider](ExAgent.Provider.md): Behaviour for LLM providers.
  - [ExAgent.Providers.Gemini](ExAgent.Providers.Gemini.md): Google Gemini LLM provider.
  - [ExAgent.Providers.JinaRerankerM0](ExAgent.Providers.JinaRerankerM0.md): `jina-reranker-m0` - a **reranking-only** provider for a self-hosted server.
  - [ExAgent.Providers.JinaV5](ExAgent.Providers.JinaV5.md): Jina embeddings v5 - an **embeddings-only** provider for a self-hosted server.
  - [ExAgent.Providers.OpenAI](ExAgent.Providers.OpenAI.md): OpenAI LLM provider.
  - [ExAgent.Providers.OpenAICompatible](ExAgent.Providers.OpenAICompatible.md): Provider for any endpoint speaking the OpenAI chat-completions dialect.
  - [ExAgent.Roles](ExAgent.Roles.md): Resolves provider structs from role names declared in application config.

- Conversations
  - [ExAgent.Agent](ExAgent.Agent.md): GenServer that manages a single LLM agent.
  - [ExAgent.Chunk](ExAgent.Chunk.md): One event in a streamed response.
  - [ExAgent.Context](ExAgent.Context.md): Portable conversation state shared across agents and patterns.
  - [ExAgent.Error](ExAgent.Error.md): Normalized error returned by every provider operation.
  - [ExAgent.Message](ExAgent.Message.md): Normalized message struct used across all LLM providers.
  - [ExAgent.Response](ExAgent.Response.md): A completed assistant turn.
  - [ExAgent.Skill](ExAgent.Skill.md): Loadable skill definition for progressive disclosure pattern.
  - [ExAgent.Telemetry](ExAgent.Telemetry.md): `:telemetry` events emitted around every provider call.
  - [ExAgent.Tool](ExAgent.Tool.md): Normalized tool definition for LLM function-calling.

- Files
  - [ExAgent.Attachment](ExAgent.Attachment.md): A normalized file attachment carried on `ExAgent.Message`.
  - [ExAgent.FileRef](ExAgent.FileRef.md): Reference to a file previously uploaded to an LLM provider.
  - [ExAgent.Source](ExAgent.Source.md): Pure helpers for reasoning about attachment sources.
  - [ExAgent.UploadCache](ExAgent.UploadCache.md): Caches provider file uploads so the same bytes are not uploaded twice.

- Structured output
  - [ExAgent.Schema](ExAgent.Schema.md): Turns an `Ecto` embedded schema into a JSON Schema, and provider JSON back into
a struct.

- Embeddings
  - [ExAgent.Embeddings](ExAgent.Embeddings.md): Result of an embedding request, with the provenance needed to use it safely.

- Reranking
  - [ExAgent.Reranking](ExAgent.Reranking.md): Result of a rerank request: documents reordered by relevance to a query.

- Multi-agent patterns
  - [ExAgent.Patterns.Chain](ExAgent.Patterns.Chain.md): Sequential steps, each working on what the last one produced.
  - [ExAgent.Patterns.Consensus](ExAgent.Patterns.Consensus.md): Ask the same question several times, then go with the answer that keeps coming up.
  - [ExAgent.Patterns.Handoff](ExAgent.Patterns.Handoff.md): State-driven transitions pattern.
  - [ExAgent.Patterns.MapReduce](ExAgent.Patterns.MapReduce.md): Split one big input into pieces, process them in parallel, combine the results.
  - [ExAgent.Patterns.Reflection](ExAgent.Patterns.Reflection.md): Draft, critique, revise - until a reviewer signs off or the budget runs out.
  - [ExAgent.Patterns.Router](ExAgent.Patterns.Router.md): Parallel dispatch and synthesis pattern.
  - [ExAgent.Patterns.Skills](ExAgent.Patterns.Skills.md): Progressive disclosure pattern.
  - [ExAgent.Patterns.Subagents](ExAgent.Patterns.Subagents.md): Centralized orchestration pattern.

- Internals
  - [ExAgent.AgentDynamicSupervisor](ExAgent.AgentDynamicSupervisor.md): Dynamic supervisor for managing agent lifecycle at runtime.
  - [ExAgent.AgentSupervisor](ExAgent.AgentSupervisor.md): Top-level supervisor for the ExAgent OTP tree.
  - [ExAgent.SSE](ExAgent.SSE.md): Server-Sent Events framing.
  - [ExAgent.Services.GeminiEmbedService](ExAgent.Services.GeminiEmbedService.md): HTTP service for the Gemini embeddings API.
  - [ExAgent.Services.GeminiService](ExAgent.Services.GeminiService.md): HTTP service for Google Gemini API.
  - [ExAgent.Services.GeminiUploadService](ExAgent.Services.GeminiUploadService.md): HTTP service for uploading files to the Gemini Files API.
  - [ExAgent.Services.OpenAICompatibleService](ExAgent.Services.OpenAICompatibleService.md): HTTP service for OpenAI-compatible chat endpoints (vLLM, OpenRouter, Together,
Groq, ...).
  - [ExAgent.Services.OpenAIEmbedService](ExAgent.Services.OpenAIEmbedService.md): HTTP service for the OpenAI embeddings API.
  - [ExAgent.Services.OpenAIService](ExAgent.Services.OpenAIService.md): HTTP service for OpenAI chat completions API.
  - [ExAgent.Services.OpenAIUploadService](ExAgent.Services.OpenAIUploadService.md): HTTP service for uploading files to the OpenAI Files API.
  - [ExAgent.Services.Streaming](ExAgent.Services.Streaming.md): Shared SSE stream transport for LLM providers.

