Skip to main content

Zero-boilerplate multi-provider LLM agent framework

Reason this release was yanked:

solved issues with gemini structured output and grounding

Project description

LazyBridge

Zero-boilerplate multi-provider LLM agent framework. One class for every LLM interaction, automatic tool schema generation, composable context injection, and serializable multi-agent pipelines.

Quick start

from lazybridge import LazyAgent

ai = LazyAgent("anthropic")
print(ai.text("What is the capital of France?"))

Same code on any provider — change one string:

LazyAgent("openai")
LazyAgent("google")
LazyAgent("deepseek")

Tool loop

from lazybridge import LazyAgent, LazyTool

def get_weather(city: str) -> str:
    """Get current weather for a city."""
    return f"{city}: 22°C, sunny"

result = LazyAgent("anthropic").loop(
    "What's the weather in Rome and Paris?",
    tools=[LazyTool.from_function(get_weather)],
)
print(result.content)

Schema generated automatically from type hints and docstring. No JSON dict, no decorator boilerplate.

Conversational memory

from lazybridge import LazyAgent, Memory

ai  = LazyAgent("anthropic")
mem = Memory()

ai.chat("My name is Marco", memory=mem)
resp = ai.chat("What's my name?", memory=mem)
print(resp.content)   # "Marco"

Structured output

from pydantic import BaseModel

class Article(BaseModel):
    title: str
    summary: str
    tags: list[str]

article = LazyAgent("openai").json("Summarise AI in 2025", Article)
print(article.title)

Multi-agent pipeline

from lazybridge import LazyAgent, LazySession, LazyContext, LazyTool

sess       = LazySession()
researcher = LazyAgent("anthropic", name="researcher", session=sess)
writer     = LazyAgent("openai",    name="writer",     session=sess)

search_tool = LazyTool.from_function(lambda query: f"Papers about {query}")
researcher.loop("Find top 3 AI papers this week", tools=[search_tool])
result = writer.chat(
    "Write a blog post",
    context=LazyContext.from_agent(researcher),
)
print(result.content)
print(sess.graph.to_json())   # serializable pipeline topology for GUI

Native provider tools (web search, code execution, …)

from lazybridge.core.types import NativeTool

resp = ai.chat(
    "What happened in AI this week?",
    native_tools=[NativeTool.WEB_SEARCH],
)
for src in resp.grounding_sources:
    print(src.url, src.title)

Supported providers

Provider String Default model
Anthropic "anthropic" / "claude" claude-sonnet-4-6
OpenAI "openai" / "gpt" gpt-5.4
Google "google" / "gemini" gemini-2.5-flash
DeepSeek "deepseek" deepseek-chat

Installation

pip install lazybridge

# Provider extras (choose what you need)
pip install lazybridge[anthropic]   # Anthropic / Claude
pip install lazybridge[openai]      # OpenAI / GPT
pip install lazybridge[google]      # Google / Gemini
pip install lazybridge[all]         # all providers

Project structure

LazyBridge/
├── lazybridge/      # Main package
│   ├── lazy_agent.py         # LazyAgent — single entry point for LLM calls
│   ├── lazy_session.py       # LazySession — shared store, events, graph
│   ├── lazy_tool.py          # LazyTool — tool schema + execution
│   ├── lazy_context.py       # LazyContext — composable system prompt injection
│   ├── lazy_store.py         # LazyStore — flat key-value blackboard (SQLite or in-memory)
│   ├── lazy_router.py        # LazyRouter — conditional branching node
│   ├── memory.py             # Memory — stateful conversation history
│   ├── graph/                # GraphSchema — serializable pipeline topology
│   └── core/                 # Provider adapters, executor, tool schema builder
└── lazy_wiki/
    ├── bot/                  # LLM-optimised reference (exhaustive, structured)
    └── human/                # Human-readable guides and SDK comparison

Documentation

Audience Entry point
Developer lazy_wiki/human/quickstart.md
SDK comparison lazy_wiki/human/comparison.md
LLM / AI assistant lazy_wiki/bot/INDEX.md
Full API reference lazy_wiki/bot/00_quickref.md

License

MIT

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

lazybridge-0.3.1.tar.gz (178.6 kB view details)

Uploaded Source

Built Distribution

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

lazybridge-0.3.1-py3-none-any.whl (93.0 kB view details)

Uploaded Python 3

File details

Details for the file lazybridge-0.3.1.tar.gz.

File metadata

  • Download URL: lazybridge-0.3.1.tar.gz
  • Upload date:
  • Size: 178.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for lazybridge-0.3.1.tar.gz
Algorithm Hash digest
SHA256 6b5b0b67752828ec5fea339a4e2129d7b82f3dff9a5373c9364a165fa732556d
MD5 8837d73db178c810b228ba63635eb92e
BLAKE2b-256 31558e7e41a957fd0bfec5cfa023653d0f949b49ed89b0497c3f714a6a03841c

See more details on using hashes here.

File details

Details for the file lazybridge-0.3.1-py3-none-any.whl.

File metadata

  • Download URL: lazybridge-0.3.1-py3-none-any.whl
  • Upload date:
  • Size: 93.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for lazybridge-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 67f64f305066c1ec9d220dae3adfd98189476341f30681a0876a3fea5ab675b2
MD5 deb045bf164e00ec9a2741080fb96a44
BLAKE2b-256 aa8abdd54f55931655d780febdbb4bb6cb03fb2ab556fc9f0aed23283a3b489f

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