One Agent class, swappable engines, and one tool contract — Python
functions, other agents, MCP servers, and full pipelines all compose through
tools=[…].
from lazybridge import Agent, LLMEngine agent = Agent( engine=LLMEngine("claude-opus-4-7"), ) result = agent("hello") print(result.text()) # That's the whole surface when you start. # It grows only when your problem grows.
LazyBridge grows with you. Start with a one-shot agent on the Basic tier;
add Memory, MCP, and human-in-the-loop on Mid; reach for typed Plans and
checkpoints on Full. Same Agent shape throughout.
One-shot agents, tool-calling, native provider tools.
Memory, tracing, guardrails, composition, MCP servers, evals.
Typed hand-offs, routing, crash resume, OTel exporters.
Custom providers, custom engines, OTel internals, visualizer.
No decorators, no JSON schemas. Type hints + docstring become the tool's LLM-facing schema automatically. The explicit factory pins the LLM-visible name so refactors don't break tool-maps.
The Tool.wrap(fn, name=…) factory introspects the Python
callable to produce a JSON schema the LLM understands. The bare-callable
form tools=[get_weather] works too — backward-compatible
auto-wrap.
from lazybridge import Agent, LLMEngine, Tool def get_weather(city: str) -> str: """Return current temperature and conditions for ``city``.""" return f"{city}: 22°C, sunny" agent = Agent( engine=LLMEngine("claude-opus-4-7"), tools=[Tool.wrap(get_weather, name="get_weather")], ) result = agent("what's the weather in Rome and Paris?") print(result.text()) # Parallelism is emergent: when the model emits two tool # calls in one turn they run via asyncio.gather.
Every LazyBridge program is built from three categories of object. Stable across tiers — only the engine changes.
| Kind | Symbol | What it is |
|---|---|---|
| ENGINE | LLMEngine | An LLM call loop. Tool-aware, optionally streaming, retries on transient errors. |
| ENGINE | Plan | Deterministic DAG of Steps. Validates at construction, resumes on crash. |
| TOOL | Tool.wrap(fn) | Lift any Python callable into a tool. Schema inferred from type hints. |
| TOOL | MCP.stdio / MCP.http | Mount an MCP server as a tool catalogue. Deny-by-default since 0.7.9. |
| STATE | Memory · Store · Session | In-prompt history, durable blackboard, and event bus + observability. |