LazyTools (lazytoolkit)¶
Reusable tool providers, connector clients, and safety wrappers for agents built on LazyBridge (and LazyPulse).
Part of the LazyBridge ecosystem
LazyBridge is the stable core runtime; LazyTools is where capabilities
live — anything you add to Agent(tools=[...]) that talks to the outside
world. See the ecosystem overview for
how the three packages stack.
LazyTools is distributed from GitHub (only LazyBridge is on PyPI). Add an
extra to the direct reference — this pulls the current main; append
@vX.Y.Z to pin a release tag:
G="git+https://github.com/selvaz/LazyTools.git"
pip install "lazytoolkit @ $G" # core (just lazybridge)
pip install "lazytoolkit[gmail] @ $G" # Gmail client + guarded draft/send tools
pip install "lazytoolkit[telegram] @ $G" # Telegram client + guarded send tool
pip install "lazytoolkit[mcp] @ $G" # Model Context Protocol connector
pip install "lazytoolkit[docs] @ $G" # PDF/DOCX/HTML document reading
pip install "lazytoolkit[charts] @ $G" # report figures: charts from datahub series
Import contract¶
from lazytools.connectors.gmail import GmailTools, GmailClient
from lazytools.connectors.telegram import TelegramTools
from lazytools.connectors.mcp import MCP
from lazytools.connectors.gateway import ExternalToolProvider
from lazytools.report import Memo, Section, FigureBlock, ReportTools, ReportFiles, ecosystem_resolvers
from lazytools.documents import read_docs_tools
from lazytools.skills import build_skill, skill_tools
from lazytools.safety import Allowlist, ConfirmationGate, ActionBlocked
What's in the box¶
Each tool has its own deep, reference-grade guide — what it does, how it works internally, every parameter and exposed tool function, runnable examples, the safety model, and troubleshooting. Start at the Tools overview.
| Tool | Module | Guide |
|---|---|---|
| Gmail | connectors/gmail — guarded draft/send + auth-header parsing |
Gmail |
| Telegram | connectors/telegram — guarded send tool |
Telegram |
| MCP | connectors/mcp — Model Context Protocol connector |
MCP |
| External tool gateway | connectors/gateway — remote JSON-HTTP tool registries |
Gateway |
| Financial data | connectors/datahub — market-data-hub as the single finance source (datahub_*) |
Financial data |
| Regime detection | connectors/regimes — lazystats.regimes HMM/MS engines as regime_* tools |
Regime detection |
| Statistical analysis | statistical_analysis — volatility/correlation/outliers plus OLS/Ridge/Lasso regression over any hub series (returns, levels, factors, macro) |
Statistical analysis |
| Web | connectors/web — LazyCrawler search/crawl as LLM tools (extra [web]) |
— |
| Documents | documents/read_docs — read .txt/.md/.pdf/.docx/.html from a folder/file |
Documents |
| Skills | skills/doc_skills — build/query portable BM25 doc skills |
Skills |
| AI councils | skills/council — spontaneous AgentPool deliberation, structured voting, quorum, and DeepSeek + Claude subscription preset |
Spontaneous AI councils |
| Report (LazyReport) | report — deterministic Memo → Markdown/HTML with embedded figures (charts/images) via artifact refs; core no extra, chart: needs [charts] |
Report |
| Safety | safety/{allowlist,gates} — reusable allow-list + one-shot confirmation gate |
Safety |
Planned (added when the first module lands, not scaffolded empty): more
connectors — github, slack, notion, calendar, filesystem, browser —
and additional base tools.
Core tools
Beyond the connectors above, the Core tools section
documents composition primitives that ship inside the LazyBridge core
itself rather than in lazytoolkit — Planners (LLM-built
pipelines), Composition sugar (chain / parallel),
and Human-in-the-loop (HumanEngine / SupervisorEngine).
The ecosystem around LazyTools¶
Everything below installs from GitHub (only lazybridge is on PyPI):
| Package | Role | How LazyTools uses it |
|---|---|---|
| LazyBridge | Agent runtime (core) | the substrate — every provider here plugs into Agent(tools=[...]) |
| LazyPulse | Always-on orchestration | consumes LazyTools' clients/tools for its adapters (Gmail, Telegram, Outlook) |
| LazyCrawler | Web crawl & search | surfaced as LLM tools via the [web] extra (WebTools) |
| market-data-hub | The single source of financial data | datahub_* tools (discovery/resolution/facts/extraction) |
| LazyStats | Statistics + HMM/MS regime engines | statistical_* tools and regime_* tools ([regimes] extra of lazystats) |
| LazyRay | Debt-cycle & regime engine | reads market-data-hub directly; no LazyTools connector (not an agent surface). Not yet part of the verified co-installable combination (pending released-CI verification) — install it on its own for now. |
| LazyFin (private) | Portfolio Manager AI — the finance domain layer (canonical models, deterministic kernel, scoring, optimizer, PM agents) | consumes LazyTools' connectors and the datahub_*/regime_* surfaces; LazyFin → {LazyPulse, LazyCrawler, LazyTools} → LazyBridge, never the reverse |
Dependency rules¶
lazytools → lazybridge is the only allowed dependency. lazytools never
imports lazypulse, and lazybridge never imports lazytools — all enforced
by boundary tests.
Migrating from lazybridge ≤0.8? These tools used to live under
lazybridge.ext.{mcp,gateway}/lazybridge.external_tools.*. Those deprecation shims were removed in lazybridge 0.9 — import fromlazytools.*instead. The Gmail/Telegram tools also re-export fromlazypulse.adapters.*, which still emits aDeprecationWarning.