GraphBit - Advanced workflow automation and AI agent orchestration library
Project description
GraphBit - High Performance Agentic Framework
Type-Safe AI Agent Workflows with Rust Performance
Read this in other languages: 🇨🇳 简体中文 | 🇨🇳 繁體中文 | 🇪🇸 Español | 🇫🇷 Français | 🇩🇪 Deutsch | 🇯🇵 日本語 | 🇰🇷 한국어 | 🇮🇳 हिन्दी | 🇸🇦 العربية | 🇮🇹 Italiano | 🇧🇷 Português | 🇷🇺 Русский | 🇧🇩 বাংলা
What is GraphBit?
GraphBit is a source-available agentic AI framework for developers who need deterministic, concurrent, and low-overhead execution.
Built with a Rust core and a minimal Python layer, GraphBit delivers up to 68× lower CPU usage and 140× lower memory footprint than other frameworks, while maintaining equal or greater throughput.
It powers multi-agent workflows that run in parallel, persist memory across steps, self-recover from failures, and ensure 100% task reliability. GraphBit is built for production workloads, from enterprise AI systems to low-resource edge deployments.
Why GraphBit?
Efficiency decides who scales. GraphBit is built for developers who need deterministic, concurrent, and ultra-efficient AI execution without the overhead.
- Rust-Powered Performance - Maximum speed and memory safety at the core
- Production-Ready - Circuit breakers, retry policies, and fault recovery built-in
- Resource Efficient - Run on enterprise servers or low-resource edge devices
- Multi-Agent Ready - Parallel execution with shared memory across workflow steps
- Observable - Built-in tracing, structured logs, and performance metrics
Benchmark
GraphBit was built for efficiency at scale—not theoretical claims, but measured results.
Our internal benchmark suite compared GraphBit to leading Python-based agent frameworks across identical workloads.
| Metric | GraphBit | Other Frameworks | Gain |
|---|---|---|---|
| CPU Usage | 1.0× baseline | 68.3× higher | ~68× CPU |
| Memory Footprint | 1.0× baseline | 140× higher | ~140× Memory |
| Execution Speed | ≈ equal / faster | — | Consistent throughput |
| Determinism | 100% success | Variable | Guaranteed reliability |
GraphBit consistently delivers production-grade efficiency across LLM calls, tool invocations, and multi-agent chains.
View Full Benchmark Report for detailed methodology, test scenarios, and complete results.
Watch Benchmark Demo Video to see GraphBit's performance in action.
When to Use GraphBit
Choose GraphBit if you need:
- Production-grade multi-agent systems that won't collapse under load
- Type-safe execution and reproducible outputs
- Real-time orchestration for hybrid or streaming AI applications
- Rust-level efficiency with Python-level ergonomics
If you're scaling beyond prototypes or care about runtime determinism, GraphBit is for you.
Key Features
- Tool Selection - LLMs intelligently choose tools based on descriptions
- Type Safety - Strong typing through every execution layer
- Reliability - Circuit breakers, retry policies, error handling and fault recovery
- Multi-LLM Support - OpenAI, Azure OpenAI, Anthropic, OpenRouter, DeepSeek, Replicate, Ollama, TogetherAI and more
- Resource Management - Concurrency controls and memory optimization
- Observability - Built-in tracing, structured logs, and performance metrics
Quick Start
Installation
Recommended to use virtual environment.
pip install graphbit
Environment Setup
Set up API keys you want to use in your project:
# OpenAI (optional – required if using OpenAI models)
export OPENAI_API_KEY=your_openai_api_key_here
# Anthropic (optional – required if using Anthropic models)
export ANTHROPIC_API_KEY=your_anthropic_api_key_here
Security Note: Never commit API keys to version control. Always use environment variables or secure secret management.
Basic Usage
import os
from graphbit import LlmConfig, Executor, Workflow, Node, tool
# Initialize and configure
config = LlmConfig.openai(os.getenv("OPENAI_API_KEY"), "gpt-4o-mini")
# Create executor
executor = Executor(config)
# Create tools with clear descriptions for LLM selection
@tool(_description="Get current weather information for any city")
def get_weather(location: str) -> dict:
return {"location": location, "temperature": 22, "condition": "sunny"}
@tool(_description="Perform mathematical calculations and return results")
def calculate(expression: str) -> str:
return f"Result: {eval(expression)}"
# Build workflow
workflow = Workflow("Analysis Pipeline")
# Create agent nodes
smart_agent = Node.agent(
name="Smart Agent",
prompt="What's the weather in Paris and calculate 15 + 27?",
system_prompt="You are an assistant skilled in weather lookup and math calculations. Use tools to answer queries accurately.",
tools=[get_weather, calculate]
)
processor = Node.agent(
name="Data Processor",
prompt="Process the results obtained from Smart Agent.",
system_prompt="""You process and organize results from other agents.
- Summarize and clarify key points
- Structure your output for easy reading
- Focus on actionable insights
"""
)
# Connect and execute
id1 = workflow.add_node(smart_agent)
id2 = workflow.add_node(processor)
workflow.connect(id1, id2)
result = executor.execute(workflow)
print(f"Workflow completed: {result.is_success()}")
print("\nSmart Agent Output: \n", result.get_node_output("Smart Agent"))
print("\nData Processor Output: \n", result.get_node_output("Data Processor"))
Watch Quick Start Video Tutorial - Complete walkthrough: Install GraphBit via PyPI, setup, and run your first workflow
Watch: Building Your First Agent Workflow - Advanced tutorial on creating multi-agent workflows with GraphBit
High-Level Architecture
Three-tier design for reliability and performance:
- Rust Core - Workflow engine, agents, and LLM providers
- Orchestration Layer - Project management and execution
- Python API - PyO3 bindings with async support
Python API Integrations
GraphBit provides a rich Python API for building and integrating agentic workflows:
- LLM Clients - Multi-provider integrations (OpenAI, Anthropic, Azure, and more)
- Workflows - Define and manage multi-agent workflow graphs with state management
- Nodes - Agent nodes, tool nodes, and custom workflow components
- Executors - Workflow execution engine with configuration management
- Tool System - Function decorators, registry, and execution framework
- Embeddings - Vector embeddings for semantic search and retrieval
- Document Loaders - Load and parse documents (PDF, DOCX, TXT, JSON, CSV, XML, HTML)
- Text Splitters - Split documents into chunks (character, token, sentence, recursive)
For the complete list of classes, methods, and usage examples, see the Python API Reference.
Watch: GraphBit Observability & Tracing - Learn how to monitor and trace your AI workflows
Contributing to GraphBit
We welcome contributions. To get started, please see the Contributing file for development setup and guidelines.
GraphBit is built by a wonderful community of researchers and engineers.
Security
GraphBit is committed to maintaining security standards for our agentic framework. We recommend:
- Using environment variables for API keys
- Keeping GraphBit updated to the latest version
- Using proper secret management for production environments
If you discover a security vulnerability, please report it responsibly through GitHub Security or via email rather than creating a public issue.
For detailed reporting procedures and response timelines, see our Security Policy.
License
GraphBit is licensed under a three-tier model:
| Model | Users | Terms |
|---|---|---|
| Model A (Free Use) | Individuals, academic institutions, small teams (≤10 users) | Free for non-commercial use |
| Model B (Free Trial) | Enterprise evaluation | 30-day free trial |
| Model C (Enterprise) | Commercial/production use | Paid license required |
Note: Redistribution is prohibited under all models without an explicit Enterprise License.
For complete terms and conditions, see the Full License.
Copyright © 2023–2026 InfinitiBit GmbH. All rights reserved.
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
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file graphbit-0.6.1.tar.gz.
File metadata
- Download URL: graphbit-0.6.1.tar.gz
- Upload date:
- Size: 213.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e355ecc8c51938f9e601847a636fb20d3078631655f1a6c734d0c07b0d04d3d7
|
|
| MD5 |
c02929b938bb03fc010ced5b2cb06132
|
|
| BLAKE2b-256 |
07244fe48444cbcf4433a2a8a1f8bf23ba5aee0ffb82d56bfec47e9c9b134981
|
File details
Details for the file graphbit-0.6.1-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: graphbit-0.6.1-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 6.3 MB
- Tags: PyPy, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d42feec43dce9beae733542626bbc553c0070228070fed9a9b7c4c34be80192a
|
|
| MD5 |
0687ecc6ffb66d62884ff4e4ab78cdc4
|
|
| BLAKE2b-256 |
4fdd852e6cc519dba9a3caaf02a9a992926e2bf971f45b1e309890dd32e6da1b
|
File details
Details for the file graphbit-0.6.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: graphbit-0.6.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 6.0 MB
- Tags: PyPy, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
79a68ff8fef6e1cb8a562b7c56f24e4c06174982dc7605e58cf20327b81bd7b7
|
|
| MD5 |
f52bc3de3d401df8be39fd1d68477092
|
|
| BLAKE2b-256 |
838262ccae7eded18a5095cd66578b74f5c7dd2f0026cf3053e4402ba831f2fc
|
File details
Details for the file graphbit-0.6.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: graphbit-0.6.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 6.0 MB
- Tags: PyPy, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f9cee8fb60aafed14102acd0854b68f553c43dc1afb6aa967bed650ffc12f992
|
|
| MD5 |
e7d68c3c51372abf7f5f98c7575fe6d0
|
|
| BLAKE2b-256 |
8776340643be9b18dd36ddef04161fa6b65a3aabe6d2181bf3dc7f2b9867a716
|
File details
Details for the file graphbit-0.6.1-cp39-abi3-win_amd64.whl.
File metadata
- Download URL: graphbit-0.6.1-cp39-abi3-win_amd64.whl
- Upload date:
- Size: 3.8 MB
- Tags: CPython 3.9+, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2c1ad869b7e80faf27dac03a74db485c93c5f46af2e99f2d5426d87e0313ea6d
|
|
| MD5 |
ba7e2c3fd65bd3844234de45d2ae7822
|
|
| BLAKE2b-256 |
10e8473ea01a1c9afbd03d3bbd48bd4b565b30735f99918581fce8e18074f995
|
File details
Details for the file graphbit-0.6.1-cp39-abi3-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: graphbit-0.6.1-cp39-abi3-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 6.4 MB
- Tags: CPython 3.9+, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7e1a85c9502fe40147ad4973f38da9af1cc7e2a570b8fa9e27691f5d939dae31
|
|
| MD5 |
961fc985dd55f456b9f516c7f0192273
|
|
| BLAKE2b-256 |
fa1414fa814b2cdb3303240615515dca6fed2e4174ec1e0fb23e55fafeb48630
|
File details
Details for the file graphbit-0.6.1-cp39-abi3-musllinux_1_2_aarch64.whl.
File metadata
- Download URL: graphbit-0.6.1-cp39-abi3-musllinux_1_2_aarch64.whl
- Upload date:
- Size: 6.4 MB
- Tags: CPython 3.9+, musllinux: musl 1.2+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e545bcc8c60649051c02749cb63fd5bfca61b01dcfb61e9bbeb46448aa371033
|
|
| MD5 |
2c9bea4c5a48ffa8e62ee3594cc1cd69
|
|
| BLAKE2b-256 |
4b766115a14f3e04a7414dc31ec456307767b6c6544910c688a649bad6bf6d88
|
File details
Details for the file graphbit-0.6.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: graphbit-0.6.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 6.3 MB
- Tags: CPython 3.9+, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b63c996284654d37d4c1d9dc5f1b8329239d3f5d5f0c71d2e64a989a66d70951
|
|
| MD5 |
490e3e0fa8d605e61b9c804d9a1175eb
|
|
| BLAKE2b-256 |
b5ecb5f6de6c32f758f4bd3414757988adede72efa1d3dbc3ac3607dab71deb2
|
File details
Details for the file graphbit-0.6.1-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: graphbit-0.6.1-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 6.0 MB
- Tags: CPython 3.9+, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
09f1a6e1ed71fd06fe2fb59eb281d16a24b46b726ad43440c320fcfd322bfedc
|
|
| MD5 |
296134c0e13c8f5ef393b397def71c0d
|
|
| BLAKE2b-256 |
0bc257adf3b33a25e0b88c235dcce552d3b783b7e1f28dbd4325a79e30e0f47b
|
File details
Details for the file graphbit-0.6.1-cp39-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.
File metadata
- Download URL: graphbit-0.6.1-cp39-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
- Upload date:
- Size: 7.3 MB
- Tags: CPython 3.9+, macOS 10.12+ universal2 (ARM64, x86-64), macOS 10.12+ x86-64, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
80fff770a1e1a6c0c3e970fcb9842a42cb71995c7265bda626b3ee44afb2a47f
|
|
| MD5 |
3f178fcb6f8ce7dd9a70eec9e0112639
|
|
| BLAKE2b-256 |
bebe9a977387e552ecdfc4e01bba1a29ffb87a298d1b4871baf1e55b25e080d6
|