Skip to main content

Multi-backend, multi-modal micro-framework for AI agent development, orchestration, and deployment

Project description

avalan

The multi-backend, multi-modal micro-framework for AI agent development, orchestration, and deployment

Python versions Tests Code test coverage Last commit Release License Discord Community Google Code Wiki

Avalan is a Python SDK and CLI for building your own intelligence harness across local and hosted models. Prompts, model routing, tools, memory, workflows, tasks, and serving protocols stay explicit, so the model is a component you control rather than the whole system.

🧠 Build Your Intelligence Harness

Avalan is for teams that want the model to be one part of the system, not the system itself. It gives you the runtime harness around inference, tools, memory, orchestration, tasks, protocols, and human control.

With Avalan, you can:

  • 💻 Run local and hosted models behind one interface, with inference-time control over prompts, sampling, streaming, backends, and vendor routing.
  • 🛠️ Execute tools as first-class runtime steps, including browser automation, code, databases, shell media tools, MCP servers, and A2A agents.
  • 🔁 Compose flows where each node, edge, input, output, and review boundary is visible.
  • ✅ Package repeatable work as tasks with typed inputs, file handling, queues, durable execution, privacy settings, and schema-validated outputs.
  • 🌐 Serve your agents through OpenAI-compatible APIs, MCP, and A2A without changing the agent runtime.
  • 🔒 Add human-in-the-loop and least-privilege controls around tool execution, data access, files, and networked agent calls.

📦 Install

Avalan supports Python 3.11 through 3.14.

🍺 Homebrew (macOS)

brew install avalan-ai/avalan/avalan

🐧 Ubuntu (PPA)

sudo add-apt-repository -y ppa:avalan-ai/avalan
sudo apt update
sudo apt install -y avalan

🐍 Pip

python3 -m pip install -U "avalan[agent,server,tool,vendors]"

🛠️ From Source with Poetry

poetry install --extras "agent server tool vendors" --with test

See docs/INSTALL.md for pip extras, backend-specific dependencies, DS4 setup, and source build prerequisites.

⚡ Quickstart

💬 Call a hosted model from the CLI

Export a vendor key, then run:

export OPENAI_API_KEY=...
echo "Who are you, and who is Leo Messi?" \
    | avalan model run "ai://env:OPENAI_API_KEY@openai/gpt-4o" \
        --system "You are Aurora, a helpful assistant" \
        --max-new-tokens 100

🐍 Use the Python SDK

from asyncio import run
from os import environ
from avalan.entities import GenerationSettings, TransformerEngineSettings
from avalan.model.nlp.text.vendor.openai import OpenAIModel
from avalan.model.stream import StreamItemKind

async def main() -> None:
    api_key = environ["OPENAI_API_KEY"]
    settings = TransformerEngineSettings(access_token=api_key)

    with OpenAIModel("gpt-5-mini", settings) as model:
        async for item in await model(
            "Give me five facts about Leo Messi.",
            settings=GenerationSettings(use_async_generator=True),
        ):
            if (
                item.kind is StreamItemKind.ANSWER_DELTA
                and item.text_delta is not None
            ):
                print(item.text_delta, end="", flush=True)

run(main())

✅ Run a flow-backed task

This example requires task, PDF image conversion, agent, and vendor dependencies:

python3 -m pip install -U "avalan[agent,task,task-pdf-images,vendors]"
avalan task run docs/examples/tasks/poc_extraction/image_flow_task.toml \
    --ephemeral \
    --pdf docs/examples/tasks/poc_extraction/sample.pdf \
    --json \
    --output image.json

For task contracts, flow graphs, file conversion, queues, and schema output, see docs/TASKS.md, docs/FLOWS.md, and docs/examples/tasks/poc_extraction/README.md.

Documentation & Resources

  • docs/README.md - Complete documentation index.
  • docs/INSTALL.md - Platform setup, extras, backends, and source builds.
  • docs/MODELS.md - Model URIs, local and hosted backends, generation settings, and streaming.
  • docs/AGENT_GUIDE.md - Agent TOML, prompts, tools, memory, structured output, multimodal inputs, and serving.
  • docs/TOOLS.md - Built-in tools, MCP, A2A, shell tools, confirmation, safety controls, and reasoning strategies.
  • docs/MEMORIES.md - Recent and permanent memory, namespaces, indexing, retrieval, and storage backends.
  • docs/FLOWS.md - Explicit graph workflows, strict definitions, Mermaid views, branching, and review boundaries.
  • docs/TASKS.md - Durable task contracts, file delivery, queues, storage, privacy, and schema validation.
  • docs/MODALITIES.md - Text, vision, and audio CLI and Python examples.
  • docs/CLI.md - Command and flag reference.
  • docs/examples - Runnable examples.

Community & Support

Contributing

We welcome pull requests, issue reports, docs improvements, and new examples.

  1. Read the Code of Conduct before you start.
  2. Install the development environment with poetry install --all-extras --with test.
  3. Run make lint.
  4. Run poetry run pytest --verbose -s.

Open a GitHub issue if you discover bugs or want to propose larger changes.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

avalan-1.5.4.tar.gz (1.0 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

avalan-1.5.4-py3-none-any.whl (1.2 MB view details)

Uploaded Python 3

File details

Details for the file avalan-1.5.4.tar.gz.

File metadata

  • Download URL: avalan-1.5.4.tar.gz
  • Upload date:
  • Size: 1.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for avalan-1.5.4.tar.gz
Algorithm Hash digest
SHA256 951d3e0e4fe458450f30294dbf552b82c591b0af2d14c99d2ece5424aecde37f
MD5 9185e65ace68a8da7f555b373e27bf8b
BLAKE2b-256 ca05f9a2b95c57277800daece9af0921869a75ef7e0fd860c6d55de67639f199

See more details on using hashes here.

Provenance

The following attestation bundles were made for avalan-1.5.4.tar.gz:

Publisher: release.yml on avalan-ai/avalan

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file avalan-1.5.4-py3-none-any.whl.

File metadata

  • Download URL: avalan-1.5.4-py3-none-any.whl
  • Upload date:
  • Size: 1.2 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for avalan-1.5.4-py3-none-any.whl
Algorithm Hash digest
SHA256 f9ab5c6afb643a0fa7192976101d3e81d362418c52fcf78751f345579266f54d
MD5 27ce716f01bb950e27637a96a6904ed4
BLAKE2b-256 b32291d4256fa93a65d118a49fd5301bf6aae51d37591a5e08ed2086453e22f3

See more details on using hashes here.

Provenance

The following attestation bundles were made for avalan-1.5.4-py3-none-any.whl:

Publisher: release.yml on avalan-ai/avalan

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page