Skip to main content

A lightweight Python framework for building multi-agent AI systems

Project description

ANT AI

Python License Coverage Docs

A lightweight Python framework for building tool-driven AI agents and multi-agent systems.


ant-ai is a lightweight Python framework for building multi-agent systems: graph-based workflow orchestration, first-class agent-to-agent (A2A) communication via the A2A protocol, MCP tool integration, lifecycle hooks for guardrails, and built-in observability — all on top of an LLM-agnostic core.

Why ANT AI

Multi-agent by design. Agents communicate and delegate natively via the A2A protocol — build systems that grow without rewrites.

No lock-in. Swap LLMs, tools, or observability backends in one line. Your logic stays untouched.

Structured, not scripted. Model complex behavior as graphs. Know exactly what runs, when, and why.

Production-ready out of the box. Hooks, guardrails, and full observability via Langfuse and OpenTelemetry — without extra setup.

Installation

Requires Python 3.14+. Install with uv:

uv add ant-ai

Or clone and sync for local development:

git clone https://github.com/idea-idsia/ant-ai
cd ant-ai
uv sync --all-extras

Quickstart

Single agent

from ant_ai import Agent, Message, State, tool
from ant_ai.llm.integrations import LiteLLMChat

@tool
def get_weather(city: str) -> str:
    """Return the current weather for a city."""
    return f"Sunny, 22°C in {city}"

llm = LiteLLMChat(model="gpt-4o-mini")

agent = Agent(
    name="WeatherAgent",
    system_prompt="You are a helpful weather assistant.",
    llm=llm,
    tools=[get_weather],
)

state = State(messages=[Message(role="user", content="What's the weather in Lugano?")])
answer = agent.invoke(state)
print(answer)

Streaming events

from ant_ai.core import FinalAnswerEvent

async for event in agent.stream(state):
    if isinstance(event, FinalAnswerEvent):
        print(event.content)

Structured output

from pydantic import BaseModel

class WeatherReport(BaseModel):
    city: str
    temperature: int
    condition: str

answer = agent.invoke(state, response_schema=WeatherReport)
# answer is a JSON string matching WeatherReport

Development

# Install dev dependencies and pre-commit hooks
uv sync --all-extras
uv run pre-commit install

# Run tests
uv run pytest

# Serve docs locally
uv run mkdocs serve

See CONTRIBUTING.md for the full contributing guide, branching model, and review process.

License

This software is licensed under the MIT license. See the LICENSE file for details.

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

ant_ai-1.0.1.tar.gz (46.6 kB view details)

Uploaded Source

Built Distribution

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

ant_ai-1.0.1-py3-none-any.whl (70.8 kB view details)

Uploaded Python 3

File details

Details for the file ant_ai-1.0.1.tar.gz.

File metadata

  • Download URL: ant_ai-1.0.1.tar.gz
  • Upload date:
  • Size: 46.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for ant_ai-1.0.1.tar.gz
Algorithm Hash digest
SHA256 23658792d6303045fea800331c2a2a4a444c0b2f5ad3263d3f993a33e540a570
MD5 d52c5a6aae03f88e8c50d828aea5330d
BLAKE2b-256 f404fd9ff689e8be1bf78913a24c9bfe89f7a396245a4442fc9875c8864acfbb

See more details on using hashes here.

Provenance

The following attestation bundles were made for ant_ai-1.0.1.tar.gz:

Publisher: publish.yml on idea-idsia/ant-ai

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

File details

Details for the file ant_ai-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: ant_ai-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 70.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for ant_ai-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 a5eeb20a729bbe4591c1125e0a4dae5a5a4623aa14d8ef8c6b61ae589d4f81ef
MD5 510e8b1ebaa8dedce660cef5d75cdcc5
BLAKE2b-256 3facaec5ff261a2c6b0d11761d468b6bfae3621da69e19ee6dd889624eea7595

See more details on using hashes here.

Provenance

The following attestation bundles were made for ant_ai-1.0.1-py3-none-any.whl:

Publisher: publish.yml on idea-idsia/ant-ai

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