Skip to main content

A toolkit for designing multiagent systems

Project description

Agentbyte

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, and PlanBasedOrchestrator.
  • 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.llm for 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 agentbyte with 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: BaseAgent no longer stores context. self.context, reset_context(), clear_messages(), window_messages(), and reset() are removed. Agent.__init__ no longer accepts a context= kwarg.
  • Agent.run(task=None, context=None, ...) and Agent.run_stream(task=None, context=None, ...) accept a per-call AgentContext. A fresh context is created automatically when None.
  • AgentResponse.context returns the fully-populated working context to the caller — enables clean multi-turn patterns without agent-side state.
  • AgentAsTool.execute() and execute_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() and run_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_tokens
  • gen_ai.usage.cost_estimate_usd
  • gen_ai.response.finish_reason
  • gen_ai.request.model
  • gen_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-mini spans 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


Download files

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

Source Distribution

agentbyte-0.4.0.tar.gz (198.8 kB view details)

Uploaded Source

Built Distribution

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

agentbyte-0.4.0-py3-none-any.whl (193.6 kB view details)

Uploaded Python 3

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

Hashes for agentbyte-0.4.0.tar.gz
Algorithm Hash digest
SHA256 3804cfa77481687473ddf895abfb4eee6c2ee9367abbfc1deb26e93ea1964ed1
MD5 e9e29d6d7871fded89de15b868e39f61
BLAKE2b-256 7a0e1767dd5429aca6f1d891eafe4c179b3c909915a7ec7bfe1b97e8083cb1cb

See more details on using hashes here.

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

Hashes for agentbyte-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c44c555ff2be16eba6da30440f599cf46398314316fb57ec8a670e380d3d6668
MD5 bedb186040cac89c7db8af255697746c
BLAKE2b-256 8eb253bbbca72fc5fa3cf79d1b7cf6f4db1978e6efc32d8226005770c54db21b

See more details on using hashes here.

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