A toolkit for designing multiagent systems
Project description
Agentbyte
Agentbyte is an observability-first agentic AI framework for building and studying multiagent systems with a learning-first, implementation-oriented workflow.
Current release: 0.4.0
Repository: gitlab.com/pyninja/aiengineering/agentbyte
What's New in 0.4.0
- Added multi-agent orchestration foundations with
BaseOrchestrator. - Added
RoundRobinOrchestrator,AIOrchestrator, andPlanBasedOrchestrator. - Added a full termination system for autonomous orchestration flows.
- Added plan-based orchestration examples, tests, and study/tutorial docs.
- Expanded OpenTelemetry coverage across agents, workflows, and orchestration roots with aggregate usage summaries.
What's New in 0.3.5
- Added first-class async embeddings clients in
agentbyte.llmfor OpenAI and Azure OpenAI. - Added separate single/batch embedding methods:
create(input_text: str) -> list[float]create_batch(input_texts: list[str]) -> list[list[float]]
- Added Azure embedding deployment setting support:
AZURE_OPENAI_EMBEDDING_DEPLOYMENT_NAME.
What's New in 0.3.2
- Python baseline lowered: package runtime requirement is now Python 3.11+.
- CI release pipeline now builds/tests/publishes with Python 3.11.
What's New in 0.3.1
- Interactive CLI wizard: running
agentbytewith no arguments launches a guided numbered menu — choose a command, then choose a provider (github-copilot/claude), then confirm before any files are written. - Non-interactive path (
agentbyte create-skills --provider=github-copilot) is fully preserved for scripting and CI.
What's New in 0.3.0
- Breaking:
BaseAgentno longer stores context.self.context,reset_context(),clear_messages(),window_messages(), andreset()are removed.Agent.__init__no longer accepts acontext=kwarg. Agent.run(task=None, context=None, ...)andAgent.run_stream(task=None, context=None, ...)accept a per-callAgentContext. A fresh context is created automatically whenNone.AgentResponse.contextreturns the fully-populated working context to the caller — enables clean multi-turn patterns without agent-side state.AgentAsTool.execute()andexecute_stream()thread the caller-supplied context through to the underlying agent.- Notebooks, study docs (
topic_agents.md,topic_approval.md), and OTel span guide (topic_otel_spans.md) updated to the caller-owned context pattern.
See CHANGELOG.md for the complete release history.
Current Capabilities
- Agent execution loop with
run()andrun_stream()APIs. - Tooling system (function tools + core tools + memory tool).
- Middleware chain for request/response/error handling.
- Built-in middleware: logging, security, rate limiting, approval, telemetry.
- Memory abstractions: list memory, file memory, context injection.
- OpenAI and Azure OpenAI model client support.
- OpenTelemetry-first tracing with model-call and task-level usage telemetry.
Observability-First Telemetry
Agentbyte exposes two complementary telemetry layers:
- Per-call middleware spans (
chat ...,tool ...) for model/tool-level diagnostics. - Task-level root span attributes (
agent ...) for final aggregated usage and outcome.
Enable telemetry:
export AGENTBYTE_ENABLE_OTEL=true
Per-call span attributes emitted by OTelMiddleware:
gen_ai.usage.input_tokens,gen_ai.usage.output_tokens,gen_ai.usage.total_tokensgen_ai.usage.cost_estimate_usdgen_ai.response.finish_reasongen_ai.request.modelgen_ai.tool.name,gen_ai.tool.success
Degugging Traces without UI
details can be found in the OTel spans guide.
Practical interpretation:
chat gpt-4.1-minispans show per-call usage/cost/finish reason.agent <name>span shows final accumulated usage and final task outcome.
Installation
Python requirement: 3.11+
uv sync --all-groups
Optional extras:
uv sync --extra openai
uv sync --extra azureopenai
uv sync --extra otel
Install in another project (pip / uv add)
Use extras to enable provider + telemetry support:
pip install "agentbyte[azureopenai,otel]"
uv add "agentbyte[azureopenai,otel]"
Install all optional features:
pip install "agentbyte[all]"
# or
uv add "agentbyte[all]"
Note: the Azure extra is azureopenai.
Quick Start
from agentbyte.agents import Agent
from agentbyte.middleware import LoggingMiddleware
# model_client = OpenAIChatCompletionClient(...) or AzureOpenAIChatCompletionClient(...)
def quick_faq_lookup(topic: str) -> str:
faq = {
"middleware": "Middleware handles cross-cutting runtime concerns.",
"memory": "Memory helps agents keep useful context across interactions.",
}
return faq.get(topic.lower(), "No FAQ found.")
agent = Agent(
name="helpful-assistant",
description="Helpful assistant with middleware",
instructions="Answer clearly and use tools when needed.",
model_client=model_client,
tools=[quick_faq_lookup],
middlewares=[LoggingMiddleware()],
)
Project Layout
src/agentbyte/
agents/
llm/
memory/
middleware/
tools/
messages.py
context.py
types.py
Development
uv run ruff check src tests
uv run pytest tests -v
License
MIT — see LICENSE.
References
Project details
Release history Release notifications | RSS feed
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 agentbyte-0.4.0.tar.gz.
File metadata
- Download URL: agentbyte-0.4.0.tar.gz
- Upload date:
- Size: 198.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.0 {"installer":{"name":"uv","version":"0.11.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3804cfa77481687473ddf895abfb4eee6c2ee9367abbfc1deb26e93ea1964ed1
|
|
| MD5 |
e9e29d6d7871fded89de15b868e39f61
|
|
| BLAKE2b-256 |
7a0e1767dd5429aca6f1d891eafe4c179b3c909915a7ec7bfe1b97e8083cb1cb
|
File details
Details for the file agentbyte-0.4.0-py3-none-any.whl.
File metadata
- Download URL: agentbyte-0.4.0-py3-none-any.whl
- Upload date:
- Size: 193.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.0 {"installer":{"name":"uv","version":"0.11.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c44c555ff2be16eba6da30440f599cf46398314316fb57ec8a670e380d3d6668
|
|
| MD5 |
bedb186040cac89c7db8af255697746c
|
|
| BLAKE2b-256 |
8eb253bbbca72fc5fa3cf79d1b7cf6f4db1978e6efc32d8226005770c54db21b
|