LazyBridge
Zero-boilerplate, multi-provider Python framework for LLM agents.
One Agent class, swappable engines, and one tool contract —
plain Python functions, other agents, MCP servers, and full pipelines all
compose through tools=[…].
python
📋
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. Parallelism is automatic when the engine emits N tool calls in a turn; deterministic when you declare it.
Note · v0.7.9
Until 0.7.9 is published to PyPI, install from source with
pip install "git+https://github.com/selvaz/LazyBridge.git#egg=lazybridge[anthropic]".
The mental model
Every Agent is the composition Engine + Tools + State:
- Engine — what decides next.
LLMEngineis the common case; swap forPlan,HumanEngine, orSupervisorEngine. - Tools — anything the agent can invoke. Functions, other agents, MCP servers, native provider tools.
- State —
Memory(in-prompt history),Store(durable blackboard),Session(event bus).
Pick your tier
LazyBridge grows with you — every tier is additive.
| Tier | For | Key imports |
|---|---|---|
| Basic | one-shot or tool-calling agents | Agent · LLMEngine · Tool · NativeTool · Envelope |
| Mid | real apps with memory, tracing, guardrails, composition | Memory · Store · Session · Guard* · verify= · MCP |
| Full | production pipelines: typed hand-offs, routing, resume, OTel | Plan · Step · sentinels · SupervisorEngine · checkpoint |
| Advanced | extending the framework | BaseProvider · Plan.to_dict · custom engines · OpenTelemetry |
Function becomes a tool, auto-schema
No decorators, no JSON schemas. Type hints + docstring become the tool's LLM-facing schema automatically.
python
📋
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())