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.

pip install ferrant also installs the ferrant command and its local FastAPI/Uvicorn runtime dependencies. Run ferrant init to create a function-based Python agent and ferrant run to host it locally. Configure server: https://deploy.example.com and environment: <environment-id> in deploy.yml, create a token in the web console, run ferrant login --email you@example.com --token fdt_..., then run ferrant deploy to deploy through a Ferrant deployment server. The CLI does not accept account passwords. For CI, set a scoped deploy token in FERRANT_TOKEN. See the repository's deployment documentation for the handler contract.

The first authenticated deploy automatically creates or reuses the manifest's named project when environment still contains the generated placeholder. It selects the development environment and saves its ID back to deploy.yml.

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.18-cp39-abi3-win_amd64.whl (5.0 MB view details)

Uploaded CPython 3.9+Windows x86-64

ferrant-0.1.18-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.6 MB view details)

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

ferrant-0.1.18-cp39-abi3-macosx_11_0_arm64.whl (5.1 MB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: ferrant-0.1.18-cp39-abi3-win_amd64.whl
  • Upload date:
  • Size: 5.0 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.18-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 54b4ae276dbc0ce997225f6f7b910e4b5905dac958c8835568ae1e614b40fce7
MD5 62addcc8829c78a7cc6f9cbe974bcf33
BLAKE2b-256 05c25fa17e9a30174f5f9b2f6aadb6bdd2e9b59e96ee0d09ec265fb57b8c93e9

See more details on using hashes here.

Provenance

The following attestation bundles were made for ferrant-0.1.18-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.18-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for ferrant-0.1.18-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 77d67582eda15dfa3db2bb457ac2f798999a50fad85e929f1be1f0014d97e685
MD5 a3ee954aa769171797f19bd27222b0af
BLAKE2b-256 0a2b256a06b8c112b65e3040522e7908cb76a071a0a7d4ee27b8d618cba22f2c

See more details on using hashes here.

Provenance

The following attestation bundles were made for ferrant-0.1.18-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.18-cp39-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for ferrant-0.1.18-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9fbe242b2aaf09acec8d4830775bc1e3bc400e28ddfa2a9625c5c7d92cff754d
MD5 f2be05bdf0d91463f889e9da09b27d7f
BLAKE2b-256 470ddd5f86a3e79184273223781da4ed1403983ee50b53d28ebd4b6d03065f03

See more details on using hashes here.

Provenance

The following attestation bundles were made for ferrant-0.1.18-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