The daily firehose — everything the toolchain shipped today, already filtered.
// HOW THIS ISSUE IS MADE
We read every release from the 174 tools on our watchlist at the source — GitHub and GitLab release notes, vendor release pages and changelogs, project blogs and feeds, vendor press releases, and the source code behind the tag. Bug-fix-only releases and non-product newsroom noise are dropped; what's left is summarized down to the new capability, how to try it, and any screenshots or videos the release itself published. Every entry links to the sources it was built from.
Agno v1.4.2 adds MCP SSE transport, tool hooks, shared team session state, and new Cartesia, Gemini, and Groq tool integrations.
└──▷ GET THIS VERSION
$ git clone --branch v1.4.2 https://github.com/agno-agi/agno.git
# already have the repo? check out this version:$ git checkout v1.4.2
›Adds MCP SSE transport support, enabling agents to connect to SSE MCP Servers alongside the existing transport options.
›Adds tool hooks that wrap around all tool calls for both Toolkits and custom tools, enabling pre/post-call logic across every tool invocation.
›Adds shared Team Session State — a single state dictionary accessible across a team leader and all team members via tools given to the leader or members.
›Adds CartesiaTool for text-to-speech capabilities using Cartesia.
›Adds a Gemini image tool for generating images using Gemini models.
+3 moreshow less
›Adds Groq audio tools for audio translation, transcription, and generation using Groq models.
›Expands result sets returned by PubmedTools.
›Allows custom tools to return any type — the return value is now handled and converted automatically before being passed to the model.
Agno v1.4.0 promotes Memory to GA, adds OpenAITools and ZepTools, and brings include/exclude tool filtering to all toolkits.
└──▷ GET THIS VERSION
$ git clone --branch v1.4.0 https://github.com/agno-agi/agno.git
# already have the repo? check out this version:$ git checkout v1.4.0
└──▷ USE IT
Limit a large toolkit to only the tools your agent actually needs, reducing attack surface and token overhead.
python
from agno.tools.some_toolkit import SomeToolkit
agent = Agent(
tools=[SomeToolkit(include_tools=["search", "fetch"])],
)
›Adds include_tools and exclude_tools parameters to all toolkits, enabling selective enabling/disabling of individual tools inside larger toolkits.
›Adds OpenAITools class to enable text-to-speech and image generation through OpenAI's APIs.
›Adds ZepTools and AsyncZepTools classes to manage Agent memories via zep-cloud.
›Promotes Agentic user Memory management from beta to generally available, with enable_user_memories and enable_session_summaries now set directly on the Agent or Team.
›Adds reasoning model support (e.g. Deepseek-R1) via Azure AI Foundry.
└──▷ BREAKING ON UPGRADE
!Agents now default to the new Memory class instead of the deprecated AgentMemory; agent.memory.messages is replaced by run.messages for run in agent.memory.runs (or agent.get_messages_for_session()).
!create_user_memories is renamed to enable_user_memories and must now be set directly on the Agent or Team.
!create_session_summary is renamed to enable_session_summaries and must now be set directly on the Agent or Team.
Agno v1.3.5 adds async support for five vector DBs, reasoning events on RunResponse, and Google Gemini cache support.
└──▷ GET THIS VERSION
$ git clone --branch v1.3.5 https://github.com/agno-agi/agno.git
# already have the repo? check out this version:$ git checkout v1.3.5
›Populates reasoning_content on RunResponse for all reasoning types across stream/non-stream and async/non-async modes, with a unified JSON structure for Reasoning events.
›Adds async support for ClickHouse, ChromaDB, Cassandra, PineconeDB, and Pgvector vector database backends.
›Adds Google Gemini caching support: cache files and send cached content to Gemini models.
›Adds add_member_tools_to_system_message to team configuration, allowing the member tool names to be removed from the system message sent to the team leader for broader transfer-function compatibility.
›Adds agent.get_session_summary() method to retrieve the previous session summary from an agent.
›Adds agent.get_user_memories() method to retrieve the current user's memories from an agent.
›Supports Redis as a storage provider for Memory, enabling persistent memory backed by Redis.
›Supports additional instructions on MemoryManager and SessionSummarizer for customizing memory behavior.
+1 moreshow less
›Supports skipping SSL verification for Confluence connections when required.
Agno v1.3.0 revamps Memory with a new class, adds user/session params to agent.run(), and ships Redis session storage.
└──▷ GET THIS VERSION
$ git clone --branch v1.3.0 https://github.com/agno-agi/agno.git
# already have the repo? check out this version:$ git checkout v1.3.0
└──▷ USE IT
Serve multiple users from a single agent instance by scoping each call to a specific user and session.
python
agent.run("What did I order last time?", user_id="user-42", session_id="session-abc123")
›Adds user_id and session_id parameters to agent.run(), scoping memory access to a single user and session to enable multi-user, multi-session applications from one agent configuration.
›Introduces a new Memory class (beta) supporting add, update, delete, and semantic search over user memories, with agent-driven memory management.
Agno v1.2.16 adds knowledge bases with agentic RAG to Teams, mirroring existing Agent functionality.
└──▷ GET THIS VERSION
$ git clone --branch v1.2.16 https://github.com/agno-agi/agno.git
# already have the repo? check out this version:$ git checkout v1.2.16
└──▷ USE IT
Attach a knowledge base to a Team with agentic RAG so the team leader can search documents before delegating tasks.
python
team = Team(
members=[agent1, agent2],
knowledge=knowledge_base,
retriever=my_custom_retriever,
search_knowledge=True,
)
›Adds knowledge, retriever, and search_knowledge fields to Team, enabling knowledge bases and agentic RAG on teams (previously only available on Agent).
›Improves Teams task forwarding reliability and makes the team leader more conversational, with new reasoning-with-teams examples.
Agno v1.2.8 adds instructions and add_instructions to Toolkit so tool usage guidance flows into the model system message.
└──▷ GET THIS VERSION
$ git clone --branch v1.2.8 https://github.com/agno-agi/agno.git
# already have the repo? check out this version:$ git checkout v1.2.8
└──▷ USE IT
Attach tool-specific instructions to a custom toolkit so the model always receives guidance on how to use it, without manually editing the agent system prompt.
python
from agno.tools import Toolkit
class MySearchToolkit(Toolkit):
def __init__(self):
super().__init__(
name="my_search",
instructions="Always prefer recent results. Limit queries to 10 words.",
add_instructions=True,
)
def search(self, query: str) -> str:
...
›Adds instructions and add_instructions fields to the Toolkit class, allowing per-toolkit usage instructions to be injected into the model's system message when add_instructions=True.
Agno v1.2.7 adds Gemini image generation, async knowledge base/vector DB support, and result caching on all toolkits.
└──▷ GET THIS VERSION
$ git clone --branch v1.2.7 https://github.com/agno-agi/agno.git
# already have the repo? check out this version:$ git checkout v1.2.7
└──▷ USE IT
Load a large PDF knowledge base asynchronously to speed up ingestion in an async agent pipeline.
python
import asyncio
from agno.knowledge.pdf import PDFKnowledgeBase
kb = PDFKnowledgeBase(path='reports/')
asyncio.run(kb.aload())
›Adds image generation via the gemini-2.0-flash-exp-image-generation model, enabling agents to produce images directly through Gemini.
›Adds result caching to all Agno Toolkits and any custom functions decorated with @tool.
›Adds async/await support to LanceDb, Milvus, and Weaviate vector DBs, enabling use in agent.arun and agent.aprint_response.
›Adds async/await support to JSONKnowledgeBase, PDFKnowledgeBase, PDFUrlKnowledgeBase, CSVKnowledgeBase, CSVUrlKnowledgeBase, ArxivKnowledgeBase, WebsiteKnowledgeBase, YoutubeKnowledgeBase, and TextKnowledgeBase.
›Enables knowledge_base.aload() for async knowledge base loading, substantially increasing ingestion speed in async contexts.
AutoGPT Platform v0.6.8 adds admin agent downloads, a user spending dashboard, and restores the PrintConsoleBlock.
└──▷ GET THIS VERSION
$ git clone --branch autogpt-platform-beta-v0.6.8 https://github.com/Significant-Gravitas/AutoGPT.git
# already have the repo? check out this version:$ git checkout autogpt-platform-beta-v0.6.8
›Adds an admin capability to download agents for review.
›Adds a user spending admin dashboard for monitoring platform credit usage.
›Adds optional multiselect support in the UI for block input fields.
5 more releases in this issue
· 2025-04-09 → 2025-04-30
AutoGPT Platform v0.6.7 adds agent forking, Prometheus execution metrics, and a billing page toggle.
└──▷ GET THIS VERSION
$ git clone --branch autogpt-platform-beta-v0.6.7 https://github.com/Significant-Gravitas/AutoGPT.git
# already have the repo? check out this version:$ git checkout autogpt-platform-beta-v0.6.7
›Exposes execution Prometheus metrics for monitoring agent runs.
›Adds a billing page toggle to the UI.
›Enables forking agents directly from the Library, creating editable copies of existing agents.
›Adds retry logic on executor process initialization to improve resilience.
›Uses forkserver process creation strategy where available for improved executor process handling.
AutoGPT Platform beta v0.6.6 adds the latest LLM models to the platform.
└──▷ GET THIS VERSION
$ git clone --branch autogpt-platform-beta-v0.6.6 https://github.com/Significant-Gravitas/AutoGPT.git
# already have the repo? check out this version:$ git checkout autogpt-platform-beta-v0.6.6
›Adds the latest LLM models as selectable options for agents.
AutoGPT Platform v0.6.5 adds wallet top-up, auto-refill, and credentials UX for library agents.
└──▷ GET THIS VERSION
$ git clone --branch autogpt-platform-beta-v0.6.5 https://github.com/Significant-Gravitas/AutoGPT.git
# already have the repo? check out this version:$ git checkout autogpt-platform-beta-v0.6.5
›Adds credentials UX on the /library/agents/[id] page, letting users manage agent credentials directly from the agent library.
›Adds wallet top-up and auto-refill functionality to the platform's billing/credit system.
›Updates the completed task group design in the Wallet UI.
›Adds a retry mechanism for pika publish_message to improve message delivery reliability.
AutoGPT Platform v0.6.4 migrates execution queue to RabbitMQ and adds onboarding phase 2.
└──▷ GET THIS VERSION
$ git clone --branch autogpt-platform-beta-v0.6.4 https://github.com/Significant-Gravitas/AutoGPT.git
# already have the repo? check out this version:$ git checkout autogpt-platform-beta-v0.6.4
›Migrates the agent execution queue and cancel mechanism to RabbitMQ, replacing the previous RPC service in the Agent Executor.
›Implements Onboarding Phase 2 for new users.
›Adds Sentry environment tracking on the frontend and initializes Sentry in app services for observability.
AutoGPT Platform v0.6.2 adds a generic webhook block, real-time execution updates, advanced block search, and Llama 4 model support.
└──▷ GET THIS VERSION
$ git clone --branch autogpt-platform-beta-v0.6.2 https://github.com/Significant-Gravitas/AutoGPT.git
# already have the repo? check out this version:$ git checkout autogpt-platform-beta-v0.6.2
›Adds a generic webhook block, enabling agents to trigger or receive arbitrary webhook events.
›Adds advanced block search with relevance ranking, making it faster to find the right block in large agent graphs.
›Adds support for Llama 4 Maverick and Llama 4 Scout models as available LLM options.
›Adds real-time execution updates for the platform library, surfacing live agent run status without manual refresh.
›Adds a real-time 'Steps' count to the agent run view so practitioners can monitor execution progress as it happens.
+4 moreshow less
›Adds an 'Open in builder' action on agent run views, enabling one-click navigation from a live run to the builder for inspection or editing.
›Adds UI for Agent Input subtypes, allowing more precise input configuration within the agent builder.
›Implements baseline Sentry logging for platform-level error tracking and observability.
›Makes agent store data publicly accessible to non-authenticated users, broadening discoverability of published agents.
Framework for orchestrating role-playing, autonomous AI agents. By fostering collaborative intelligence, CrewAI empowers agents to work together seamlessly, tackling complex tasks.
CrewAI 0.118.0 adds no-code Guardrail creation and renames TaskGuardrail to LLMGuardrail.
└──▷ GET THIS VERSION
$ git clone --branch 0.118.0 https://github.com/crewAIInc/crewAI.git
# already have the repo? check out this version:$ git checkout 0.118.0
›Adds support for no-code Guardrail creation to simplify AI behavior controls without writing custom guardrail logic.
└──▷ BREAKING ON UPGRADE
!TaskGuardrail is renamed to LLMGuardrail; any code importing or referencing TaskGuardrail will break on upgrade.
2 more releases in this issue
· 2025-04-10 → 2025-04-30
CrewAI 0.117.0 adds result_as_answer decorator support, GPT-4.1/Gemini-2.x models, and a HuggingFace CLI provider.
└──▷ GET THIS VERSION
$ git clone --branch 0.117.0 https://github.com/crewAIInc/crewAI.git
# already have the repo? check out this version:$ git checkout 0.117.0
└──▷ USE IT
Return a tool's output directly as the agent's final answer, bypassing further LLM reasoning — useful for deterministic lookup tools where you trust the result completely.
python
from crewai.tools import tool
@tool(result_as_answer=True)
def lookup_cve(cve_id: str) -> str:
"""Fetch CVE details from internal database."""
return fetch_cve_record(cve_id)
›Adds result_as_answer parameter to the @tool decorator, allowing a tool's output to be used directly as the agent's final answer.
›Supports new language models: GPT-4.1, Gemini-2.0, and Gemini-2.5 Pro.
›Adds HuggingFace as a provider option in the CrewAI CLI.
CrewAI 0.114.0 lets agents run standalone, adds custom LLM support, external memory, and Opik observability.
└──▷ GET THIS VERSION
$ git clone --branch 0.114.0 https://github.com/crewAIInc/crewAI.git
# already have the repo? check out this version:$ git checkout 0.114.0
└──▷ USE IT
Run a single agent as a standalone unit — useful in Flows or one-off tasks without assembling a full Crew.
python
from crewai import Agent
researcher = Agent(
role="Research Analyst",
goal="Find the latest CVEs for Apache HTTP Server",
backstory="You are an expert in vulnerability research.",
llm="gpt-4o"
)
result = researcher.kickoff()
print(result)
›Enables agents as atomic, standalone units — call Agent(...).kickoff() without a full Crew.
›Supports custom LLM implementations for bringing your own model client.
›Integrates External Memory for persistent agent knowledge across runs.
›Adds Opik observability integration for tracing and monitoring agent workflows.
›Adds wildcard support to emit() for flexible event broadcasting.
+3 moreshow less
›Introduces secure fingerprints for agents and crews to uniquely identify and track them.
›Adds multimodal agent validation to enforce correct configuration of multimodal agents.
›Enhanced YAML extraction for more robust crew and agent definition parsing.
DSPy 2.6.20 adds native async support for callbacks and dspy.Tool, plus MCP tool integration via dspy.Tool.from_mcp_tool.
└──▷ GET THIS VERSION
$ git clone --branch 2.6.20 https://github.com/stanfordnlp/dspy.git
# already have the repo? check out this version:$ git checkout 2.6.20
└──▷ USE IT
Wrap an MCP tool as a DSPy tool to use it inside a ReAct agent on the same day MCP tools are available.
python
import dspy
# mcp_tool is an MCP-protocol tool object from your MCP session
dspy_tool = dspy.Tool.from_mcp_tool(mcp_tool)
agent = dspy.ReAct(signature="question -> answer", tools=[dspy_tool])
result = agent(question="What is the current price of AAPL?")
›Adds dspy.Tool.from_mcp_tool class method to construct a dspy.Tool directly from an MCP tool, enabling Model Context Protocol integration.
›Adds native async support for callbacks and dspy.Tool, allowing asynchronous execution throughout the DSPy module pipeline.
DSPy 2.6.19 adds async support on critical paths, a fanout cache, and expanded dspy.Tool argument handling.
└──▷ GET THIS VERSION
$ git clone --branch 2.6.19 https://github.com/stanfordnlp/dspy.git
# already have the repo? check out this version:$ git checkout 2.6.19
└──▷ USE IT
Pass kwargs-accepting functions directly as ReAct tools when the tool signature is dynamic or variadic.
python
import dspy
def search(query: str, **kwargs) -> str:
# kwargs can carry optional parameters like top_k, filters, etc.
return f"Results for {query}"
tool = dspy.Tool(search)
react = dspy.ReAct("Answer the question.", tools=[tool])
result = react(question="What is the capital of France?")
Run multiple DSPy module calls concurrently in an async application to parallelize LM requests.
Haystack v2.13.0 adds async Agent support, a new Toolset class, the @super_component decorator, and broad http_client_kwargs proxy/SSL configuration.
└──▷ GET THIS VERSION
$ git clone --branch v2.13.0 https://github.com/deepset-ai/haystack.git
# already have the repo? check out this version:$ git checkout v2.13.0
└──▷ USE IT
Run an async web-search agent — useful in async web servers or notebooks where blocking calls are not acceptable.
python
result = await web_search_agent.run_async(
messages=[ChatMessage.from_user("Find information about Haystack by deepset")]
)
Group related tools into a Toolset and pass them to an Agent in one shot, simplifying tool management across large tool libraries.
python
from haystack.tools import Toolset
from haystack.components.agents import Agent
from haystack.components.generators.chat import OpenAIChatGenerator
math_toolset = Toolset([tool_one, tool_two])
agent = Agent(
chat_generator=OpenAIChatGenerator(model="gpt-4o-mini"),
tools=math_toolset
)
Build a custom hybrid retriever SuperComponent with minimal boilerplate using the @super_component decorator.
python
from haystack import Pipeline, super_component
from haystack.components.joiners import DocumentJoiner
from haystack.components.embedders import SentenceTransformersTextEmbedder
from haystack.components.retrievers import InMemoryBM25Retriever, InMemoryEmbeddingRetriever
from haystack.document_stores.in_memory import InMemoryDocumentStore
@super_component
class HybridRetriever:
def __init__(self, document_store: InMemoryDocumentStore):
self.pipeline = Pipeline()
self.pipeline.add_component("text_embedder", SentenceTransformersTextEmbedder())
self.pipeline.add_component("embedding_retriever", InMemoryEmbeddingRetriever(document_store))
self.pipeline.add_component("bm25_retriever", InMemoryBM25Retriever(document_store))
self.pipeline.add_component("document_joiner", DocumentJoiner(join_mode="reciprocal_rank_fusion"))
self.pipeline.connect("text_embedder", "embedding_retriever")
self.pipeline.connect("bm25_retriever", "document_joiner")
self.pipeline.connect("embedding_retriever", "document_joiner")
›Adds run_async method to Agent, calling the underlying ChatGenerator's run_async when available, enabling built-in async agent workflows.
›Adds http_client_kwargs parameter to OpenAIChatGenerator, AzureOpenAIChatGenerator, AzureOpenAIGenerator, OpenAIGenerator, DALLEImageGenerator, OpenAIDocumentEmbedder, OpenAITextEmbedder, AzureOpenAITextEmbedder, AzureOpenAIDocumentEmbedder, and RemoteWhisperTranscriber for custom proxy and SSL configuration.
›Introduces the Toolset class (importable from haystack.tools) for grouping, filtering, serializing, and reusing multiple Tool instances as a single unit passable to Agent, ChatGenerator, and ToolInvoker.
›Adds @super_component decorator (importable from haystack) so any class with a pipeline attribute is automatically promoted to a full SuperComponent without manual wiring.
›Adds two ready-made SuperComponents: MultiFileConverter and DocumentPreprocessor, encapsulating common indexing pipeline logic.
+5 moreshow less
›Adds run_async method to OpenAITextEmbedder, OpenAIDocumentEmbedder, AzureOpenAITextEmbedder, AzureOpenAIDocumentEmbedder, HuggingFaceAPIDocumentEmbedder, and HuggingFaceAPITextEmbedder for async embedding.
›Agent tracing now captures inputs and outputs of each ChatGenerator and ToolInvoker call as dedicated child spans, enabling step-by-step visibility in tracers like Langfuse.
›SuperComponents now support mapping non-leaf pipeline outputs to SuperComponent outputs via output_mapping.
›Adds component_name and component_type attributes to PipelineRuntimeError, plus a new PipelineComponentsBlockedError subclass for pipelines where no components are unblocked.
›Deprecates deserialize_tools_inplace utility function; deserialize_tools_or_toolset_inplace should be used instead (removal planned for Haystack 2.14.0).
└──▷ BREAKING ON UPGRADE
!The api, api_key, and api_params parameters of LLMEvaluator, ContextRelevanceEvaluator, and FaithfulnessEvaluator have been removed; use the chat_generator parameter with a ChatGenerator configured for JSON output instead.
!The generator_api and generator_api_params parameters of LLMMetadataExtractor and the LLMProvider enum have been removed; use chat_generator instead.
1 more release in this issue
· 2025-04-02 → 2025-04-22
Haystack v2.12.0 adds an Agent component with state management, SuperComponent for reusable pipelines, AutoMergingRetriever, and Azure AD token support.
└──▷ GET THIS VERSION
$ git clone --branch v2.12.0 https://github.com/deepset-ai/haystack.git
# already have the repo? check out this version:$ git checkout v2.12.0
└──▷ USE IT
Wrap an existing RAG pipeline as a SuperComponent to expose a single query input across a retriever and prompt builder.
python
from haystack import Pipeline, SuperComponent
with open("rag_pipeline.yaml", "r") as f:
pipeline = Pipeline.load(f)
wrapper = SuperComponent(
pipeline=pipeline,
input_mapping={
"query": ["retriever.query", "prompt_builder.query"],
},
output_mapping={"llm.replies": "replies"},
)
result = wrapper.run(query="What is the capital of France?")
print(result["replies"])
Split a CSV by individual rows instead of the default threshold, useful when each row is a self-contained record.
python
from haystack.components.preprocessors import CSVDocumentSplitter
splitter = CSVDocumentSplitter(split_mode="row-wise")
result = splitter.run(documents=docs)
›Adds outputs_to_string parameter to Tool and ComponentTool to customize how tool output is converted into a string before being passed back to the ChatGenerator in a ChatMessage.
›Adds split_mode parameter to CSVDocumentSplitter to control splitting mode; supports row-wise splitting in addition to the previous default threshold behavior.
›Adds link_format parameter to DOCXToDocument (accepts 'markdown' or 'plain') to optionally include extracted hyperlink addresses in output Documents.
›Adds azure_ad_token_provider parameter to AzureOpenAIGenerator, AzureOpenAIChatGenerator, AzureOpenAITextEmbedder, and AzureOpenAIDocumentEmbedder for Azure AD bearer-token authentication via a callable.
›Introduces default_azure_token_provider utility function in haystack/utils/azure.py as a serializable default token provider for Azure AD authentication.
+9 moreshow less
›Adds run_async method to HuggingFaceLocalChatGenerator, using ThreadPoolExecutor internally to return awaitable coroutines.
›Adds split_unit='token' support to RecursiveDocumentSplitter; uses the o200k_base tiktoken tokenizer (requires tiktoken installed).
›Adds chat_generator initialization parameter to LLMEvaluator, ContextRelevanceEvaluator, and FaithfulnessEvaluator, enabling any ChatGenerator instance (not only OpenAI-compatible) for evaluation.
›New Agent component in haystack.components.agents supports tool-calling with any chat model, streaming via streaming_callback, multiple exit_conditions, and a state_schema for shared state across tools.
›New SuperComponent class in haystack.core.super_component.super_component wraps any Haystack Pipeline into a reusable component with input_mapping and output_mapping for simplified interfaces.
›New AutoMergingRetriever retrieval technique, used together with HierarchicalDocumentSplitter, implements auto-merging retrieval.
›Adds asynchronous functionality and HTTP/2 support to LinkContentFetcher.
›New State dataclass with customizable schema for managing Agent state; ToolInvoker extended to work with the new State.
›Supports date/time handling via arrow in ChatPromptBuilder, consistent with existing PromptBuilder behavior.
└──▷ BREAKING ON UPGRADE
!ChatMessage.to_dict() now returns keys role, content, meta, and name — code that consumes the old dict format must be updated.
!The public generator attribute on LLMEvaluator, ContextRelevanceEvaluator, and FaithfulnessEvaluator is replaced by _chat_generator; code referencing .generator will break.
!to_pandas, comparative_individual_scores_report, and score_report are removed from EvaluationRunResult — use detailed_report, comparative_detailed_report, and aggregated_report instead.
!The Agent init parameter exit_condition is renamed to exit_conditions; existing code passing exit_condition= will break.
LangChain Core 0.3.56 adds PDF and audio input support and auto-generated filenames when converting multi-modal content blocks to OpenAI format.
└──▷ GET THIS VERSION
$ git clone --branch langchain-core==0.3.56 https://github.com/langchain-ai/langchain.git
# already have the repo? check out this version:$ git checkout langchain-core==0.3.56
›Supports PDF and audio input in the Chat Completions format via convert_to_openai_messages, expanding multi-modal block handling beyond images.
›Auto-generates filenames for file content blocks when converting to OpenAI format, removing the need to manually name attachments.
›Adds support for standard multi-modal blocks in convert_to_openai_messages for broader compatibility with OpenAI message conversion.
9 more releases in this issue
· 2025-04-02 → 2025-04-24
$ git clone --branch langchain-core==0.3.56rc1 https://github.com/langchain-ai/langchain.git
# already have the repo? check out this version:$ git checkout langchain-core==0.3.56rc1
└──▷ USE IT
Pass a description directly to the @tool decorator instead of relying solely on the docstring.
python
from langchain_core.tools import tool
@tool(description='Fetches the current weather for a given city.')
def get_weather(city: str) -> str:
...
›Adds convert_to_openai_messages support for standard multi-modal blocks (images, files, audio) and auto-generates filenames when converting file content blocks to OpenAI format.
›Supports PDF and audio input in the Chat Completions format via core and standard-tests.
›Adds tool_call exclusion filter in filter_message to strip tool-call entries from message lists.
›Adds a token-counting callback handler (de-betaed usage callback) that stores model names per invocation.
›Adds scoped_full as a new clean-up strategy for the indexing API.
+21 moreshow less
›Supports passing a JSON schema directly as args_schema to tools instead of requiring a Pydantic model.
›Supports passing a description argument to the @tool decorator.
›Supports passing message dicts into ChatPromptTemplate.
›Adds basemessage.text() convenience method on BaseMessage.
›Adds artifact support in create_retriever_tool.
›Exports InjectedToolCallId and ArgsSchema from the public API.
LangChain Community 0.3.22 adds OAuth2 for Jira, Managed Identity for Azure AI Search, bind variables for Oracle ADB, custom runtimes for Riza, and more.
└──▷ GET THIS VERSION
$ git clone --branch langchain-community==0.3.22 https://github.com/langchain-ai/langchain.git
# already have the repo? check out this version:$ git checkout langchain-community==0.3.22
›Adds oauth2 support to the Jira toolkit, enabling OAuth2-based authentication flows.
›Adds Managed Identity support for Azure AI Search integration.
›Adds bind variable support for the Oracle ADB document loader.
›Adds support for custom runtimes to Riza tools.
›Adds usage_metadata support for LiteLLM streaming calls.
+2 moreshow less
›Google Vertex AI Search now returns the website title as part of document metadata.
›Removes pandas DataFrame dependency for similarity_search when using DuckDB as a vector store.
└──▷ BREAKING ON UPGRADE
!The AzureCosmosDBNoSqlVectorSearch community integration is deprecated in favor of the langchain-azure-ai implementation; existing code using it will need to migrate.
langchain-openai 0.3.14 adds standard audio input support and relaxes multimodal content block field requirements.
└──▷ GET THIS VERSION
$ git clone --branch langchain-openai==0.3.14 https://github.com/langchain-ai/langchain.git
# already have the repo? check out this version:$ git checkout langchain-openai==0.3.14
›Adds support for standard audio inputs in OpenAI integrations, enabling audio modality in LangChain standard tests.
›Permits optional fields on multimodal content blocks, giving more flexibility when constructing mixed-media messages.
langchain-tests 0.3.18 adds multi-modal content block support across multiple integrations.
└──▷ GET THIS VERSION
$ git clone --branch langchain-tests==0.3.18 https://github.com/langchain-ai/langchain.git
# already have the repo? check out this version:$ git checkout langchain-tests==0.3.18
›Adds multi-modal content block support across multiple components, enabling richer message payloads beyond plain text.
$ git clone --branch langchain-core==0.3.52 https://github.com/langchain-ai/langchain.git
# already have the repo? check out this version:$ git checkout langchain-core==0.3.52
›Supports customization of backoff parameters in with_retries for finer control over retry behavior.
›Adds multi-modal content blocks support across multiple components, enabling richer message payloads.
›Adds dict-based chat prompt template support, allowing prompt templates to be defined as plain dicts.
›Shares a single executor for async callbacks run in a sync context, improving async callback efficiency.
›Uses a custom __getattr__ in __init__.py files for lazy imports, reducing import-time overhead.
langchain-xai 0.2.3 adds support for reasoning content in xAI model responses.
└──▷ GET THIS VERSION
$ git clone --branch langchain-xai==0.2.3 https://github.com/langchain-ai/langchain.git
# already have the repo? check out this version:$ git checkout langchain-xai==0.2.3
›Supports reasoning content in xAI model responses, enabling access to chain-of-thought or scratchpad output returned by reasoning-capable xAI models.
LangChain Community 0.3.21 adds SAP HANA dialect, Gremlin edge properties, reasoning content for LiteLLM, and several loader enhancements.
└──▷ GET THIS VERSION
$ git clone --branch langchain-community==0.3.21 https://github.com/langchain-ai/langchain.git
# already have the repo? check out this version:$ git checkout langchain-community==0.3.21
└──▷ USE IT
Load a GitBook site using a non-default sitemap URL, useful when the book publishes its sitemap at a custom path.
›Adds sitemap_url parameter to GitbookLoader to support custom sitemap URLs.
›Adds PlaywrightURLLoader support for a stored session file, enabling authenticated browser sessions.
›Adds keep_newlines parameter to the process_pages method for finer control over page text formatting.
›Adds SAP HANA dialect support to SQLDatabase.
›Adds edge properties to the Gremlin graph schema output.
+6 moreshow less
›Adds usage_metadata support for LiteLLM in ChatLiteLLM.
›Adds reasoning content output support to ChatLiteLLM.
›Adds BRAVE_SEARCH_API_KEY environment variable support to the Brave Search Tool, removing the requirement to pass the API key explicitly.
›Adds the Perplexity extra package and deprecates the community-bundled ChatPerplexity in favour of the dedicated integration.
›Adds a DynamoDBChatMessageHistory bulk add messages capability, with explicit error raising on failures.
›Adds a warning when DuckDB is used as a vector store without the pandas dependency installed.
└──▷ BREAKING ON UPGRADE
!DynamoDBChatMessageHistory now raises errors on message-add failures rather than silently failing, which may surface exceptions in code that previously swallowed them.
LangChain 0.3.23 adds a dedicated Perplexity partner integration and deprecates the community ChatPerplexity.
└──▷ GET THIS VERSION
$ git clone --branch langchain==0.3.23 https://github.com/langchain-ai/langchain.git
# already have the repo? check out this version:$ git checkout langchain==0.3.23
›Adds a first-party Perplexity extra (partner integration) for ChatPerplexity, replacing the community-package version.
›Deprecates the community version of ChatPerplexity in favour of the new partner integration.
langchain-openai 0.3.12 adds structured output and tools support plus token counting for o-series models in ChatOpenAI.
└──▷ GET THIS VERSION
$ git clone --branch langchain-openai==0.3.12 https://github.com/langchain-ai/langchain.git
# already have the repo? check out this version:$ git checkout langchain-openai==0.3.12
›Supports structured output and tools in ChatOpenAI, enabling constrained JSON responses and function-calling workflows.
›Adds token counting support for o-series models (e.g. o1, o3) in ChatOpenAI, with file blocks ignored during token counting.
LangGraph SDK 0.1.66 adds checkpoint_during parameter to control mid-execution checkpointing in graph runs.
└──▷ GET THIS VERSION
$ git clone --branch sdk==0.1.66 https://github.com/langchain-ai/langgraph.git
# already have the repo? check out this version:$ git checkout sdk==0.1.66
└──▷ USE IT
Disable mid-run checkpointing for a streaming run to reduce storage overhead when you only need a final checkpoint on completion or interruption.
python
async for chunk in client.runs.stream(
thread_id,
assistant_id,
input=input_data,
checkpoint_during=False,
):
print(chunk)
Force checkpointing after every node when running long graphs where intermediate state recovery matters.
python
run = await client.runs.create(
thread_id,
assistant_id,
input=input_data,
checkpoint_during=True,
)
›Adds optional checkpoint_during: Optional[bool] parameter to stream, create, wait, and create_for_thread client methods, letting callers control whether checkpoints are written during graph execution or only at the end/interruption.
23 more releases in this issue
· 2025-04-01 → 2025-04-30
LangGraph SDK 0.1.65 adds sorting support to assistants search with new sort_by and sort_order parameters.
└──▷ GET THIS VERSION
$ git clone --branch sdk==0.1.65 https://github.com/langchain-ai/langgraph.git
# already have the repo? check out this version:$ git checkout sdk==0.1.65
└──▷ USE IT
Retrieve the most recently updated assistants first — useful for auditing or surfacing active agents in a large deployment.
›Adds sort_by and sort_order parameters to Client.search for assistants, enabling sorting by assistant_id, graph_id, name, created_at, or updated_at in ascending or descending order.
›Introduces new type aliases AssistantSortBy, ThreadSortBy, and SortOrder for strongly-typed sort parameter hints across assistant and thread searches.
$ git clone --branch 0.4.1 https://github.com/langchain-ai/langgraph.git
# already have the repo? check out this version:$ git checkout 0.4.1
└──▷ USE IT
Stream incremental prop updates to a UI message (e.g. progressively reveal content) instead of replacing the whole message on each update.
python
from langgraph.graph.ui import push_ui_message
# First emission creates the message
push_ui_message("my-component", {"status": "loading"}, message_id="msg-1")
# Subsequent call merges new props into the existing message
push_ui_message("my-component", {"status": "done", "result": "42"}, message_id="msg-1", merge=True)
›Adds a merge parameter to push_ui_message enabling incremental/partial updates to existing UI messages without replacing them wholesale.
›Drops Pydantic V1 support — SchemaCoercionMapper and langgraph.utils.pydantic now exclusively use Pydantic V2 APIs.
└──▷ BREAKING ON UPGRADE
!Pydantic V1 models are no longer supported in SchemaCoercionMapper; graphs using Pydantic V1 models will break on upgrade.
!TAG_NOSTREAM value changed from "langsmith:nostream" to "nostream"; code comparing against the old string literal will no longer match (the old value is available as TAG_NOSTREAM_ALT for backward compatibility).
Inspect which interrupts are still pending after a step before deciding how to resume each one.
python
snapshot = graph.get_state(config)
for interrupt in snapshot.interrupts:
print(interrupt.interrupt_id, interrupt.value)
›Adds interrupt_id property on Interrupt that generates a unique ID from its namespace, enabling precise identification of individual interrupts.
›Enhances Command.resume to accept a mapping of interrupt IDs to resume values, allowing targeted resumption of specific interrupts rather than all-or-nothing.
›Adds interrupts field to StateSnapshot to track interrupts that occurred in a step and are pending resolution.
›Propagates interrupts in "values" stream mode so invoke/ainvoke and streaming consumers now see interrupts emitted during graph execution.
›Adds add_edge utility in graph visualization to prevent duplicate edges when rendering graphs with END nodes.
LangGraph checkpoint savers gain delete_thread and adelete_thread methods to remove all data for a given thread ID.
└──▷ GET THIS VERSION
$ git clone --branch checkpoint==2.0.25 https://github.com/langchain-ai/langgraph.git
# already have the repo? check out this version:$ git checkout checkpoint==2.0.25
└──▷ USE IT
Purge all checkpoint data for a completed or abandoned thread to free storage and enforce data-retention policies.
›Adds delete_thread and adelete_thread methods to BaseCheckpointSaver and InMemorySaver for deleting all checkpoints and writes associated with a specific thread ID.
LangGraph 0.3.32 adds draw_graph for graph visualization and get_static_writes for static analysis of conditional edges.
└──▷ GET THIS VERSION
$ git clone --branch 0.3.32 https://github.com/langchain-ai/langgraph.git
# already have the repo? check out this version:$ git checkout 0.3.32
└──▷ USE IT
Visualize a compiled graph including subgraphs and conditional edges using the new dedicated draw_graph function.
python
from langgraph.pregel.draw import draw_graph
draw_graph(compiled_graph)
›Adds get_static_writes method to ChannelWrite to support static analysis of what a writer might write, enabling better resolution of conditional edges.
›Extends ChannelWrite.register_writer to accept static declarations for writers, with a new static field on ChannelWriteTupleEntry to declare writes for static analysis.
›Adds new langgraph.pregel.draw module with a draw_graph function that simulates execution to discover edges, correctly handling subgraphs and conditional edges.
LangGraph CLI gains --image option to deploy pre-built Docker images without a rebuild step.
└──▷ GET THIS VERSION
$ git clone --branch cli==0.2.7 https://github.com/langchain-ai/langgraph.git
# already have the repo? check out this version:$ git checkout cli==0.2.7
└──▷ TRY IT
Deploy a previously built LangGraph image directly in CI without rebuilding — useful for promotion workflows where langgraph build already ran in an earlier stage.
$ langgraph up --image my-custom-langgraph-image:latest
›Adds --image option to langgraph up to specify a pre-built Docker image for the langgraph-api service, skipping the build process entirely.
LangGraph CLI 0.2.6 adds --tunnel flag to expose local dev server publicly via Cloudflare.
└──▷ GET THIS VERSION
$ git clone --branch cli==0.2.6 https://github.com/langchain-ai/langgraph.git
# already have the repo? check out this version:$ git checkout cli==0.2.6
└──▷ TRY IT
Expose your local LangGraph dev server publicly so remote teammates or browser-based frontends can reach it without localhost blocking.
$ langgraph dev --tunnel
›Adds --tunnel flag to the dev command to expose the local LangGraph API server through a public Cloudflare tunnel, enabling remote frontend access without localhost restrictions.
LangGraph SDK 0.1.62 adds sort_by and sort_order parameters to thread search for ordered result retrieval.
└──▷ GET THIS VERSION
$ git clone --branch sdk==0.1.62 https://github.com/langchain-ai/langgraph.git
# already have the repo? check out this version:$ git checkout sdk==0.1.62
└──▷ USE IT
Retrieve the most recently updated threads first — useful when triaging active or stalled agent runs.
›Adds sort_by and sort_order parameters to Client.search for sorting thread results by id, status, created_at, or updated_at in ascending or descending order.
$ git clone --branch checkpointpostgres==2.0.20 https://github.com/langchain-ai/langgraph.git
# already have the repo? check out this version:$ git checkout checkpointpostgres==2.0.20
└──▷ USE IT
Purge all checkpoint data for a completed or abandoned thread to reclaim storage.
›Adds delete_thread method to PostgresSaver for complete removal of all checkpoints and writes tied to a specific thread ID.
›Adds adelete_thread (async) and delete_thread (sync, with main-thread safety checks) to AsyncPostgresSaver for the same capability in async workflows.
›Updates search on PostgresStore and asearch on AsyncPostgresStore to require query as an explicit keyword argument rather than a positional parameter.
└──▷ BREAKING ON UPGRADE
!The query parameter in PostgresStore.search is now a named (keyword) parameter; callers passing it positionally will break.
!The query parameter in AsyncPostgresStore.asearch is now a named (keyword) parameter; callers passing it positionally will break.
LangGraph CLI 0.2.5 adds internal config option to override Docker tags in generated Dockerfiles.
└──▷ GET THIS VERSION
$ git clone --branch cli==0.2.5 https://github.com/langchain-ai/langgraph.git
# already have the repo? check out this version:$ git checkout cli==0.2.5
└──▷ USE IT
Pin a specific base image tag in your generated Dockerfile instead of relying on the auto-detected Python/Node.js version.
json
{
"_INTERNAL_docker_tag": "3.11-slim-bookworm"
}
›Adds _INTERNAL_docker_tag configuration option to override the default Docker tag used in generated Dockerfiles, falling back to the Python or Node.js version when not set.
LangGraph 0.3.31 adds CONFIG_KEY_THREAD_ID constant for tracking thread IDs in concurrent graph invocations.
└──▷ GET THIS VERSION
$ git clone --branch 0.3.31 https://github.com/langchain-ai/langgraph.git
# already have the repo? check out this version:$ git checkout 0.3.31
└──▷ USE IT
Access the current invocation's thread ID inside a node or custom checkpointer to correlate concurrent runs.
python
from langgraph.constants import CONFIG_KEY_THREAD_ID
def my_node(state, config):
thread_id = config["configurable"].get(CONFIG_KEY_THREAD_ID)
print(f"Running on thread: {thread_id}")
return state
›New langgraph.constants.CONFIG_KEY_THREAD_ID constant enables explicit tracking of thread IDs for current invocations in checkpointing and state management.
Apply ordered retry policies to a functional task so the first matching policy governs backoff and attempt count.
python
from langgraph.func import task
from langgraph.types import RetryPolicy
@task(retry=[RetryPolicy(retry_on=TimeoutError, max_attempts=3), RetryPolicy(retry_on=Exception, max_attempts=1)])
def fetch_data(url: str):
...
›Supports passing a sequence of retry policies to StateGraph.add_node, langgraph.func.task, and Pregel, applying the first matching policy when an exception occurs.
›Improves SchemaCoercionMapper performance with functools.lru_cache caching, fast paths for basic types, and better handling of tuple, set, and other collection types.
›Adds compatibility with both Pydantic v1 and v2 in schema coercion via SchemaCoercionMapper.
LangGraph CLI 0.2.2 adds auto-detection of Python/JS graphs and smarter Docker base-image selection for mixed-language projects.
└──▷ GET THIS VERSION
$ git clone --branch cli==0.2.2 https://github.com/langchain-ai/langgraph.git
# already have the repo? check out this version:$ git checkout cli==0.2.2
›Automatically detects Python and JavaScript graphs by file extension, eliminating manual language configuration.
›Selects the appropriate Docker base image automatically based on project composition via new default_base_image logic.
›Supports mixed Python/Node.js projects in a single configuration, with validate_config now auto-detecting and setting correct runtime versions for each graph file.
›New docker_tag utility generates correct Docker image tags based on project configuration.
LangGraph 0.3.27 adds checkpoint_during parameter to skip per-step checkpointing and boost large-graph performance.
└──▷ GET THIS VERSION
$ git clone --branch 0.3.27 https://github.com/langchain-ai/langgraph.git
# already have the repo? check out this version:$ git checkout 0.3.27
└──▷ USE IT
Skip per-step checkpointing on a large graph to reduce saver overhead during a high-throughput batch run.
python
result = graph.invoke({"messages": messages}, config=config, checkpoint_during=False)
Use the async streaming interface with end-only checkpointing to reduce latency in production pipelines.
python
async for chunk in graph.astream({"messages": messages}, config=config, checkpoint_during=False):
process(chunk)
›Adds checkpoint_during parameter to stream(), astream(), invoke(), and ainvoke() — set to False to checkpoint only at run end, reducing overhead in large graphs.
└──▷ BREAKING ON UPGRADE
!checkpoint_every_step is renamed to checkpoint_during in PregelLoop — any code referencing the old name will break.
LangGraph CLI now accepts dictionary-format graph definitions with a 'path' key in addition to plain import-path strings.
└──▷ GET THIS VERSION
$ git clone --branch cli==0.1.89 https://github.com/langchain-ai/langgraph.git
# already have the repo? check out this version:$ git checkout cli==0.1.89
›Supports dictionary-format graph definitions (with a 'path' key) in the configuration file, alongside the existing plain import-path string format, enabling additional metadata to be co-located with graph paths.
LangGraph 0.3.25 adds a UI messaging system to push, remove, and reduce UI component updates during graph execution.
└──▷ GET THIS VERSION
$ git clone --branch 0.3.25 https://github.com/langchain-ai/langgraph.git
# already have the repo? check out this version:$ git checkout 0.3.25
└──▷ USE IT
Stream UI component updates to a frontend during graph execution — e.g. show a progress card that is later replaced.
python
from langgraph.graph.ui import push_ui_message, delete_ui_message, ui_message_reducer
# Inside a graph node:
def my_node(state):
msg = push_ui_message("progress-card", {"status": "running", "step": 1})
# ... do work ...
delete_ui_message(msg["id"])
return state
Wire ui_message_reducer into a typed state so your graph automatically merges UI additions and removals across nodes.
python
from typing import Annotated
from langgraph.graph.ui import AnyUIMessage, ui_message_reducer
from typing_extensions import TypedDict
class GraphState(TypedDict):
ui: Annotated[list[AnyUIMessage], ui_message_reducer]
›New UIMessage TypedDict represents UI component updates with properties and metadata during graph execution.
›New RemoveUIMessage TypedDict enables removal of UI components from the current graph state.
›New AnyUIMessage Union type combines UIMessage and RemoveUIMessage for flexible type annotations.
›New push_ui_message() function creates and sends UI messages to render components mid-execution.
›New delete_ui_message() function removes a UI component from state by ID.
+1 moreshow less
›New ui_message_reducer() function merges UI message lists, handling both additions and deletions.
LangGraph prebuilt 0.1.8 adds a pre_model_hook to create_react_agent for trimming or summarizing long message histories before LLM calls.
└──▷ GET THIS VERSION
$ git clone --branch prebuilt==0.1.8 https://github.com/langchain-ai/langgraph.git
# already have the repo? check out this version:$ git checkout prebuilt==0.1.8
└──▷ USE IT
Trim a long conversation to the last N messages before each LLM call to avoid exceeding the model's context window.
›Adds pre_model_hook parameter to create_react_agent, letting you inject a custom node before every LLM call to preprocess message history via trimming, summarization, or other logic.
›Hook can return messages to update agent state or llm_input_messages to reshape only what the LLM sees, leaving persisted state untouched.
LangGraph CLI 0.1.84 adds custom UI configuration support for dev server and Docker builds.
└──▷ GET THIS VERSION
$ git clone --branch cli==0.1.84 https://github.com/langchain-ai/langgraph.git
# already have the repo? check out this version:$ git checkout cli==0.1.84
›Supports ui and ui_config options in config files for customized UI when running langgraph dev.
›Docker image builds now automatically detect and install UI dependencies (npm, yarn, pnpm, bun) when UI is configured.
›Docker images now include LANGGRAPH_UI and LANGGRAPH_UI_CONFIG environment variables when UI is configured.
LangGraph SDK 0.1.61 adds description support to assistant create and update methods.
└──▷ GET THIS VERSION
$ git clone --branch sdk==0.1.61 https://github.com/langchain-ai/langgraph.git
# already have the repo? check out this version:$ git checkout sdk==0.1.61
└──▷ USE IT
Tag a new assistant with a human-readable description so teammates can identify its purpose at a glance.
python
assistant = await client.assistants.create(
graph_id="my-graph",
description="Triages incoming support tickets and routes to the correct queue."
)
Update an existing assistant's description after a workflow change without recreating it.
python
await client.assistants.update(
assistant_id="asst_abc123",
description="Revised: handles both support tickets and billing inquiries."
)
›Adds optional description field to AssistantBase TypedDict for storing assistant descriptions.
›Adds description parameter to create and update methods (async and sync) on the assistants client.
LangGraph checkpoint 2.0.24 adds explicit None serialization support in JsonPlusSerializer.
└──▷ GET THIS VERSION
$ git clone --branch checkpoint==2.0.24 https://github.com/langchain-ai/langgraph.git
# already have the repo? check out this version:$ git checkout checkpoint==2.0.24
└──▷ USE IT
Serialize and deserialize a None value in checkpoint state without errors — useful when graph state fields are legitimately null.
python
from langgraph.checkpoint.serde.jsonplus import JsonPlusSerializer
serde = JsonPlusSerializer()
type_tag, data = serde.dumps_typed(None) # returns ("null", b"")
value = serde.loads_typed((type_tag, data)) # returns None
›Supports None values in JsonPlusSerializer via a new "null" type designation, enabling round-trip serialization of null checkpoint state fields.
LangGraph 0.3.23 adds REMOVE_ALL_MESSAGES to clear entire conversation histories in one operation.
└──▷ GET THIS VERSION
$ git clone --branch 0.3.23 https://github.com/langchain-ai/langgraph.git
# already have the repo? check out this version:$ git checkout 0.3.23
└──▷ USE IT
Clear an entire conversation history in one step instead of removing messages one by one — useful when resetting context between sessions or tasks.
python
from langgraph.graph.message import REMOVE_ALL_MESSAGES
from langchain_core.messages import RemoveMessage
# Pass this to your graph state update to discard all prior messages
state_update = {"messages": [RemoveMessage(id=REMOVE_ALL_MESSAGES)]}
›Adds REMOVE_ALL_MESSAGES constant to wipe an entire MessageGraph conversation history in a single RemoveMessage call.
LangGraph CLI 0.1.83 adds TTL-based checkpointer config for automatic thread data cleanup in deployments.
└──▷ GET THIS VERSION
$ git clone --branch cli==0.1.83 https://github.com/langchain-ai/langgraph.git
# already have the repo? check out this version:$ git checkout cli==0.1.83
└──▷ USE IT
Configure automatic deletion of stale thread checkpoints after a set period to keep storage lean in long-running deployments.
python
from langgraph_cli.config import CheckpointerConfig, ThreadTTLConfig
checkpointer = CheckpointerConfig(
ttl=ThreadTTLConfig(
default_minutes=1440, # delete thread data older than 24 hours
sweep_interval_minutes=60,
strategy="delete",
)
)
›Adds CheckpointerConfig class to configure the built-in checkpointer in LangGraph deployments via the main config file.
›Adds ThreadTTLConfig class to set default TTL (in minutes), sweep interval, and expiry strategy ("delete") for automatic cleanup of thread checkpoints.
›Supports passing checkpointer configuration to Docker environments via the LANGGRAPH_CHECKPOINTER environment variable automatically.
›Switches from msgpack to ormsgpack for improved serialization performance.
LangGraph CLI dev command gains --allow-blocking flag to suppress synchronous I/O blocking errors
└──▷ GET THIS VERSION
$ git clone --branch cli==0.1.82 https://github.com/langchain-ai/langgraph.git
# already have the repo? check out this version:$ git checkout cli==0.1.82
└──▷ TRY IT
Run the dev server with a graph that intentionally uses blocking I/O (e.g., a synchronous HTTP client or file read) without the server aborting on detection.
$ langgraph dev --allow-blocking
›Adds --allow-blocking flag to the dev command, allowing the server to run without raising errors when synchronous I/O blocking operations are detected.
AutoGen v0.5.5 adds Workbench abstraction for stateful MCP servers and a new FunctionalTermination condition for teams.
└──▷ GET THIS VERSION
$ git clone --branch python-v0.5.5 https://github.com/microsoft/autogen.git
# already have the repo? check out this version:$ git checkout python-v0.5.5
└──▷ USE IT
Use a stateful MCP server (GitHub) with a shared session so all tools stay authenticated under one login context.
python
async with McpWorkbench(server_params) as mcp:
agent = AssistantAgent(
"github_assistant",
model_client=model_client,
workbench=mcp,
reflect_on_tool_use=True,
model_client_stream=True,
)
await Console(agent.run_stream(task="Is there a repository named Autogen"))
Drive a headless browser via Playwright MCP inside a multi-agent team, sharing browser state across all tool calls.
python
async with McpWorkbench(StdioServerParams(command="npx", args=["@playwright/mcp@latest", "--headless"])) as mcp:
agent = AssistantAgent("web_browsing_assistant", model_client=model_client, workbench=mcp)
team = RoundRobinGroupChat([agent], termination_condition=TextMessageTermination(source="web_browsing_assistant"))
await Console(team.run_stream(task="Find out how many contributors for the microsoft/autogen repository"))
›Adds McpWorkbench — a new Workbench abstraction that lets agents share a single MCP server session across all tools, enabling stateful servers (e.g., login sessions, browser state) that tool adapters could not support.
›Enables AssistantAgent to accept a workbench= parameter, wiring it directly to a shared-session tool collection.
›Adds FunctionalTermination termination condition, letting teams define stop logic via an arbitrary function expression instead of only built-in conditions.
›Adds new sample demonstrating autogen-core + FastAPI for a handoff multi-agent pattern with streaming and a UI.
4 more releases in this issue
· 2025-04-03 → 2025-04-25
AutoGen v0.5.4 adds AgentTool/TeamTool nesting, Azure AI Agent adapter, Docker Jupyter executor, and Canvas shared memory.
└──▷ GET THIS VERSION
$ git clone --branch python-v0.5.4 https://github.com/microsoft/autogen.git
# already have the repo? check out this version:$ git checkout python-v0.5.4
└──▷ USE IT
Delegate sub-tasks to a specialist agent by wrapping it as a tool — useful when an orchestrator should call a writer, coder, or researcher on demand.
python
writer_tool = AgentTool(agent=writer)
assistant = AssistantAgent(
name="assistant",
model_client=model_client,
tools=[writer_tool],
system_message="You are a helpful assistant.",
)
Let a CodeExecutorAgent automatically retry and self-debug when generated code fails, reducing manual intervention in automated pipelines.
›Adds AgentTool and TeamTool to wrap agents and teams as callable tools for other agents, enabling nested agent hierarchies.
›Introduces AzureAIAgent adapter with support for file search, code interpreter, and Azure AI Agent service integration.
›Adds DockerJupyterCodeExecutor for sandboxed Jupyter code execution inside Docker containers.
›Introduces experimental CanvasMemory — a shared whiteboard memory letting multiple agents collaboratively read/write a common artifact.
›Adds autogen-contextplus community extension for advanced model context management with automatic summarization and truncation.
+4 moreshow less
›SelectorGroupChat now supports streaming-only models (e.g., QwQ) via new model_client_streaming=True parameter, and can emit inner selector reasoning with emit_team_events=True.
›CodeExecutorAgent gains max_retries_on_error parameter for automatic self-debugging retry loops on code execution failures.
›Adds multiple_system_messages field to ModelInfo to generalize continuous system-message merging across model providers.
›Docker code executor now supports exposing GPUs to the container.
AutoGen 0.5.3 adds code generation to CodeExecutorAgent, serializable AssistantAgent, MCP shared sessions, and team event controls.
└──▷ GET THIS VERSION
$ git clone --branch python-v0.5.3 https://github.com/microsoft/autogen.git
# already have the repo? check out this version:$ git checkout python-v0.5.3
└──▷ USE IT
Generate and immediately execute LLM-produced code in one agent turn — useful for data-analysis or automation tasks where you want a single agent to both write and run code.
python
from autogen_agentchat.agents import CodeExecutorAgent
# model_client enables code generation; executor runs the result
agent = CodeExecutorAgent(
name="coder",
code_executor=executor,
model_client=model_client,
)
result = await agent.run(task="Write and run a Python script that prints the first 10 Fibonacci numbers.")
Suppress internal team-coordination events from the stream when you only want final agent messages, or enable them for debugging selector decisions.
python
from autogen_agentchat.teams import SelectorGroupChat
team = SelectorGroupChat(
participants=[agent1, agent2],
model_client=model_client,
emit_team_events=True, # set False to hide SelectorSpeakerEvent etc.
)
async for msg in team.run_stream(task="Analyze this dataset."):
print(msg)
›Enables CodeExecutorAgent to generate and execute code in the same invocation via new code generation support.
›Adds autogen_core.utils module with JSON schema utilities, enabling AssistantAgent to be serialized when output_content_type is set.
›Introduces optional emit_team_events parameter on teams to control whether events like SelectorSpeakerEvent are emitted through run_stream.
›Allows mcp_server_tools factory to reuse a shared MCP session, enabling patterns like a persistent Playwright MCP server connection.
›Adds message type printing to the Console output.
AutoGen v0.5.2 adds Gemini 2.5 Pro support and exposes more Task-Centric Memory parameters and TypedDict classes.
└──▷ GET THIS VERSION
$ git clone --branch python-v0.5.2 https://github.com/microsoft/autogen.git
# already have the repo? check out this version:$ git checkout python-v0.5.2
›Adds Gemini 2.5 Pro Preview as a supported model.
›Exposes additional Task-Centric Memory (TCM) configuration parameters for finer control over memory behavior.
›Exposes TCM TypedDict classes so applications can directly reference and type-check Task-Centric Memory structures.
›Adds PowerShell path detection to the code executor for Windows environments.
AutoGen v0.5.1 adds structured output, Azure AI Search tool, token-limited context, and richer model client capabilities.
└──▷ GET THIS VERSION
$ git clone --branch python-v0.5.1 https://github.com/microsoft/autogen.git
# already have the repo? check out this version:$ git checkout python-v0.5.1
└──▷ USE IT
Have an AssistantAgent produce structured Pydantic output after a tool call — ideal for downstream programmatic consumption.
python
from autogen_agentchat.agents import AssistantAgent
from autogen_agentchat.messages import TextMessage
from autogen_agentchat.ui import Console
from autogen_core import CancellationToken
from autogen_core.tools import FunctionTool
from autogen_ext.models.openai import OpenAIChatCompletionClient
from pydantic import BaseModel
from typing import Literal
class AgentResponse(BaseModel):
thoughts: str
response: Literal["happy", "sad", "neutral"]
def sentiment_analysis(text: str) -> str:
return "happy" if "happy" in text else "sad" if "sad" in text else "neutral"
tool = FunctionTool(sentiment_analysis, description="Sentiment Analysis", strict=True)
model_client = OpenAIChatCompletionClient(model="gpt-4o-mini")
agent = AssistantAgent(
name="assistant",
model_client=model_client,
tools=[tool],
system_message="Use the tool to analyze sentiment.",
output_content_type=AgentResponse,
)
await Console(agent.on_messages_stream(
[TextMessage(content="I am happy today!", source="user")], CancellationToken()
))
›Adds output_content_type parameter to AssistantAgent so agents can emit structured Pydantic model responses via StructuredMessage.
›New AzureAISearchTool integration lets agents perform semantic/keyword search against Azure AI Search indexes.
›Adds candidate_func parameter to SelectorGroupChat for filtering the pool of agent candidates before selection.
›Adds async support for selector_func and candidate_func in SelectorGroupChat.
+7 moreshow less
›Adds cancellation support to the Docker code executor.
›Introduces TokenLimitedChatCompletionContext to cap token usage in long-running agent contexts.
›Adds thought field support to AzureAIChatCompletionClient and OllamaChatCompletionClient for reasoning/chain-of-thought tokens.
›Adds reasoning field to ModelClientStreamingChunkEvent to distinguish thought tokens from response tokens.
›Introduces modular Transformer Pipeline for model clients (e.g. Gemini/Anthropic content transforms).
›Extends model family resolution to support non-prefixed model names such as Mistral.
›Changes CodeExecutor default working directory to a temporary directory.
└──▷ BREAKING ON UPGRADE
!Custom agents subclassing BaseChatAgent and custom TerminationCondition subclasses must update method signatures: replace AgentEvent with BaseAgentEvent and ChatMessage with BaseChatMessage in type hints.
!The CodeExecutor default directory is now a temporary directory instead of the previous default, which may affect executors that relied on the old default path for output artifacts.
OpenAI Agents SDK v0.0.12 adds LiteLLM integration for any third-party model and lifts strict-mode restrictions on agent output types.
└──▷ GET THIS VERSION
$ git clone --branch v0.0.12 https://github.com/openai/openai-agents-python.git
# already have the repo? check out this version:$ git checkout v0.0.12
└──▷ USE IT
Run an agent backed by Anthropic Claude via LiteLLM without changing any other agent code.
python
from agents import Agent
agent = Agent(
name="claude-agent",
model="litellm/anthropic/claude-3-5-sonnet-20240620",
instructions="You are a helpful assistant.",
)
›Adds LiteLLM integration: pass any provider model to Agent via model="litellm/<provider>/<model_name>" (e.g. model="litellm/anthropic/claude-3-5-sonnet-20240620") to route completions through LiteLLM's unified interface.
›Enables non-strict output types on Agent, allowing more complex structured outputs that previously required strict JSON schema mode.
›Adds extra_query and extra_body fields to ModelSettings for passing extra request parameters directly to the underlying API call.
›Adds support for previous_response_id from the OpenAI Responses API, enabling stateful multi-turn conversations without re-sending full message history.
›Adds overwrite mechanism for stream_options in ModelSettings, allowing fine-grained control over streaming behavior.
└──▷ BREAKING ON UPGRADE
!The referencable_id field is renamed to response_id — any code referencing referencable_id will break.
PydanticAI v0.1.7 adds Gemini video support, multi-instruction agents, and attribute docstrings on tools by default.
└──▷ GET THIS VERSION
$ git clone --branch v0.1.7 https://github.com/pydantic/pydantic-ai.git
# already have the repo? check out this version:$ git checkout v0.1.7
›Sets use_attribute_docstrings=True as the default on tools, so attribute-level docstrings are automatically used in tool schemas without explicit configuration.
›Supports multiple instructions on an Agent, with correct concatenation when more than one instruction is provided.
›Adds Gemini video support, enabling video content to be passed to Gemini models via the PydanticAI message API.
PydanticAI v0.1.6 adds OpenTelemetry tracing for AudioUrl, VideoUrl, DocumentUrl, and ImageUrl content.
└──▷ GET THIS VERSION
$ git clone --branch v0.1.6 https://github.com/pydantic/pydantic-ai.git
# already have the repo? check out this version:$ git checkout v0.1.6
›OpenTelemetry spans now include AudioUrl, VideoUrl, DocumentUrl, and ImageUrl content metadata, enabling full observability over multimodal model interactions.
Semantic Kernel .NET 1.48.0 adds Gemini thinking budget config, UserSecurityContext, OpenAPI operation selector, OpenTelemetry for Azure AI Inference, and graduates the Liquid prompt template package.
└──▷ GET THIS VERSION
$ git clone --branch dotnet-1.48.0 https://github.com/microsoft/semantic-kernel.git
# already have the repo? check out this version:$ git checkout dotnet-1.48.0
›Adds UserSecurityContext to AzureOpenAIPromptExecutionSettings for passing user security context through Azure OpenAI prompt execution.
›Introduces Gemini Thinking Budget Configuration for controlling reasoning token budgets in Google Gemini integrations.
›Adds an OpenAPI operation selector, enabling callers to filter or choose which OpenAPI operations are exposed as kernel functions.
›Adds OpenTelemetry support for Azure AI Inference, bringing tracing and metrics parity to the Azure AI Inference connector.
›Graduates Microsoft.SemanticKernel.PromptTemplates.Liquid from experimental to stable, making the Liquid prompt template engine production-ready.
+4 moreshow less
›Updates MCP integration to 0.1.0-preview.11, including details and support for remote MCP SSE servers and authentication.
›Updates AgentFactory implementations to handle existing agents, enabling reuse of previously created agent instances.
›Removes the experimental attribute from the stable OpenAPI API surface, formally stabilizing those APIs.
›Adds a streaming retry filter example demonstrating how to implement retry logic for streaming kernel invocations.
└──▷ BREAKING ON UPGRADE
!SK planners are now marked obsolete and will generate compiler warnings in consuming code.
7 more releases in this issue
· 2025-04-03 → 2025-04-29
Semantic Kernel Python 1.29.0 adds Brave search, kernel cloning, process state management, and richer agent polling and metadata.
└──▷ GET THIS VERSION
$ git clone --branch python-1.29.0 https://github.com/microsoft/semantic-kernel.git
# already have the repo? check out this version:$ git checkout python-1.29.0
└──▷ USE IT
Clone a fully configured kernel (plugins, services, filters) to create an isolated variant without re-registering everything from scratch.
python
from semantic_kernel import Kernel
original_kernel = Kernel()
# ... register plugins, services, etc.
cloned_kernel = original_kernel.clone()
cloned_kernel.add_plugin(extra_plugin)
›Adds RunPollingOptions at the run-level for AzureAIAgent, OpenAIAssistantAgent, and OpenAIResponsesAgent, and moves RunPollingOptions import to base level alongside continue during invoke tool calls support.
›Returns thread_id and run_id in agent response metadata, giving callers direct access to run identifiers from agent invocations.
›Adds Brave search capability as a new plugin/connector in the Python SDK.
›Adds kernel.clone() (clone a kernel) to programmatically duplicate a configured Kernel instance.
›Adds Process State Management support for stateful multi-step process workflows.
Semantic Kernel .NET 1.47.0 adds SK-agent-as-MCP-tool exposure, MCP tool consumption by agents, Brave search, and .yml prompt support.
└──▷ GET THIS VERSION
$ git clone --branch dotnet-1.47.0 https://github.com/microsoft/semantic-kernel.git
# already have the repo? check out this version:$ git checkout dotnet-1.47.0
└──▷ USE IT
Use Brave Search as the web search backend via the new BraveConnector in WebSearchPlugin.
csharp
var braveConnector = new BraveConnector(apiKey: "<your-brave-api-key>");
var webSearchPlugin = new WebSearchEnginePlugin(braveConnector);
kernel.ImportPluginFromObject(webSearchPlugin, "WebSearch");
›Adds BraveConnector to WebSearchPlugin, enabling Brave Search as a web search backend alongside existing providers.
›Enables SK agents to be exposed as MCP tools (SK agent as MCP tool), letting other MCP clients call Semantic Kernel agents via the Model Context Protocol.
›Enables SK agents to consume MCP tools (Use Mcp tools by SK agents), so agents can invoke any MCP-compatible tool server.
›Adds support for .yml file extensions (in addition to .yaml) when loading prompt templates in the C# SDK.
›Adds support for relative file references in Prompty prompt files, allowing prompts to reference other assets by relative path.
+8 moreshow less
›Adds type property to API documentation and schema definitions for improved JSON schema conformance.
›Adds plugin description propagation (add plugin description) so plugin-level descriptions are included in tool metadata.
›Adds RetainArgumentTypes option to agent arguments, preserving strong typing when passing arguments through ModelContextProtocolPlugin.
›Adds an MCP sampling sample demonstrating how to use MCP sampling with Semantic Kernel agents.
›Updates OpenTelemetry GenAI semantic attributes to align with the latest GenAI conventions.
›Updates Qdrant integration to the latest Qdrant SDK version.
›Uses dependency injection (DI) to manage prompt, resource, and resource template definitions in the MCP server layer.
›Removes SingleAuthorizationHeaderPolicy, consolidating authorization header handling.
└──▷ BREAKING ON UPGRADE
!SingleAuthorizationHeaderPolicy has been removed; any code that referenced or registered this policy will break on upgrade.
Semantic Kernel Python 1.28.1 expands MCP integration with prompt, sampling, and agent-as-server support.
└──▷ GET THIS VERSION
$ git clone --branch python-1.28.1 https://github.com/microsoft/semantic-kernel.git
# already have the repo? check out this version:$ git checkout python-1.28.1
›Adds MCP prompt and sampling support to Semantic Kernel's MCP integration.
›Enables creating an MCP server directly from a Semantic Kernel agent.
Semantic Kernel dotnet-1.46.0 adds declarative agents, exposes kernel function metadata, and graduates stable APIs from experimental.
└──▷ GET THIS VERSION
$ git clone --branch dotnet-1.46.0 https://github.com/microsoft/semantic-kernel.git
# already have the repo? check out this version:$ git checkout dotnet-1.46.0
›Adds declarative agents support via the new Feature declarative agents capability, enabling agent definitions without imperative code.
›Exposes the underlying MethodInfo from KernelFunction, giving callers direct access to the reflected method for inspection or invocation.
›Removes [Experimental] flags from previously preview APIs, promoting them to stable surface in the public contract.
›Adds a React sample app demonstrating SK Process Cloud Events integration.
›Adds samples for MCP Resources and Resource Templates, showing how to surface and consume typed resource endpoints from an MCP server.
+6 moreshow less
›Adds a structured output example combining Azure OpenAI with Function Calling.
›Adds a document-generation gRPC sample for the SK Process framework.
›Extends the MCP sample to show consuming MCP Tools from within an Agent.
›Enables dependency injection (DI) for SK plugins in the MCP demo server.
›Updates WebFileDownloadPlugin, HttpPlugin, and FileIOPlugin with new capabilities.
›Bumps AWSSDK to 4.0.0-preview.13 and Microsoft.Extensions.AI to 9.4.0-preview.
Semantic Kernel Python 1.28.0 adds MCP Server support, Auto Function Invocation Filters for agents, and multimodal Kernel Functions from Prompt.
└──▷ GET THIS VERSION
$ git clone --branch python-1.28.0 https://github.com/microsoft/semantic-kernel.git
# already have the repo? check out this version:$ git checkout python-1.28.0
›Exposes Semantic Kernel as a Model Context Protocol (MCP) Server, letting external MCP clients invoke SK kernel functions directly.
›Adds Auto Function Invocation Filter support for AzureAIAgent and OpenAIAssistantAgent, enabling pre/post-invocation hooks on auto-called functions.
›Enables KernelFunction creation from prompts that include image and audio content, extending multimodal support to prompt-based function definitions.
›Adds a sample demonstrating the GitHub MCP Server integrated with AzureAIAgent as a practical MCP + agent usage pattern.
›Allows Semantic Kernel settings objects to be instantiated directly without requiring environment-variable or file-based configuration.
Semantic Kernel Python 1.27.0 adds Agents-as-Kernel-Functions, an OpenAI Responses Agent, SQL Connector, and MCP server plugin support.
└──▷ GET THIS VERSION
$ git clone --branch python-1.27.0 https://github.com/microsoft/semantic-kernel.git
# already have the repo? check out this version:$ git checkout python-1.27.0
└──▷ USE IT
Receive intermediate agent messages during a long-running agent invocation, e.g. to stream tool-call progress to a UI.
python
async def handle_intermediate(message):
print(f'Intermediate: {message}')
async for response in agent.invoke(
thread=thread,
on_intermediate_message=handle_intermediate,
):
print(response)
›Adds on_intermediate_message callback to the Agent abstraction, enabling callers to receive streamed intermediate messages during agent invocation.
›Introduces the OpenAIResponsesAgent class, a new agent type backed by the OpenAI Responses API.
›Supports using an MCP (Model Context Protocol) server as a Semantic Kernel plugin, allowing MCP-exposed tools to be called as kernel functions.
›Introduces the SQL Connector, enabling vector store and data retrieval operations against SQL databases.
›Allows Agents to be used directly as Kernel Functions, composing agent invocations inside kernel pipelines.
+1 moreshow less
›Adds AzureAIAgent structured outputs support, enabling schema-constrained responses from Azure AI agents.
Semantic Kernel .NET 1.45.0 adds audio I/O for OpenAI, Tavily integration, MCP samples, and agent API improvements.
└──▷ GET THIS VERSION
$ git clone --branch dotnet-1.45.0 https://github.com/microsoft/semantic-kernel.git
# already have the repo? check out this version:$ git checkout dotnet-1.45.0
›Adds OnIntermediateMessage callback (renamed from OnNewMessage) to receive notifications for all agent messages during invocation.
›Adds audio input and output support for OpenAI chat completions.
›Adds Tavily search integration as a new plugin/connector.
›Adds ChatHistoryAgent (marked experimental) as a new agent type.
›Adds agent-specific parameters support via new overloads in the common agent invoke API.
+7 moreshow less
›Adds invoke overloads accepting a plain string message or no message, enabling simpler agent calls.
›Adds Qdrant CRUD datetime support for datetime-typed vector store record fields.
›Adds OpenAPI server URL override hierarchy support for OpenAPI-based plugins.
›Adds MCP (Model Context Protocol) server/client sample and MCP prompt sample demonstrating client and server interop.
›Adds hybrid search sample and moves hybrid search tests to updated project structure.
›Removes Agent preview suffix, promoting the Agent API to non-preview status.
›Merges KernelAgent functionality into Agent.cs, consolidating the agent base class.
└──▷ BREAKING ON UPGRADE
!The OnNewMessage callback is renamed to OnIntermediateMessage; any code referencing OnNewMessage will break.
!KernelAgent.cs is removed and its functionality merged into Agent.cs; any direct references to KernelAgent will break.
smolagents v1.14.0 adds MCPClient for MCP server connections, Amazon Bedrock native support, and star-pattern import authorization.
└──▷ GET THIS VERSION
$ git clone --branch v1.14.0 https://github.com/huggingface/smolagents.git
# already have the repo? check out this version:$ git checkout v1.14.0
›Adds MCPClient class to manage connections to one or more MCP servers, enabling flexible multi-server integration within smolagents.
›Introduces star-pattern-based import authorization for fine-grained control over which modules agents are permitted to import, improving sandboxed execution security.
›Adds client_kwargs pass-through for VLLMModel to supply model client parameters to the underlying vLLM client.
›Adds api_key argument to HfApiModel / InferenceClientModel for explicit key configuration.
›Implements Tool.from_dict and Agent.from_dict for deserializing tools and agents from dictionary representations.
+4 moreshow less
›Supports Literal type annotations in the @tool decorator for defining enum-constrained arguments.
›Adds custom Docker image support and enhanced configuration options for DockerExecutor.
›Makes MultiStepAgent an abstract class, enabling cleaner subclassing for custom agent types.
›Supports class docstrings and annotated assignments in LocalPythonExecutor, broadening the Python syntax handled during sandboxed code execution.
└──▷ BREAKING ON UPGRADE
!HfApiModel is renamed to InferenceClientModel; any code importing or instantiating HfApiModel by that name will break.
1 more release in this issue
· 2025-04-02 → 2025-04-18
smolagents v1.13.0 adds agent interruption, image observation logging in the Gradio UI, and automatic submodule import authorization.
└──▷ GET THIS VERSION
$ git clone --branch v1.13.0 https://github.com/huggingface/smolagents.git
# already have the repo? check out this version:$ git checkout v1.13.0
└──▷ USE IT
Load an MCP tool collection while explicitly trusting remote code — useful when working with third-party MCP servers.
python
from smolagents import ToolCollection
tools = ToolCollection.from_mcp("<mcp_server_url>", trust_remote_code=True)
Authorize a top-level package and rely on automatic submodule authorization instead of listing every subpackage.
python
from smolagents import CodeAgent, HfApiModel
agent = CodeAgent(
tools=[],
model=HfApiModel(),
additional_authorized_imports=["numpy"], # numpy.random, numpy.linalg, etc. are now also authorized
)
›Adds trust_remote_code parameter to ToolCollection.from_mcp for controlling remote code trust when loading MCP tool collections.
›Authorizes submodule imports automatically when a top-level package is listed in additional_authorized_imports — e.g. additional_authorized_imports=["numpy"] now also permits numpy.random and other subpackages without listing each one explicitly.
›Adds agent interruption support, allowing a running agent to be interrupted mid-execution.
›Gradio UI now logs images observed by the agent during a run, making multimodal agent traces visible in the interface.
›Exposes the underlying Gradio app object so users can retrieve and customize it directly.
+3 moreshow less
›Adds WikipediaSearchTool to the default tools available in smolagents.
›Introduces distinct AgentToolCallError and AgentToolExecutionError exception types, separating tool-call failures from tool-execution failures.
›Streaming run now yields PlanningSteps, making planning activity visible during streamed agent runs.
Aider v0.82.0 adds GPT-4.1/grok-3/Gemini 2.5 Pro support, new patch and editor edit formats, and Fireworks AI deepseek-v3.
└──▷ GET THIS VERSION
$ git clone --branch v0.82.0 https://github.com/Aider-AI/aider.git
# already have the repo? check out this version:$ git checkout v0.82.0
└──▷ TRY IT
Use the grok3 alias to quickly target xai/grok-3-beta without typing the full model path.
$ aider --model grok3
›Supports GPT-4.1, GPT-4.1 mini, and GPT-4.1 nano models.
›Improved architect mode support for Gemini 2.5 Pro.
›Adds support for xai/grok-3-beta, xai/grok-3-mini-beta, grok-3-fast-beta, grok-3-mini-fast-beta, and OpenRouter variants including openrouter/openrouter/optimus-alpha.
›New patch edit format for OpenAI's GPT-4.1 model.
›New editor-diff, editor-whole, and editor-diff-fenced edit formats.
+3 moreshow less
›Adds short aliases: grok3 for xai/grok-3-beta and optimus for openrouter/openrouter/optimus-alpha.
›Allows adding files by full path even when a file with the same basename is already in the chat.
›Adds support for Fireworks AI model deepseek-v3-0324.
1 more release in this issue
· 2025-04-04 → 2025-04-14
Cline v3.11.0 adds redesigned checkpoints with visual indicators and support for xAI Grok 3 models.
└──▷ GET THIS VERSION
$ git clone --branch v3.11.0 https://github.com/cline/cline.git
# already have the repo? check out this version:$ git checkout v3.11.0
›Redesigned Checkpoints: checkpoints are created more frequently during tasks and appear as line indicators on the left edge of chat, with hover-to-expand details including creation time.
›Adds support for xAI's Grok 3 models as a provider option.
Cline v3.10.0 adds local Chrome browser integration, smarter context shortening, and an all-commands auto-approve option.
└──▷ GET THIS VERSION
$ git clone --branch v3.10.0 https://github.com/cline/cline.git
# already have the repo? check out this version:$ git checkout v3.10.0
›Enables session-based browsing using your local Chrome browser, preserving actual browser state for debugging and productivity workflows.
›Adds an in-chat modal for quickly enabling or disabling MCP servers without leaving the chat area.
›New auto-approve option to approve ALL commands, bypassing per-command confirmation prompts.
›Smarter context window shortening now removes old file contents from conversation history instead of truncating the first half of messages, preserving narrative integrity.
›Supports drag-and-drop of files and folders directly into the Cline chat input.
+1 moreshow less
›Adds prompt caching support for LiteLLM combined with Claude models.
Continue v1.0.7 adds chatOptions.baseSystemMessage, lazy apply for full files, and a create-file button in the code block toolbar.
└──▷ GET THIS VERSION
$ git clone --branch v1.0.7-vscode https://github.com/continuedev/continue.git
# already have the repo? check out this version:$ git checkout v1.0.7-vscode
└──▷ USE IT
Inject a standing security-focused instruction into every chat session without repeating it in each prompt.
json
"chatOptions": {
"baseSystemMessage": "You are a security-aware coding assistant. Always flag use of deprecated crypto APIs and suggest modern alternatives."
}
›Adds chatOptions.baseSystemMessage config key to set a base system message for chat sessions.
›Reintroduces lazy apply for full files, enabling faster application of large AI-suggested edits.
›Adds a 'create file' button directly in the code block toolbar for one-click file creation from a suggestion.
›Adds a toolbar header to all code blocks, surfacing actions consistently across the UI.
›Adds a refresh button on the right of the assistant selector to reload available assistants.
+4 moreshow less
›Allows skipping the Ollama onboarding flow for users who have already configured Ollama.
›Adds no-diff stream progress indicator for fast-apply models, giving visual feedback without a diff view.
›Generates a JSON schema for the Continue configuration format.
›Profiles now refresh automatically on deeplink navigation and when selecting an org or profile.
1 more release in this issue
· 2025-04-17 → 2025-04-26
Continue v1.0.6 adds Docker model runner, Inception/InceptionLabs providers, LS/Grep/Glob agent tools, prompt blocks, and Bedrock prompt caching.
└──▷ GET THIS VERSION
$ git clone --branch v1.0.6-vscode https://github.com/continuedev/continue.git
# already have the repo? check out this version:$ git checkout v1.0.6-vscode
›Adds support for the Docker model runner as a model provider.
›Adds the inception provider for Inception Labs models.
›Adds the inceptionlabs provider as a dedicated InceptionLabs integration.
›Adds LS (list directory), Grep, and Glob built-in agent tools for file-system navigation during agentic sessions.
Goose v1.0.17 adds session sharing, chat search, prompt library, VSCode server support, and input/output token tracking.
└──▷ GET THIS VERSION
$ git clone --branch v1.0.17 https://github.com/block/goose.git
# already have the repo? check out this version:$ git checkout v1.0.17
└──▷ HOW TO FIND IT
Insert a new line mid-prompt without submitting — useful when composing multi-line instructions in the chat UI.
📍Option + Enter
›Adds session sharing from the UI, with pre-configuration via GOOSE_BASE_URL_SHARE environment variable and additional metadata in the shared session view.
›Adds search functionality to the chat view.
›Adds a Prompt Library to the UI.
›Adds the VSCode server to the extensions list.
›Adds input and output token tracking to SessionMetadata.
+10 moreshow less
›Adds tool annotations for built-in tools.
›Adds a named feature flag system for Settings V2.
›Adds a timeout field to the Settings V2 modal.
›Adds an additive entry in the Settings V2 model selector.
›Enables Option+Enter keyboard shortcut to insert a new line in chat input.
›Adds env-var editor when adding or editing extensions.
›Adds an allowlist option for the goosed daemon.
›Adds copy button for extensions and makes extension builtins available at any time.
›Adds Playwright end-to-end testing setup.
›Turns the Goose entrypoint into a library function for programmatic use.
OpenHands 0.32 adds microagent context visibility, PR template awareness, and enables context condensation by default.
└──▷ GET THIS VERSION
$ git clone --branch 0.32.0 https://github.com/All-Hands-AI/OpenHands.git
# already have the repo? check out this version:$ git checkout 0.32.0
›Displays microagent context directly in the UI so practitioners can see which microagent knowledge is active during a session.
›Shows edited file paths in the conversation headline for at-a-glance change tracking.
›Enables context condensation by default, automatically compressing long conversation histories to stay within model context limits.
›Expands GitLab repository listing to include repos where the user has membership but is not the owner.
›Supports microagent files without a required header, reducing friction when authoring custom microagents.
+3 moreshow less
›Adds a user-friendly UI message for content policy violation errors.
›Prompts the agent to follow existing PR templates when creating new pull requests.
›Improves event retrieval performance for conversations with a large number of events.
└──▷ BREAKING ON UPGRADE
!Condensation is now enabled by default; existing deployments that relied on full, uncompressed conversation history will have condensation applied automatically on upgrade.
Zed v0.183.10 adds Git amend, customizable bottom dock layouts, OpenAI o3/o4-mini support, and new editor actions.
└──▷ GET THIS VERSION
$ git clone --branch v0.183.10 https://github.com/zed-industries/zed.git
# already have the repo? check out this version:$ git checkout v0.183.10
└──▷ USE IT
Keep the bottom dock full-width regardless of which side docks are open, useful for a wide terminal or AI panel.
json
{
"bottom_dock_layout": "full"
}
Use left-aligned bottom dock layout so the bottom panel only spans the area not occupied by the left dock.
json
{
"bottom_dock_layout": "left_aligned"
}
›Adds bottom_dock_layout setting with options contained (default), full, left_aligned, and right_aligned to control how the bottom dock is laid out when multiple docks are open simultaneously.
›Adds new actions editor::FindNextMatch and editor::FindPreviousMatch that jump to the first or last selection when multiple selections exist, similar to editor::SelectNext/editor::SelectPrevious with 'replace_newest': true.
›Adds Git amend support in the Git panel.
›Adds support for OpenAI o3 and o4-mini models via the OpenAI API and Copilot Chat providers.
›Tasks are now loaded from local .vscode/tasks.json files even when they are .gitignored.
+10 moreshow less
›Improves block diagnostics rendering in the diagnostics view and when using f8/shift-f8, which now always navigate to the next or previous diagnostic regardless of editor state.
›Adds code actions to the right-click context menu for improved visibility.
›Python: Adds auto-closing support for f, b, u, r, rb, and t string prefixes.
›Vim: The :s// command now defaults to replacing the first match per line (matching Vim behavior); use /g to replace all matches.
›Vim: Adds forced motion support for delete and yank, and a delete mapping in normal mode.
›Adds file icon support for Vyper (.vy, .vyi) files.
›Sublime Keymap: Adds git::Restore compatibility bind (revert_hunk) — cmd-k cmd-z on Mac and ctrl-k ctrl-z on Linux.
›Markdown preview now uses the buffer font size instead of the UI font size.
›Enables required Cargo features automatically when executing a Rust example or binary through a task.
›Cursor position is now reset to where it was after the last edit when undoing a format operation.
└──▷ BREAKING ON UPGRADE
!The Vim :s// command now replaces only the first match per line by default (matching Vim behavior), rather than all matches; append /g to restore the previous all-matches behavior.
Zed v0.182.9 adds screensharing on X11, --user-data-dir CLI flag, task tags, LSP stop control, and new completions.lsp_insert_mode setting.
└──▷ GET THIS VERSION
$ git clone --branch v0.182.9 https://github.com/zed-industries/zed.git
# already have the repo? check out this version:$ git checkout v0.182.9
└──▷ TRY IT
Launch Zed with an isolated user data directory — useful for testing profiles or CI environments.
$ zed --user-data-dir /tmp/zed-profile-test .
›Adds --user-data-dir CLI flag to specify a custom user data directory.
›Adds completions.lsp_insert_mode setting to control what is replaced when an LSP completion is accepted.
›Adds ConfirmCompletionInsert and ConfirmCompletionReplace actions for fine-grained LSP completion insertion control; shift-enter triggers ConfirmCompletionReplace by default, overriding completions.lsp_insert_mode.
›Adds support for the insert_text_mode field of completions from the Language Server Protocol.
›Adds an editor: toggle case command, bound to cmd-shift-u (macOS) and ctrl-shift-u (Linux) in the JetBrains keymap.
+10 moreshow less
›Adds ability to spawn tasks by tag with key bindings, and surfaces tags in the tasks selector.
›Adds a way to temporarily stop LSP servers from within the editor.
›Adds tasks surfaced from rust-analyzer.
›Adds screensharing support on X11 (Linux).
›Adds a project search button to the status bar.
›Adds a git activity indicator for long-running git commands.
›Adds vim motions from the indent-wise plugin: [-, ]-, [+, ]+, [=, ]=.
›Adds warning for leading or trailing whitespace when renaming or creating files/directories in the Project Panel.
›Changes the default hosted LLM model to Claude 3.7 Sonnet.
›Expands default helix-style keybindings in experimental HelixNormal mode.
└──▷ BREAKING ON UPGRADE
!When using a system Node runtime, Zed now requires Node >= v20. Previously Node >= v18 was accepted. The Zed bundled Node runtime (v23) is unaffected.
Zed v0.181.7 adds Gemini 2.5 Pro and GPT-4.1 family models to Copilot Chat and the Agent panel.
└──▷ GET THIS VERSION
$ git clone --branch v0.181.7 https://github.com/zed-industries/zed.git
# already have the repo? check out this version:$ git checkout v0.181.7
›Adds Gemini 2.5 Pro to Copilot Chat, available in both the stable Assistant panel and the new Agent panel (beta).
›Adds OpenAI GPT-4.1, GPT-4.1 mini, and GPT-4.1 nano via Copilot Chat and the OpenAI API, available in both the stable Assistant panel and the new Agent panel (beta).
Zed v0.181.5 adds GPU selection on Linux, git commit viewer, Vim :ls/:options/g?, DeepSeek R1 on Bedrock, and project panel gitignore hiding.
└──▷ GET THIS VERSION
$ git clone --branch v0.181.5 https://github.com/zed-industries/zed.git
# already have the repo? check out this version:$ git checkout v0.181.5
└──▷ USE IT
Control when the mouse cursor hides — for example, hide it only while typing, not on movement.
yaml
hide_mouse: on_typing
›Adds ZED_DEVICE_ID environment variable on Linux to force Zed to use a specific GPU (hex value, e.g. ZED_DEVICE_ID=0x2484); obtain the ID via lspci -nn | grep VGA.
›Adds ProjectPanel::ToggleHideGitIgnore action and project_panel.hide_gitignore setting to hide gitignored files in the project panel.
›Adds hide_mouse setting accepting values on_typing_and_movement, on_typing, or never to control mouse cursor auto-hiding behavior.
›Adds support for Terminal && vi_mode as a keybinding context to detect when the terminal is in vi mode.
›Vim: adds :ls and :buffers commands.
+17 moreshow less
›Vim: adds :options and :map commands.
›Vim: adds g? operator to convert text to Rot13/Rot47.
›Adds the ability to view past git commits in Zed — click a commit message in the commit panel or a SHA in git blame to inspect the full commit.
›Adds support for DeepSeek R1 hosted on AWS Bedrock as an AI provider.
›Adds persistent history of command palette usages.
›Respects an existing GIT_ASKPASS environment variable instead of overriding it, enabling git push workflows in tools like Coder.
›Auto-inserts a newline when pressing Enter between opening and closing tags in JSX/TSX.
›Improves restoration of editor state (folds, selections, scroll position) when files are reopened.
›Improves handling of upper-case characters in keybinds: special keys (F8, CTRL, SHIFT, etc.) are now parsed case-insensitively.
›Dims keybinds in context menus when the corresponding action is currently disabled.
›Adds ability to double-click on an empty pane to open a new file.
›Adds correct syntax highlighting for use bounds and async closures in Rust.
›Deduplicates git UI to show only one repository when two subdirectories of a common repository root are open.
›Git panel now prompts for confirmation before restoring a file.
›Python: improves detection of virtualenvwrapper environments in work trees.
›Python: improves highlighting of function parameters.
›Python: improves display of environments in the toolchain selector.
└──▷ BREAKING ON UPGRADE
!The hide_mouse_while_typing setting is renamed to hide_mouse; existing configs using the old name will need to be updated.
!Upper-case ASCII characters in keymaps are now explicitly converted to shift + the lowercase version of the character; keybindings relying on the previous behavior may need to be updated.
Suppress the go-to-definition fallback so Zed does nothing instead of opening a references panel when no definition is found.
json
{
"go_to_definition_fallback": "none"
}
Retrieve system specs for a GitHub bug report without launching the Zed GUI.
$ zed --system-specs
›Adds editor::CopyAndTrim action to trim whitespace from selections when copying.
›Adds go_to_definition_fallback setting, accepting find_all_references (default) or none, to control fallback behavior when go-to-definition finds no results.
›Adds env key under lsp.<server>.binary in settings to set environment variables for any language server (e.g. {"lsp": {"rust-analyzer": {"binary": {"env": {"RA_PROFILE": "*>100"}}}}}).
›Adds --system-specs flag to the Zed binary to retrieve system specs for GitHub issue reports without opening the GUI.
›Adds persistence for editor folds so they are preserved across restarts.
+17 moreshow less
›Adds :marks command in Vim mode to display a list of current marks.
›Adds ' and ' marks in Vim mode tracking last jump location in the current buffer and last exit location.
›Adds support for Gemini 2.5 Pro Experimental model in the AI assistant.
›Adds support for Claude Sonnet 3.7 Thought in the assistant panel and GitHub Copilot Chat.
›Updates Copilot to use the official @github/copilot-language-server language server.
›Adds a notification when tasks.json is saved in an invalid state.
›Adds a scrollbar to the extensions page.
›Adds option to copy an extension author's name and email from the extension context menu.
›Python: Adds detection for runnable Python modules and a task to run a Python file as a module from the project's scope.
›Python: Makes file/line references in the format File "file.py", line 8 clickable in the terminal.
›Python: Shows tasks from the Python plugin for standalone files.
›Adds recognition for APKBUILD files as 'Shell Script'.
›Updates bun.lock files to be recognized as JSONC.
›Inline assistant now expands empty selections to the block under the cursor.
›Reduces memory usage for installed monospace fonts (e.g. ~800MB to ~300MB on Arch Linux with nerd-fonts).
›Improves autocomplete suggestions in settings.json to query the whole string rather than just the last word.
›Improves Regex syntax highlighting.
└──▷ BREAKING ON UPGRADE
!Files 6GB or larger will no longer open; this is a temporary workaround for extreme memory usage with large files.
!Markdown default soft_wrap behavior changed from preferred_line_length to window width.
›Adds --mmprojcpu flag to load and run the multimodal projector on CPU while keeping the main model on GPU.
›Adds --blasbatchsize -1 mode that exclusively uses a batch size of 1 when processing prompts; also formally permits --blasbatchsize 16 to replicate the old non-GEMM batch-of-16 behavior.
›Adds OpenAI Structured Outputs support in the chat completions API, including accepting a JSON schema sent as a stringified JSON object in the grammar field, enabling enforced structured JSON outputs.
›Adds Android Termux auto-installer: a single command installs, downloads, compiles, and configures KoboldCpp with a Gemma3-1B model on Android via Termux (from F-Droid).
›Adds a HuggingFace model search tool allowing users to find, browse, and download models directly from within KoboldCpp.
+7 moreshow less
›Adds Qwen3 model support, including automatic --nobostoken triggering when model metadata explicitly indicates no BOS token.
›Adds functioning Pixtral vision model support; note Pixtral is token-heavy (~4000 tokens per 1024px image); --contextsize or --visionmaxres can be tuned accordingly.
›Merged overhaul to Qwen2.5VL projector, supporting both HimariO and ngxson multimodal projector versions with backwards compatibility.
›Adds automatic handling of multipart GGUF file downloading, supporting up to 9 parts.
›Adds ComfyUI compatibility improvements via rudimentary WebSocket spoof.
›Improved auto GPU layer assignment when loading multi-part GGUF models on a single GPU, with tightened memory estimation and quantized KV cache accounting.
›Kobold Lite adds a toggle to disable LaTeX rendering while keeping Markdown enabled, and adds ChatGLM-4 and Qwen3 (ChatML think/nothinking) presets.
└──▷ BREAKING ON UPGRADE
!--onready shell commands can no longer be embedded into a .kcppt or .kcpps file; they remain available only as a CLI parameter.
!ChatML (No Thinking) preset is removed from Kobold Lite; thinking control is now handled globally via Settings > Tokens > CoT.
3 more releases in this issue
· 2025-04-01 → 2025-04-29
›Adds --overridekv launcher flag to overwrite a single model metadata property at runtime; input format is keyname=type:value.
›Adds --overridetensors launcher flag to place tensors matching a pattern onto a specific backend; input format is tensornamepattern=buffertype.
›Enables Vulkan coopmat2 (CM2) support for Nvidia GPUs with Game Ready Driver 576.02 or later, adding flash attention and overall speed improvements; OldCPU Vulkan binaries now exclude coopmat, coopmat2, and DP4A.
›Improved NoScript mode at /noscript now supports chat mode and image generation without JavaScript, compatible with browsers as old as Internet Explorer 5 and Netscape Navigator 4.
›Enables Image Generation LoRAs for use with quantized diffusion models (LoRA itself should remain unquantized).
+7 moreshow less
›Displays available GPU memory when estimating layer counts.
›Makes YAD the default filepicker, replacing Zenity; Legacy TK filepicker remains available in the extras page.
›Increases Kobold Lite save slots to 10 local and 10 remote.
›Relocates Tokens Tab and WebSearch Tab into the Settings Panel; regex and token sequence configs now persist in settings rather than per-story.
›Adds Retain History toggle in Kobold Lite WebSearch to carry over prior search results into subsequent queries.
›Adds an editable Template for the Kobold Lite character creator.
›Reworks thinking-tag handling in Kobold Lite, separating display and submit regex behaviors across three modes each.
└──▷ BREAKING ON UPGRADE
!Kobold Lite regex and token sequence configs are now stored in settings rather than in the story, so existing per-story values will not automatically migrate.
Convert a JSON schema to GBNF grammar on the fly for structured-output constrained generation.
$ curl -X POST http://localhost:5001/api/extra/json_to_grammar -H 'Content-Type: application/json' -d '{"type":"object","properties":{"name":{"type":"string"},"age":{"type":"integer"}},"required":["name","age"]}'
›Adds --maxrequestsize flag to configure the server's maximum HTTP request payload size before dropping a request (default: 32 MB).
›Adds new API endpoint POST /api/extra/json_to_grammar to convert a JSON schema into GBNF grammar.
›Adds Image Inpainting support to StableUI, including a masking UI for Img2Img editing (similar to A1111) with updated API docs.
›Adds a clip-skip slider to StableUI.
›Adds Zenity and YAD support for native file picker dialogs on Linux; falls back to the previous TKinter picker via 'Use Classic FilePicker' in the extras tab.
+4 moreshow less
›Adds GPU memory estimation via vulkaninfo when nvidia-smi is unavailable.
›Merges Llama 4 support from upstream llama.cpp, with Qwen3 also included.
›Adds Llama 4 prompt format to Kobold Lite.
›Adds warnings in GUI and terminal when FlashAttention is used with the Vulkan backend due to performance concerns.
Query the embeddings endpoint directly to get a vector representation of a text string.
$ curl http://localhost:5001/v1/embeddings -H 'Content-Type: application/json' -d '{"input": "The quick brown fox", "model": "nomic-embed-text"}'
›Adds --embeddingsmodel flag to load GGUF embedding models, exposed via /v1/embeddings and /api/extra/embeddings for text encoding into vector databases.
›Adds --cli flag to run KoboldCpp in a fully headless terminal chat mode, with no GUI required.
›Adds --quantkv support without flash attention — when used without it, only quantized-K is applied (quantized-V is skipped).
›Adds OuteTTS voice cloning support: Speaker JSON files representing a cloned voice can now be uploaded via the TTS API.
›Adds automatic (auto) mode for function/tool calling, allowing the model to decide whether and which tool to invoke; the detection template is customizable via custom_tools_prompt in the chat completions adapter.
+6 moreshow less
›Merges Qwen2.5VL vision-language model support, with GGUF weights and mmproj projectors available for 7B and 32B variants.
›Adds World Info Groups in Kobold Lite UI: categorize world info entries by group, toggle groups on/off with a single click, and import/export each group as JSON.
›Adds a menu in Kobold Lite to upload a cloned speaker JSON for OuteTTS voice cloning.
›Adds a toggle in Kobold Lite to allow uploading images as a new turn in a conversation.
›Increases maximum resolution of uploaded images used with vision models in Kobold Lite.
›Adds localtunnel as a fallback tunneling option in the Colab environment when Cloudflare tunnels are blocked.
LocalAI v2.28.0 adds SYCL support for stablediffusion.cpp, Lumina model family support, and relaunches LocalAGI v2 as a Go-based agent orchestration platform.
└──▷ GET THIS VERSION
$ git clone --branch v2.28.0 https://github.com/mudler/LocalAI.git
# already have the repo? check out this version:$ git checkout v2.28.0
›Adds SYCL support for stablediffusion.cpp, enabling Intel GPU-accelerated image generation.
›Adds support for the Lumina model family (e.g., Lumina-Image-2.0) for local image generation.
›Enhances the LOCALAI_SINGLE_ACTIVE_BACKEND loader to treat the backend as a true singleton, improving single-backend reliability.
›Introduces LocalAGI v2, a fully rewritten Go-based AI agent orchestration platform with a no-code WebUI, compatible with the OpenAI Responses API and supporting built-in connectors for Slack, Telegram, Discord, GitHub Issues, and IRC.
›Introduces LocalRecall, a standalone REST API for persistent agent memory, spun out of LocalAGI v2 as its own component.
$ git clone --branch v0.4.5 https://github.com/sgl-project/sglang.git
# already have the repo? check out this version:$ git checkout v0.4.5
›Adds support for Llama 4 models (Llama-4-Scout-17B-16E-Instruct and Llama-4-Maverick-17B-128E-Instruct), achieving zero-shot MMLU Pro scores of 75.2 and 80.7 respectively.
›Adds FlashAttention 3 backend for significant acceleration on long-context inference tasks.
textgen v3.1 adds speculative decoding (up to +88.7% tokens/sec), Vulkan builds, and a universal --ctx-size flag across all loaders.
└──▷ GET THIS VERSION
$ git clone --branch v3.1 https://github.com/oobabooga/textgen.git
# already have the repo? check out this version:$ git checkout v3.1
└──▷ HOW TO FIND IT
Boost generation speed on a large GGUF model by pairing it with a small draft model for speculative decoding in the llama.cpp loader.
📍# In the UI, load google_gemma-3-27b-it-Q8_0.gguf and set the draft model to google_gemma-3-1b-it-Q4_K_M.gguf under the llama.cpp speculative decoding settings.
›Adds --extra-flags parameter to the llama.cpp loader for passing additional flags directly to llama-server (e.g. override-tensor=exps=CPU for MoE models).
›Adds --streaming-llm flag to llama.cpp (mapped to --cache-reuse in llama.cpp internals) to skip full prompt reprocessing when context length is filled, useful for long role-playing sessions.
›Adds universal --ctx-size flag to specify context size across all loaders.
›Adds speculative decoding to the llama.cpp loader; benchmarks show +88.7% tokens/second with a 27B model using a 1B draft model, with gains of +34–88% observed across different model combinations.
›Adds speculative decoding to the non-HF ExLlamaV2 loader.
+8 moreshow less
›Adds KV cache quantization to the ExLlamaV3 loader.
›Restructures all user data (models, characters, presets, saved settings) under text-generation-webui/user_data/ to enable portable install updates by moving a single folder.
›Adds Vulkan portable builds supporting AMD and Intel Arc GPUs on both Windows and Linux.
›Adds prompt processing progress messages to the llama.cpp loader.
›UI: Adds a collapsible thinking block for messages containing <think> steps.
›UI: Sets 'instruct' as the default chat mode.
›UI: Adds a greeting when the web UI launches in instruct mode with an empty chat history.
›UI: Model menu now displays only part 00001 of multipart GGUF files.
└──▷ BREAKING ON UPGRADE
!All user data has moved: models must be manually relocated from models/ to user_data/models/, presets from presets/ to user_data/presets/, and other user data (characters, saved settings) to their corresponding paths under user_data/ after upgrading.
3 more releases in this issue
· 2025-04-09 → 2025-04-27
oobabooga text-gen v2.7 adds ExLlamaV3 support via new ExLlamav3_HF loader, a Dark chat style, and default 8192 context-length cap.
└──▷ GET THIS VERSION
$ git clone --branch v2.7 https://github.com/oobabooga/textgen.git
# already have the repo? check out this version:$ git checkout v2.7
›Adds ExLlamav3_HF loader, providing ExLlamaV3 inference with the same sampler stack as Transformers and ExLlamav2_HF; pre-built wheels for Linux and Windows are included, removing manual installation (requires compute capability 8+).
Inspect the full running vLLM configuration programmatically after server startup.
$ curl http://localhost:8000/server_info | jq .
Benchmark end-to-end throughput for capacity planning on a newly supported model.
$ vllm bench throughput --model Qwen/Qwen3-8B
›Adds vllm bench latency and vllm bench throughput CLI subcommands for on-demand benchmarking.
›Adds structural_tag support via xgrammar for structured tool-calling in the V1 engine.
›Adds /server_info API endpoint to retrieve the running vllm_config from the API server.
›Adds sampling params to the v1/audio/transcriptions endpoint.
›Enables dynamic LoRA loading from a remote server at runtime.
+20 moreshow less
›Adds KV Connector API V1 for disaggregated serving, plus an LMCache KV connector for V1.
›Day-0 model support for Qwen3 and Qwen3MoE, including fp8 weight loading and tuned MoE configs.
›Adds EAGLE-3 speculative decoding support.
›Adds support for FlashInfer Attention in the V1 engine.
›Adds ModernBERT model support.
›Adds Granite Speech model support.
›Adds PLaMo2 model support.
›Adds Kimi-VL model support.
›Adds Qwen2.5-Omni (thinker-only) model support.
›Adds Snowflake Arctic Embed family model support.
›Enables structured decoding on TPU V1.
›Enables Top-P and Top-K sampling on TPU V1.
›Adds Cutlass MLA support for Blackwell GPUs.
›Adds AMD AITER fused MoE V1 support and integrates the AITER Paged Attention kernel and MLA.
›Adds prototype sequence parallelism via compilation pass.
›Adds BitBLAS (Microsoft Runtime Kernel Lib) support for low-precision computation.
›Adds Triton-based rotary_emb implementation for improved performance.
›Adds URL validation for multimodal content parts.
›Adds property-based testing for vLLM endpoints using an OpenAPI 3.1 schema.
›Adds a security guide to documentation.
└──▷ BREAKING ON UPGRADE
!--enable-chunked-prefill, --multi-step-stream-outputs, and --disable-chunked-mm-input can no longer be explicitly set to False; use the --no- prefix instead (e.g., --no-enable-chunked-prefill).
2 more releases in this issue
· 2025-04-06 → 2025-04-28
›Adds --max-model-len hint to the error message when KV cache memory is insufficient, showing users how to set the flag to fit their model.
›Adds hf_token to EngineArgs, allowing Hugging Face authentication to be passed directly through the engine configuration.
›Adds disable_chunked_mm_input argument to the V1 engine to disable partial multimodal input prefill.
›Sets the structured output backend to auto by default in the V1 engine (previously required explicit selection).
›Adds supports_structured_output() method to the Platform interface for V1 structured output backend negotiation.
+19 moreshow less
›Adds histogram buckets for request_latency, time_to_first_token, and time_per_output_token metrics.
›Adds sampling parameters to benchmark_serving for more representative load testing.
›Enables regex support with xgrammar in the V0 engine.
›Supports matryoshka representation and dimensions parameter in the embedding API.
›Supports TorchAO quantization for compatible models.
›Adds modelopt quantization support for Mixtral models.
›Enables PTPC FP8 for CompressedTensorsW8A8Fp8MoEMethod (triton fused_moe).
›Supports W8A8 channel-wise weights and per-token activations in the triton fused_moe_kernel.
›New merge_attn_states CUDA kernel for DeepSeek MLA delivers a 3x speedup.
›Adds support for Qwen3 and Qwen3MoE models.
›Adds support for SmolVLM, jinaai/jina-embeddings-v3, InternVL3, and GLM-4-0414 models.
›Adds Llama4 support including chat templates for pythonic tool calling, tuned FusedMoE kernel config for Llama4 Scout (TP=8 on H100), and attention temperature tuning enabled by default for long context (>32k).
›Enables multi-input by default in the V1 engine.
›Adds Eagle model loading and KV cache slot support for Eagle speculative decoding heads in V1.
›Enables zero-copy tensor/ndarray serialization and transmission in the V1 engine core.
Triton v2.56.0 adds SageMaker generate/stream inference types and live KV-cache metrics in HTTP response headers for TRT-LLM.
└──▷ GET THIS VERSION
$ git clone --branch v2.56.0 https://github.com/triton-inference-server/server.git
# already have the repo? check out this version:$ git checkout v2.56.0
›Adds SAGEMAKER_TRITON_INFERENCE_TYPE environment variable to select inference type (infer, generate, or generate_stream) on SageMaker server launch, enabling generate and generate_stream endpoints for SageMaker deployments.
›When used with TRT-LLM, Triton now includes live KV-cache utilization and capacity metrics in the HTTP response header during inference requests, enabling on-demand metric retrieval for external load balancers such as the Kubernetes Inference Gateway API.
└──▷ BREAKING ON UPGRADE
!The TensorFlow Backend is deprecated as of 25.03; the '25.03-tf2-python-py3' container is no longer available. Users must build the TensorFlow Backend from source and install it into /opt/tritonserver/backends/ to continue using it.
Phoenix 8.30.0 adds SpanQuery DSL to the client, RBAC for REST, and separate TLS flags for HTTP and gRPC.
└──▷ GET THIS VERSION
$ git clone --branch arize-phoenix-v8.30.0 https://github.com/Arize-ai/phoenix.git
# already have the repo? check out this version:$ git checkout arize-phoenix-v8.30.0
└──▷ USE IT
Query spans from a Phoenix project into a pandas DataFrame for offline analysis.
python
from phoenix.client import Client
from phoenix.client.dsl import SpanQuery
client = Client()
query = SpanQuery()
df = client.get_spans_dataframe(query=query, project_name='my-project')
print(df.head())
›Adds SpanQuery DSL and get_spans_dataframe method to the Phoenix client for querying spans programmatically.
›Adds RBAC primitives for FastAPI / REST endpoints to enforce role-based access control.
›Adds separate TLS-enabled flags for HTTP and gRPC transports, allowing independent TLS configuration per protocol.
›Adds a 'copy name' button to the project menu in the UI.
11 more releases in this issue
· 2025-04-02 → 2025-04-30
Arize Phoenix v8.29.0 adds environment variables for TLS configuration.
└──▷ GET THIS VERSION
$ git clone --branch arize-phoenix-v8.29.0 https://github.com/Arize-ai/phoenix.git
# already have the repo? check out this version:$ git checkout arize-phoenix-v8.29.0
›Adds environment variable support for TLS configuration, enabling certificate and key setup without code changes.
Phoenix 8.28.0 gracefully handles Ctrl-C interrupts during execution.
└──▷ GET THIS VERSION
$ git clone --branch arize-phoenix-v8.28.0 https://github.com/Arize-ai/phoenix.git
# already have the repo? check out this version:$ git checkout arize-phoenix-v8.28.0
›Gracefully handles Ctrl-C (SIGINT) so the process shuts down cleanly instead of crashing or leaving state corrupted.
Adds /readyz health endpoint for database connectivity checks and auto-scrolls selected spans in the trace view.
└──▷ GET THIS VERSION
$ git clone --branch arize-phoenix-v8.27.0 https://github.com/Arize-ai/phoenix.git
# already have the repo? check out this version:$ git checkout arize-phoenix-v8.27.0
└──▷ TRY IT
Poll the new readiness endpoint in a health-check script or Kubernetes readinessProbe to confirm Phoenix has a live database connection before routing traffic.
$ curl -f http://localhost:6006/readyz
›Adds GET /readyz endpoint to confirm database connectivity, enabling reliable liveness/readiness probes in orchestrated deployments.
›Scrolls the selected span into view automatically when navigating to a trace in the tracing UI.
Arize Phoenix 8.26.0 adds PHOENIX_ADMIN_SECRET env var and infinite-scroll load-more in the tracing UI.
└──▷ GET THIS VERSION
$ git clone --branch arize-phoenix-v8.26.0 https://github.com/Arize-ai/phoenix.git
# already have the repo? check out this version:$ git checkout arize-phoenix-v8.26.0
└──▷ TRY IT
Restrict admin access to Phoenix by setting the admin secret before launching the server.
Arize Phoenix 8.25.0 adds tool call and tool result IDs to span details in the UI.
└──▷ GET THIS VERSION
$ git clone --branch arize-phoenix-v8.25.0 https://github.com/Arize-ai/phoenix.git
# already have the repo? check out this version:$ git checkout arize-phoenix-v8.25.0
›Displays tool call and tool result IDs in the span details view, making it easier to correlate tool invocations with their results during trace inspection.
Phoenix client v1.3.0 adds a full REST API for project CRUD and lets you address projects by name in REST paths.
└──▷ GET THIS VERSION
$ git clone --branch arize-phoenix-client-v1.3.0 https://github.com/Arize-ai/phoenix.git
# already have the repo? check out this version:$ git checkout arize-phoenix-client-v1.3.0
›Adds REST API endpoints for full CRUD operations on projects (create, read, update, delete).
›Allows project name as an identifier in the REST path for projects endpoints, in addition to project ID.
Phoenix v8.24.0 lets you address projects by name in REST paths and sends welcome emails on user creation.
└──▷ GET THIS VERSION
$ git clone --branch arize-phoenix-v8.24.0 https://github.com/Arize-ai/phoenix.git
# already have the repo? check out this version:$ git checkout arize-phoenix-v8.24.0
›Allows project name as an identifier in the REST path for projects endpoints, so you can reference a project by name instead of only by ID.
›Sends a welcome email automatically after a new user is created.
Phoenix 8.23.0 adds a PHOENIX_ALLOWED_ORIGINS env var and a REST API for full project CRUD operations.
└──▷ GET THIS VERSION
$ git clone --branch arize-phoenix-v8.23.0 https://github.com/Arize-ai/phoenix.git
# already have the repo? check out this version:$ git checkout arize-phoenix-v8.23.0
›Adds PHOENIX_ALLOWED_ORIGINS environment variable to the Phoenix server to control which origins are permitted (CORS allowlist).
›New REST API endpoints for full CRUD operations on projects.
›Enables deletion of annotations directly from the feedback column in the tracing UI.
›Makes the feedback table scrollable in the tracing UI.
Arize Phoenix client adds REST endpoints to list and create prompt version tags.
└──▷ GET THIS VERSION
$ git clone --branch arize-phoenix-client-v1.2.0 https://github.com/Arize-ai/phoenix.git
# already have the repo? check out this version:$ git checkout arize-phoenix-client-v1.2.0
›Adds REST endpoints to list and create prompt version tags, enabling programmatic management of prompt versioning via the API.
Phoenix v8.22.0 adds REST endpoints to list and create prompt version tags.
└──▷ GET THIS VERSION
$ git clone --branch arize-phoenix-v8.22.0 https://github.com/Arize-ai/phoenix.git
# already have the repo? check out this version:$ git checkout arize-phoenix-v8.22.0
›Adds REST endpoints to list or create prompt version tags, enabling programmatic tag management on prompt versions.
Phoenix 8.21.0 moves span annotation editing into the Span Aside and adds chat/note-taking UI components.
└──▷ GET THIS VERSION
$ git clone --branch arize-phoenix-v8.21.0 https://github.com/Arize-ai/phoenix.git
# already have the repo? check out this version:$ git checkout arize-phoenix-v8.21.0
›Moves the Span Annotation Editor into the Span Aside panel, consolidating annotation workflows in one place.
›Adds chat and message UI components for note-taking within the interface.
›Allows PostgreSQL deployments to run without a working directory configured.
›Caches project table results when toggling the details slide-over, reducing redundant loads.
Weave v0.51.41 adds DSPy 2.x and Google GenAI integrations, custom LLM providers in the playground, JSONL/TSV dataset uploads, and storage-size API support.
└──▷ GET THIS VERSION
$ git clone --branch v0.51.41 https://github.com/wandb/weave.git
# already have the repo? check out this version:$ git checkout v0.51.41
└──▷ USE IT
Trace a DSPy 2.x pipeline end-to-end, including custom DSPy modules, inside a Weave project.
›Adds caption attribute to ImageArtifactFileRef in weave_query, exposing image captions as a queryable field.
›Adds storage size to the API via a new capability on calls (adds api capability to include storage size), letting callers retrieve payload size information programmatically.
›Adds a new Google GenAI integration (weave.integrations for google-genai) for automatic tracing of Google Generative AI SDK calls.
›Adds a DSPy 2.x integration for tracing DSPy pipelines, including support for custom DSPy modules.
›Adds custom providers table to the Providers tab and enables custom providers in the Playground, allowing teams to configure and use their own LLM endpoints.
+8 moreshow less
›Adds create_with_completion tracking in the Instructor integration.
›Supports JSON, JSONL, and TSV file uploads for dataset creation in the UI.
›Supports zooming images in the lightbox up to 5x natural pixel size.
›Adds .cif file support in Weave molecule panels.
›Adds OTel-style trace/span IDs for calls, enabling interoperability with OpenTelemetry-instrumented systems.
›Emits a warning when Weave is used without calling weave.init, helping users catch misconfigured setups early.
›Introduces a runs history plots stepper in the app for navigating multi-step run history plots.
›Formats long durations with minutes in the trace tree view for improved readability.
Chroma 1.0.0 ships a Rust frontend with full CRUD routes, multi-dimensional admission control, round-robin gRPC load balancing, and a garbage-collection orchestrator.
└──▷ GET THIS VERSION
$ git clone --branch 1.0.0 https://github.com/chroma-core/chroma.git
# already have the repo? check out this version:$ git checkout 1.0.0
›Adds /add, /upsert, /update, /delete, /reset, and collection read/write routes to the new Rust frontend, making the Rust service a full API peer to the Python FastAPI layer.
›Adds push_logs() to the log interface in the Rust frontend, exposing programmatic log ingestion.
›Implements multi-dimensional admission control (mdac) with a circuit-breaker scorecard wired to config-supplied default rules, plus Prometheus metrics for the circuit breaker.
›Implements a garbage-collection orchestrator with a Fetch version file operator and a background poller in the sysdb client crate, enabling automated GC of deleted collection data from S3.
›Adds get_collection_size to the Python SysDB client and exposes GetCollectionSize on the SysDB read replica, letting callers query live record counts without hitting the primary.
+16 moreshow less
›Adds num_records_last_compaction field to sysdb and updates the compactor to flush total record counts on each compaction cycle.
›Adds a collection_id parameter to QuotaEnforcer.enforce() calls, enabling per-collection quota enforcement.
›Implements a partitioned mutex for HNSW index loading, reducing contention when loading multiple segments concurrently.
›Switches the Python Ollama embedding function to the official ollama Python client and switches the JS Ollama embedding function to the official ollama JS client.
›Adds round-robin gRPC connection balancing across N query nodes and balances gRPC channels for frontend-to-query retries, improving query-node throughput.
›Changes the dispatcher task queue from LIFO to FIFO ordering and bounds the maximum number of enqueued tasks, aborting tasks that exceed the limit.
›Adds block prefetching for the fulltext index writer, reducing I/O latency during compaction.
›Creates version files in S3 from SysDB, enabling object-level GC tracking.
›Adds gRPC endpoints in SysDB to support garbage collection workflows.
›Adds route-level tracing to the Rust frontend and propagates tracing spans through intermediate methods between SysDB and FastAPI, with dynamic span names visible in Jaeger.
›Implements get_collections_with_segments deduplication on the SysDB RPC path, reducing redundant calls from the frontend.
›Adds Rust–Python proxy calls, allowing the Rust frontend to call back into Python handlers during the migration period.
›Adds a no-invalidation collection cache and a nop cache variant to the Rust frontend, with RwLock-protected memberlist access.
›Serializes Where clause filters and full query plans to/from ProtoBuf in the Rust frontend, enabling typed query dispatch to query nodes.
›Implements request validators in the Rust frontend for collection-level operations.
›Increases the SysDB gRPC max concurrent streams limit to improve throughput under high collection-metadata load.
LanceDB v0.19.1-beta.1 adds a table statistics API for inspecting table internals.
└──▷ GET THIS VERSION
$ git clone --branch v0.19.1-beta.1 https://github.com/lancedb/lancedb.git
# already have the repo? check out this version:$ git checkout v0.19.1-beta.1
›Adds a table stats API, enabling programmatic inspection of table-level statistics.
11 more releases in this issue
· 2025-04-04 → 2025-04-29
LanceDB python-v0.22.1-beta.1 adds a table statistics API for inspecting table internals.
└──▷ GET THIS VERSION
$ git clone --branch python-v0.22.1-beta.1 https://github.com/lancedb/lancedb.git
# already have the repo? check out this version:$ git checkout python-v0.22.1-beta.1
›Adds a table stats API to expose internal statistics for LanceDB tables.
LanceDB v0.19.1-beta.0 adds tag management APIs for listing, creating, deleting, updating, and checking out tags.
└──▷ GET THIS VERSION
$ git clone --branch v0.19.1-beta.0 https://github.com/lancedb/lancedb.git
# already have the repo? check out this version:$ git checkout v0.19.1-beta.0
›Adds list, create, delete, update, and checkout tag API for managing dataset version tags.
LanceDB python-v0.22.1-beta.0 adds a tag management API for listing, creating, deleting, updating, and checking out tags.
└──▷ GET THIS VERSION
$ git clone --branch python-v0.22.1-beta.0 https://github.com/lancedb/lancedb.git
# already have the repo? check out this version:$ git checkout python-v0.22.1-beta.0
›Adds list, create, delete, update, and checkout tag API methods for managing dataset tags programmatically.
LanceDB python-v0.22.0 adds ColPali/MultiVector embeddings, FTS on string lists, prewarm_index, explain/analyze plan APIs, and query timeouts.
└──▷ GET THIS VERSION
$ git clone --branch python-v0.22.0 https://github.com/lancedb/lancedb.git
# already have the repo? check out this version:$ git checkout python-v0.22.0
›Adds explain_plan remote API to inspect query execution plans before running them.
›Adds analyze_plan API to retrieve runtime execution statistics for queries.
›Adds restore remote API to roll a table back to a previous version.
›Adds prewarm_index function to load an index into memory before serving queries.
›Adds a timeout option to query execution options, letting callers bound how long a query may run.
+6 moreshow less
›Adds a new table API to wait for async indexing to complete.
›Supports creating a Full-Text Search (FTS) index on columns containing lists of strings.
›Supports Fixed-Size Binary (FSB) columns as the source for B-tree indices.
›Adds ColPali embedding support with the MultiVector type for multi-vector retrieval workflows.
›Supports adding columns using a PyArrow schema for schema-driven column definitions.
›Adds retries to the remote client for requests with stream bodies, improving reliability of large uploads.
LanceDB v0.19.0-beta.9 adds ColPali/MultiVector embedding support and a new async indexing wait API.
└──▷ GET THIS VERSION
$ git clone --branch v0.19.0-beta.9 https://github.com/lancedb/lancedb.git
# already have the repo? check out this version:$ git checkout v0.19.0-beta.9
›Adds MultiVector type with ColPali embedding support, enabling multi-vector retrieval workflows for vision-language models.
›Adds a new table API method to wait for async indexing to complete, allowing callers to block until an index is ready before querying.
LanceDB python-v0.22.0-beta.9 adds ColPali/MultiVector embedding support and a new async indexing wait API.
└──▷ GET THIS VERSION
$ git clone --branch python-v0.22.0-beta.9 https://github.com/lancedb/lancedb.git
# already have the repo? check out this version:$ git checkout python-v0.22.0-beta.9
›Adds MultiVector type with ColPali embedding support for multi-vector similarity search workflows.
›Adds a new table API method to wait for async indexing to complete, enabling reliable post-index operations.
LanceDB v0.19.0-beta.8 adds a prewarm_index function to load indexes into cache before query time.
└──▷ GET THIS VERSION
$ git clone --branch v0.19.0-beta.8 https://github.com/lancedb/lancedb.git
# already have the repo? check out this version:$ git checkout v0.19.0-beta.8
›Adds prewarm_index function to load vector indexes into memory ahead of query time, reducing first-query latency.
LanceDB python-v0.22.0-beta.8 adds prewarm_index for loading ANN indexes into memory ahead of queries.
└──▷ GET THIS VERSION
$ git clone --branch python-v0.22.0-beta.8 https://github.com/lancedb/lancedb.git
# already have the repo? check out this version:$ git checkout python-v0.22.0-beta.8
›Adds prewarm_index function to load ANN indexes into memory before query time, reducing cold-start latency.
LanceDB v0.19.0-beta.5 adds timeout support to query execution options.
└──▷ GET THIS VERSION
$ git clone --branch v0.19.0-beta.5 https://github.com/lancedb/lancedb.git
# already have the repo? check out this version:$ git checkout v0.19.0-beta.5
›Adds timeout configuration to query execution options, enabling callers to bound how long a query runs before it is cancelled.
LanceDB python-v0.22.0-beta.5 adds timeout support to query execution options.
└──▷ GET THIS VERSION
$ git clone --branch python-v0.22.0-beta.5 https://github.com/lancedb/lancedb.git
# already have the repo? check out this version:$ git checkout python-v0.22.0-beta.5
›Adds timeout to query execution options, enabling callers to cap how long a query is allowed to run.
Milvus 2.5.11 adds multi-analyzer support, new tokenizers (Jieba, Lindera, ICU, Language Identifier), new text filters, and expanded JSON index capabilities.
└──▷ GET THIS VERSION
$ git clone --branch v2.5.11 https://github.com/milvus-io/milvus.git
# already have the repo? check out this version:$ git checkout v2.5.11
›Introduces a run_analyzer API for dry-run tokenization analysis, letting practitioners inspect how text is tokenized before committing to an analyzer configuration.
›Adds a remove_punct filter to strip punctuation marks from tokenized text during analysis.
›Adds a regex filter for pattern-based text filtering during analysis.
›Adds support for configuring multiple analyzers per field and selecting the appropriate one based on input data language or instruction.
›Adds support for the Lindera tokenizer for Japanese/Korean text analysis.
+10 moreshow less
›Adds support for the ICU tokenizer for Unicode-aware, locale-sensitive tokenization.
›Adds a Language Identifier tokenizer for automatic language detection.
›Adds support for customizing Jieba tokenizer parameters for Chinese text segmentation.
›Expands language support for the built-in stop word filter.
›Adds support for modifying the maximum capacity of array fields after collection creation.
›Adds support for binary range expressions in JSON path indexes.
›Adds support for infix and suffix match types in JSON stats.
›Adds a configuration option to force rebuilding indexes to the latest version.
›Enables dynamic updates to the segment loading thread pool size without restart.
›Adds monitoring parameters for the expression filter ratio.
4 more releases in this issue
· 2025-04-01 → 2025-04-28
Milvus Go SDK v2.5.2 adds JSON Path index support for the milvusclient package.
└──▷ GET THIS VERSION
$ git clone --branch client/v2.5.2 https://github.com/milvus-io/milvus.git
# already have the repo? check out this version:$ git checkout client/v2.5.2
›Adds JSON Path index support to the Go SDK milvusclient package, enabling index creation on nested JSON fields.
Qdrant v1.14.0 adds server-side score boosting with custom formulas, a new sum_scores recommendation strategy, and full query auto-completion in the Web UI.
└──▷ GET THIS VERSION
$ git clone --branch v1.14.0 https://github.com/qdrant/qdrant.git
# already have the repo? check out this version:$ git checkout v1.14.0
└──▷ TRY IT
Use the sum_scores strategy in the Recommend API to implement relevance feedback — boosting results similar to liked examples and suppressing those similar to dislikes.
›New sum_scores recommendation strategy available in the Explore API, designed for relevance feedback workflows.
›Adds server-side score boosting via user-defined formulas in hybrid queries, allowing custom ranking logic without client-side post-processing.
›Changed behavior: offset parameter in queries with prefetch is now applied only to the prefetch result and is no longer propagated into the prefetch query itself.
›Incremental HNSW building — segment optimizer partially re-uses the existing HNSW graph when merging segments, reducing rebuild cost.
›Parallelizes large segment search batches for improved throughput.
+1 moreshow less
›Full query auto-completion added to the Qdrant Web UI.
└──▷ BREAKING ON UPGRADE
!The offset parameter in a query that uses prefetch now applies only to the prefetch result and is not propagated into the prefetch sub-query — queries relying on the previous propagation behavior will return different results.
Weaviate v1.30.1 adds DB user last-used tracking, a BM25 block reindex REST trigger, and a configurable RAFT trailing-logs setting.
└──▷ GET THIS VERSION
$ git clone --branch v1.30.1 https://github.com/weaviate/weaviate.git
# already have the repo? check out this version:$ git checkout v1.30.1
›Adds a REST call to trigger BM25 block (blockmax) reindexing by initiating a shard reinit, enabling on-demand reindex without a restart.
›Adds an environment variable to set a higher segment inspection limit for BM25 block searches.
›Adds 'last used time' tracking to DB users, surfaced through the /users/db endpoint.
›Returns the first 3 characters of an API key in API key response payloads, enabling key identification without exposing the full secret.
›Adds configurable collections, properties, and tenants selection to the blockmax migrator, allowing targeted migration rather than full-index migration.
1 more release in this issue
· 2025-04-03 → 2025-04-16
$ git clone --branch v1.30.0 https://github.com/weaviate/weaviate.git
# already have the repo? check out this version:$ git checkout v1.30.0
›Adds maximum_allowed_collection_limit as a runtime-configurable variable via the runtime config manager, enabling live tuning without restarts.
›Adds AUTOSCHEMA_ENABLED as a runtime override, controllable through the runtime config manager without a restart.
›Adds ASYNC_REPLICATION_DISABLED as a runtime override, controllable through the runtime config manager without a restart.
›Adds an environment variable to enable dynamic (DB) user management (DYNAMIC_USERS_ENABLED, later renamed); enables REST API-driven creation, update, suspension, activation, and revocation of users and API keys at runtime.
›Adds RBAC tenant filtering to batch object operations and POST batch/references, giving role-based access control coverage over batch workflows.
+8 moreshow less
›Adds RBAC filtering to the nodes endpoint so only nodes the caller has permission to see are returned.
›Adds a creationTime field to dynamically created users and saves the first letters of the API key for identification.
›Introduces the xAI generative module, adding xAI as a supported provider for retrieval-augmented generation.
›Dynamic RAG model selection is now GA: select the generative model per query at runtime; supports image inputs split across images and imageProperties fields in the dynamic provider.
›Adds ENABLE_EXPERIMENTAL_DYNAMIC_RAG_SYNTAX environment variable as a fallback option for enabling dynamic RAG syntax.
›BlockMax WAND-based BM25 is now GA and enabled by default, delivering significantly faster BM25 keyword search with an online, zero-downtime migration process for existing indexes.
›Multi-value vector search (ColBERT-style embeddings) is now GA; all multi-vector indexes now support BQ, PQ, and SQ quantization options.
›Adds metrics support for the internal http server, expanding observability coverage.
└──▷ BREAKING ON UPGRADE
!BlockMax WAND migration produces segment files that are not backwards compatible with previous Weaviate versions; rolling back to an earlier version after migration is not supported.