Skip to main content

Fast, lightweight AI agents powered by a Rust core

Project description

Ferrant Logo

ferrant Python wrapper

This directory is an optional, thin Python binding around the Rust ferrant crate. The agent loop, providers, MCP, graph scheduler, persistence, streaming, and retrieval remain implemented in Rust. Installing this package does not change the Rust crate or its examples.

pip install ferrant

Then import it directly:

import asyncio
import os
from ferrant import Agent

async def main():
    agent = Agent.openai("gpt-5-nano", os.environ["OPENAI_API_KEY"])
    print(await agent.run("Explain Rust ownership in one paragraph."))

asyncio.run(main())

For local wrapper development, use maturin develop --release from this directory. End users do not need Maturin or a Rust toolchain when installing a prebuilt wheel.

The wheel uses PyO3's stable ABI for Python 3.9+. Rust futures are exposed as normal asyncio awaitables. Python custom-tool and graph-node callbacks are synchronous by design; keep expensive execution in Rust tools, MCP servers, or model calls.

See examples/ for Python counterparts of every top-level Rust example and matched advanced workflow examples.

Focused Python examples

Run these from the python-wrapper/ directory after installing the package:

python examples/streaming.py
python examples/memory.py
python examples/rag.py
DOCUMENT_PATH=invoice.pdf python examples/document_extraction.py
DOCUMENT_PATH=invoice.pdf python examples/rag_document_extraction.py
  • streaming.py prints content_delta events as the model generates them.
  • memory.py stores a session in .ferrant/sessions and recalls a prior turn.
  • rag.py persists a local hybrid vector index, retrieves relevant documents, and provides the matches as grounded agent context.
  • document_extraction.py base64-encodes a local PDF and asks OpenAI to extract invoice fields. Set DOCUMENT_PATH to a PDF and OPENAI_API_KEY before running it.
  • rag_document_extraction.py transcribes a local PDF with OpenAI, indexes the text locally, retrieves invoice-relevant passages, and returns schema-validated extraction results. Set DOCUMENT_PATH to a PDF.

The exposed surface covers OpenAI-compatible and Anthropic agents, Python tools, MCP-discovered tools, coordinator teams, multimodal input/output, streaming callbacks, schema-validated output, persistent retrieval, and durable workflow graphs with routes, parallel joins, retry/timeout policies, interrupts, resume, and recovery.

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

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

ferrant-0.1.10-cp39-abi3-win_amd64.whl (4.4 MB view details)

Uploaded CPython 3.9+Windows x86-64

ferrant-0.1.10-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.0 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ x86-64

ferrant-0.1.10-cp39-abi3-macosx_11_0_arm64.whl (4.6 MB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

File details

Details for the file ferrant-0.1.10-cp39-abi3-win_amd64.whl.

File metadata

  • Download URL: ferrant-0.1.10-cp39-abi3-win_amd64.whl
  • Upload date:
  • Size: 4.4 MB
  • Tags: CPython 3.9+, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for ferrant-0.1.10-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 98de870dacbbf1a872e11b2946ba70d8e7899e97adb4d3bea2a920325fae4538
MD5 33a91845dab4f703c05335c45cc8b7a5
BLAKE2b-256 08e096bd39036313a9a8ff38bf11f7573073d1039de779031b888b3e362444df

See more details on using hashes here.

Provenance

The following attestation bundles were made for ferrant-0.1.10-cp39-abi3-win_amd64.whl:

Publisher: python-wheels.yml on avinash31d/ferrant

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

File details

Details for the file ferrant-0.1.10-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for ferrant-0.1.10-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 91980135f49dc46dc31771c689f09921067a331f76f0f9cbf0fee66d95356909
MD5 a9a770a94dc64bad4ac09d5ab711ae92
BLAKE2b-256 b6b8c3b53c1cd4a197f5a55f0abd519292b712750606c8b788112ca8b1b6f7a4

See more details on using hashes here.

Provenance

The following attestation bundles were made for ferrant-0.1.10-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: python-wheels.yml on avinash31d/ferrant

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

File details

Details for the file ferrant-0.1.10-cp39-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for ferrant-0.1.10-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8e1c6b148dfe9235261c8efbdc686c6c0858cc584e1dcd484ac6e98e68871412
MD5 295ea7b5875a9b5f8b8bba85ab04ea08
BLAKE2b-256 109f6067b1afe930c1c025b0fe37e1e970b7cc3966deb90e91c34b9beb3924c9

See more details on using hashes here.

Provenance

The following attestation bundles were made for ferrant-0.1.10-cp39-abi3-macosx_11_0_arm64.whl:

Publisher: python-wheels.yml on avinash31d/ferrant

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