Skip to content

langroid

AI Agents & Assistants

Harness LLMs with Multi-Agent Programming

Python Latest 0.65.0 · 6d ago Security brief →

Features

  • Framework for building LLM‑powered multi‑agent applications in Python
  • Extensible components: agents, vector stores, tools/functions
  • Supports any LLM via simple abstractions (no LangChain dependency)
  • Provides MCP tool adapter and optional Claude Code plugin

Recent releases

View all 27 releases →
Config change
0.65.0 Breaking risk
Breaking upgrade

PDF parser switch

Upgrade now
0.64.0 Breaking risk
RCE / SSRF Breaking upgrade

Path‑traversal + SQL file read fixes

0.62.0 Bug fix
Notable features
  • Adds Python 3.13 support; CI now tests against Python 3.11 and 3.13.
Full changelog

Python 3.13 support and Task.init() memory leak fix

Python 3.13 support

PR [#1011](https://github.com/langroid/langroid/pull/1011) bumps the supported Python range to >=3.10,<3.14 and adds Python 3.13 to the CI matrix alongside 3.11, so Langroid is now tested on both versions on every push.

  • pyproject.toml: requires-python = "<3.14,>=3.10"
  • .github/workflows/validate.yml: lint/test job now runs against ["3.11", "3.13"]

Fix ObjectRegistry memory leak in Task.init()

PR [#1022](https://github.com/langroid/langroid/pull/1022) (originally [#1021](https://github.com/langroid/langroid/pull/1021)) fixes a memory leak in Task.init(). The method built a temporary ChatDocument solely to feed log_message(Entity.SYSTEM, ...), but ChatDocument.__init__ auto-registers every instance in the class-level ObjectRegistry, so each new Task left behind a system-message doc that was never freed. In long-running services that spawn many tasks (e.g. servers), this accumulated significantly over time.

The fix:

  • explicitly removes the temporary doc via ChatDocument.delete_id(...) after logging
  • renames the local to system_message_temp_doc to make its transient nature obvious
  • adds a regression test (test_task_init_no_registry_leak) mirroring the PR #939 leak-check pattern, asserting that repeated Task(...).init() calls leave zero leaked ChatDocuments in the registry

Thanks to @alexagr for the catch and the original fix.

0.61.1 Bug fix

Fixes MiniMax context window size to 204,800 tokens (API limit), preventing unnecessary prompt truncation.

0.61.0 New feature
Notable features
  • MiniMax LLM provider with 7 models and up to 1M context
  • OpenAI-compatible API with minimax/ prefix

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

About

Stars
4,027
Forks
375
Languages
Python Makefile Shell

Install & Platforms

Install via
pip
Platforms
linux macos windows arm64

Community & Support

Alternative to

Langchain CrewAI Autogen Langflow

Beta — feedback welcome: [email protected]