# langroid

> Harness LLMs with Multi-Agent Programming

- **URL**: https://www.freshcrate.ai/projects/langroid
- **Author**: langroid
- **Category**: Frameworks
- **Latest version**: `0.65.0` (2026-05-28)
- **License**: MIT
- **Source**: https://github.com/langroid/langroid
- **Homepage**: https://langroid.github.io/langroid/
- **Language**: Python
- **GitHub**: 3,976 stars, 370 forks
- **Registry**: github
- **Tags**: `agents`, `ai`, `chatgpt`, `function-calling`, `gpt`, `gpt-4`, `gpt4`, `information-retrieval`, `llm-agent`, `python`

## Description

Harness LLMs with Multi-Agent Programming

## Recent releases

| Version | Date | Urgency | Changes |
| --- | --- | --- | --- |
| `0.65.0` | 2026-05-28 | High | ## Permissive-by-default PDF parsing — no AGPL in the default install  Langroid is MIT-licensed, but until now a plain `pip install langroid` pulled in `pymupdf4llm` (and transitively `pymupdf`), which are **AGPL-3.0** licensed. This release removes that AGPL dependency from the default install and switches the default PDF parser to the permissively-licensed **`pypdfium2`** (Apache-2.0 / BSD-3-Clause). Resolves #1026.  ### What changed  - **`pypdfium2` is now the default PDF parser**, added as a |
| `0.63.0` | 2026-05-27 | High | tbd |
| `0.62.0` | 2026-05-06 | High | ## Python 3.13 support and `Task.init()` memory leak fix  ### Python 3.13 support  PR [[#1011](https://github.com/langroid/langroid/pull/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 |
| `0.61.1` | 2026-03-25 | Medium | ## Fix MiniMax model context lengths  PR [#1007](https://github.com/langroid/langroid/pull/1007) corrects the context window size for all MiniMax models to use the API-level limit of 204,800 tokens (instead of the native architecture limit of 196,608). Since Langroid calls the MiniMax API rather than self-hosting, using the API limit avoids unnecessary prompt truncation.  Also fixes "1M context" references in docs and the example script. |
| `0.61.0` | 2026-03-25 | Medium | ## Add MiniMax LLM provider support  PR [#1004](https://github.com/langroid/langroid/pull/1004) adds comprehensive support for [MiniMax](https://www.minimaxi.com/) language models via their OpenAI-compatible API.  ### What's New  - **7 models supported**: M2.7, M2.5, M2.1, M2, and their `-highspeed` variants, with context lengths up to 1M tokens - **Standard provider pattern**: Uses `minimax/` prefix for model names (e.g. `minimax/M2.7`), consistent with existing providers like DeepSeek and Gemi |
| `0.60.3` | 2026-03-16 | Low | ## Fix Gemini model suffix handling  PR [#1001](https://github.com/langroid/langroid/pull/1001) fixes model name suffix stripping in `langroid/language_models/model_info.py` for Gemini models.  ### What's Changed  Extended suffix handling to correctly strip `-exp`, `-experimental`, and `-latest` suffixes while preserving the split-based approach for `-preview` that correctly handles dated variants (e.g. `gemini-2.5-flash-lite-preview-06-17`).  This addresses a regression concern from PR [#1000]( |
| `0.60.2` | 2026-03-13 | Low | ## Gemini context preflight fixes  This release includes two related fixes for Langroid's local context-length preflight behavior.  - PR [#997](https://github.com/langroid/langroid/pull/997): Normalize common Gemini model aliases and provider-prefixed preview names during model-info lookup, and warn clearly when Langroid falls back to default model metadata. - PR [#998](https://github.com/langroid/langroid/pull/998): Include serialized file-attachment payloads in `ChatAgent` context preflight ac |
| `0.60.1` | 2026-03-13 | Low | ## Thread-safe client cache with LRU eviction  PR [#993](https://github.com/langroid/langroid/pull/993) enhances the client cache in `langroid/language_models/client_cache.py` with thread-safety and LRU (Least Recently Used) eviction.  ### What's New  - **Thread safety**: All cache operations are now protected by a `threading.RLock()` to prevent race conditions in multi-threaded environments - **LRU tracking**: Cache entries store a last-used monotonic timestamp, refreshed on each access - **`pr |
| `0.60.0` | 2026-03-12 | Low | ## Add Seltz web search integration  PR [#994](https://github.com/langroid/langroid/pull/994) adds support for [Seltz](https://seltz.io) as a web search provider, alongside existing providers (Google, DuckDuckGo, Exa, Tavily).  ### What's New  - **`seltz_search()` function** in `langroid/parsing/web_search.py` — queries the Seltz API and returns results as `WebSearchResult` objects - **`SeltzSearchTool`** in `langroid/agent/tools/seltz_search_tool.py` — a stateless tool that agents can enable to |
| `0.59.39` | 2026-02-28 | Low | ## Support async client factory for OpenAI HTTP client configuration  PR [#990](https://github.com/langroid/langroid/pull/990) enhances the `http_client_factory` pattern in `OpenAIGPTConfig` to support both sync and async HTTP clients.  ### What's New  The factory function now supports two patterns:  1. **Single client** (existing): return an `httpx.Client` — async client is created automatically 2. **Tuple of clients** (new): return `(httpx.Client, httpx.AsyncClient)` — both are used as provide |

## Citation

- HTML: https://www.freshcrate.ai/projects/langroid
- Markdown: https://www.freshcrate.ai/projects/langroid.md
- Dependencies JSON: https://www.freshcrate.ai/api/projects/langroid/deps

_Generated by freshcrate.ai. Indexes github releases for AI-agent ecosystem packages._
