Graph-native multi-agent fleet for Python. BYO-key. Local-first.
Project description
bottensor-fleet
Graph-native multi-agent fleet for Python. BYO-key. Local-first. Ships with a UI.
Why
Most multi-agent frameworks are heavy and locked to one ecosystem. LangGraph is tied to LangChain. CrewAI is opinionated about roles. AutoGen is conversation-first. bottensor-fleet is a small, graph-native runtime that runs anywhere Python runs, lets you bring your own provider key, and ships with a real UI in the wheel.
Install
pip install 'bottensor-fleet[search]'
export ANTHROPIC_API_KEY=sk-ant-...
Extras: [search] adds web tools, [redis] adds Redis checkpointing, [all] gets everything.
30-second example
import asyncio
from fleet import Agent, Graph
from fleet.core.state import GraphState
from fleet.providers.client import FleetLLM
llm = FleetLLM("claude", "claude-sonnet-4-6")
researcher = Agent(name="researcher", llm=llm, tools=["web_search", "web_fetch"])
graph = (
Graph("solo")
.add_node("researcher", researcher.step)
.set_entry("researcher")
.set_exit("researcher")
.compile()
)
state = asyncio.run(graph.run(GraphState(goal="What is ReasoningBank?")))
print(state.messages[-1].content)
UI
fleet ui
Opens a local dashboard at http://localhost:8765 with a live DAG view, per-agent logs, token spend, and run history.
CLI
| Command | What it does |
|---|---|
fleet new <name> |
Scaffold a new graph |
fleet run <graph.py> |
Run a graph from a file |
fleet replay <run_id> |
Re-run a past graph from its saved source path |
fleet examples [name] |
List bundled examples or extract one to the current directory |
fleet ui |
Launch the local dashboard |
fleet add-agent |
Append an agent to an existing graph |
fleet ls |
List past runs |
fleet --version |
Print version |
Design
- Graph-native: DAGs with conditional edges and bounded cycles, executed async with
asyncio.gatherfor parallel fan-out. - BYO-key: Provider abstraction via polyrt. Anthropic and OpenAI in the default install; MLX, Ollama, and others via polyrt extras.
- Checkpointed: Every run persists to SQLite (default) or Redis (opt-in via
[redis]extra). - Tools and skills:
@tooldecorator auto-derives JSON schemas from type hints.@skillfor higher-level capabilities. Web search and fetch built in via the[search]extra. - UI in the wheel: No separate Node install for users. The React + Vite frontend is bundled into the published wheel.
Comparison
| bottensor-fleet | LangGraph | CrewAI | AutoGen | |
|---|---|---|---|---|
| Graph topology | ✅ DAG + cycles | ✅ | ❌ role-based | ❌ conversation |
| Provider-agnostic | ✅ via polyrt | ⚠️ via LangChain | ⚠️ | ⚠️ |
| Ships with UI | ✅ | ❌ | ❌ | ⚠️ Studio (separate) |
| Pip-install size | ~150 KB wheel | heavy | medium | heavy |
| LangChain dependency | ❌ | ✅ required | ❌ | ❌ |
Roadmap
- v0.2 — ReasoningBank (Ouyang et al., ICLR 2026): self-evolving agents that learn from successful and failed trajectories. Memory-aware test-time scaling (MaTTS).
- v0.3 — MLX embedder, sequential MaTTS, distributed scheduler.
- v0.4 — Vector memory backend, cloud deploy templates.
Security
The python_exec tool is unsandboxed in v0.1.x. Do not run untrusted graphs. A Docker sandbox lands in v0.2.
License
Apache-2.0. © 2026 Rama Krishna Bachu.
Acknowledgements
Built on polyrt. ReasoningBank design (v0.2) follows Ouyang et al., ReasoningBank: Scaling Agent Self-Evolving with Reasoning Memory, ICLR 2026.
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 Distribution
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 bottensor_fleet-0.1.2.tar.gz.
File metadata
- Download URL: bottensor_fleet-0.1.2.tar.gz
- Upload date:
- Size: 185.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.9 {"installer":{"name":"uv","version":"0.11.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9fb20cf58b0c9c0dd4d0d780b15ac0f239011180256f829d7e1295d57b6b61aa
|
|
| MD5 |
e26df9ded2ae8b573673f575e3d3715b
|
|
| BLAKE2b-256 |
7169ce04247b4ba6eb17ca6cf99480a30180747b089607ae996ca5d0add70a6f
|
File details
Details for the file bottensor_fleet-0.1.2-py3-none-any.whl.
File metadata
- Download URL: bottensor_fleet-0.1.2-py3-none-any.whl
- Upload date:
- Size: 153.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.9 {"installer":{"name":"uv","version":"0.11.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4761998f85b07f8eed1cedbc125a74443d22bd0cf2527a762f99141977193fb9
|
|
| MD5 |
8e8483094a20d2bd9e873eff283f2caf
|
|
| BLAKE2b-256 |
7553d1a9994aba18f5bdbb566d59fbb0d2cb094d5e8d9095732ca20c729af394
|