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.
Define an async tool with a post-hook to run non-blocking I/O after each tool call.
python
@tool(post_hook=async_post_hook)
async def fetch_data(url: str) -> str:
async with aiohttp.ClientSession() as session:
async with session.get(url) as resp:
return await resp.text()
›Adds tools and tool_call_limit parameters to Team, allowing the team leader itself to be equipped with tools and act as an agent.
›Expands MCPTools with include/exclude filtering so you can restrict which tools from an MCP server the model can access.
›The @tool() decorator now supports async functions, including async pre- and post-hooks.
›Adds E2BTools to run code inside an E2B Sandbox.
12 more releases in this issue
· 2025-03-03 → 2025-03-27
Agno v1.1.15 adds function result caching for 9 tool classes and improves tool-call display in print_response.
└──▷ GET THIS VERSION
$ git clone --branch v1.1.15 https://github.com/agno-agi/agno.git
# already have the repo? check out this version:$ git checkout v1.1.15
›Adds result caching to DuckDuckGoTools, ExaTools, FirecrawlTools, GoogleSearchtools, HackernewsTools, NewspaperTools, Newspaper4kTools, Websitetools, and YFinanceTools to speed up iteration, avoid rate limits, and reduce costs during agent testing.
›Tool calls are now rendered in a separate panel from the response panel when using print_response and aprint_response, including when combined with response_model.
Agno v1.1.14 ships Teams 2.0 with three coordination modes, LiteLLM support, and a new use_json_mode parameter.
└──▷ GET THIS VERSION
$ git clone --branch v1.1.14 https://github.com/agno-agi/agno.git
# already have the repo? check out this version:$ git checkout v1.1.14
└──▷ USE IT
Stand up a routing team that directs queries to specialised member agents and returns structured output.
python
from agno.team import Team
from agno.agent import Agent
research_agent = Agent(name='Researcher', ...)
writer_agent = Agent(name='Writer', ...)
team = Team(
mode='route',
members=[research_agent, writer_agent],
response_model=MyOutputModel,
debug_mode=True,
)
team.print_response('Summarise the latest AI papers')
Force JSON-mode output from an agent when the target model does not support native structured output.
python
from agno.agent import Agent
from pydantic import BaseModel
class Report(BaseModel):
title: str
summary: str
agent = Agent(
response_model=Report,
use_json_mode=True,
)
agent.print_response('Generate a threat report')
›Adds Team class supporting three modes — 'collaborate', 'coordinate', and 'route' — replacing the old Agent(team=[]) pattern with a dedicated first-class teams implementation.
›Adds use_json_mode: bool = False parameter to Agent and Team; when combined with response_model=YourModel, forces JSON-mode output instead of the new default of native structured output — making response_model the only setting required for structured output.
›Adds debug_mode=True on Agent/Team and team.print_response(...) to surface revamped debug logs for both agents and teams.
›Adds LiteLLM support as a native model implementation and via the existing OpenAILike interface.
›Enables WebsiteTools to update combined knowledgebases alongside standard knowledgebases.
+2 moreshow less
›Adds agentic shared context between team members and sharing of individual team member responses across the team.
›Supports passing images, audio, and video to member agents in team workflows, and enables structured output returns from member agents in 'route' mode.
└──▷ BREAKING ON UPGRADE
!Agent.structured_output is replaced by Agent.use_json_mode; the old parameter is deprecated and will be removed in a future major version.
!Agent.team is deprecated with the release of the new Team implementation and will be removed in a future major version; migrate to the Team class.
AutoGPT Platform beta v0.6.1 adds store listing submissions, agent input block subtypes, and usage-based billing by block execution count.
└──▷ GET THIS VERSION
$ git clone --branch autogpt-platform-beta-v0.6.1 https://github.com/Significant-Gravitas/AutoGPT.git
# already have the repo? check out this version:$ git checkout autogpt-platform-beta-v0.6.1
›Adds backend support for store listing submissions, enabling agents to be submitted to the AutoGPT store.
AutoGPT Platform v0.6.0 adds agent export/import with sub-agent support and a Supabase volume migration.
└──▷ GET THIS VERSION
$ git clone --branch autogpt-platform-beta-v0.6.0 https://github.com/Significant-Gravitas/AutoGPT.git
# already have the repo? check out this version:$ git checkout autogpt-platform-beta-v0.6.0
›Adds 'Export agent to file' action, enabling agents to be saved and shared as files.
›Supports sub-agents in the export/import agent feature, preserving nested agent structures across environments.
›Makes agent input fields expandable in the UI for easier editing of longer inputs.
›Improves agent I/O rendering in the UI for clearer run output display.
└──▷ BREAKING ON UPGRADE
!The Supabase docker-compose setup is now locked to the repository (no longer loaded as a git submodule), and uses a different database volume location — existing database content will not carry over automatically. To preserve existing data, run cp -r supabase/docker/volumes/db/data db/docker/volumes/db/data inside the autogpt_platform folder before upgrading.
AutoGPT Platform beta v0.5.1 adds one-click email unsubscribe, self-loop list input, and baseline summary processing.
└──▷ GET THIS VERSION
$ git clone --branch autogpt-platform-beta-v0.5.1 https://github.com/Significant-Gravitas/AutoGPT.git
# already have the repo? check out this version:$ git checkout autogpt-platform-beta-v0.5.1
›Adds support for undefined self-loop link to list input pin on AddToListBlock, enabling a block to feed its own output back into a list without an explicit loopback connection.
›Adds one-click unsubscribe functionality for platform emails.
›Implements baseline summary processing for agent runs.
›Makes the database configurable with a connection limit and timeout, reducing excessive application logging.
AutoGPT Platform v0.5.0 adds a Smart Decision Maker block, redesigned Agent Library, onboarding flow, and safe URL redirect enforcement for web blocks.
└──▷ GET THIS VERSION
$ git clone --branch autogpt-platform-beta-v0.5.0 https://github.com/Significant-Gravitas/AutoGPT.git
# already have the repo? check out this version:$ git checkout autogpt-platform-beta-v0.5.0
›Enables safe URL redirect validation on web requests for blocks, preventing open-redirect abuse at the block execution layer.
›Adds a Smart Decision Maker block with Anthropic support, tool execution responses, conversation history output, and an agent-loop capability — giving automation builders an LLM-driven branching primitive.
›Adds low-balance notifications to alert users before credit exhaustion interrupts agent runs.
›Adds cost indication (credit usage) on agent runs, backed by per-node and per-graph execution cost tracking in the backend.
›Adds 'Stop' and 'Delete' controls for individual agent runs, and a 'Delete' action for library agents.
+5 moreshow less
›Integrates Ideogram to auto-generate thumbnail images for newly created agents.
›Adds GitHub 'list comments' and 'update comment' blocks.
›Adds an onboarding flow (frontend UI + backend) to guide new users through the platform.
›Replaces the Pyro RPC layer with a FastAPI-based HTTP RPC for microservice communication.
›Redesigns the Agent Library (v2) with improved status visibility and run output display.
Framework for orchestrating role-playing, autonomous AI agents. By fostering collaborative intelligence, CrewAI empowers agents to work together seamlessly, tackling complex tasks.
CrewAI 0.108.0 adds agent fingerprints, richer event listener visualization, and improved LLM streaming event handling.
└──▷ GET THIS VERSION
$ git clone --branch 0.108.0 https://github.com/crewAIInc/crewAI.git
# already have the repo? check out this version:$ git checkout 0.108.0
›Adds fingerprints to agents/tasks for unique identity tracking across runs.
›Enhances LLM streaming response handling with an improved event system for real-time observability.
›Enriches the event listener with rich visualization and improved logging output.
›Includes model_name in relevant model representations for better introspection.
1 more release in this issue
· 2025-03-09 → 2025-03-17
DSPy 2.6.14 adds context-manager protocol support to PythonInterpreter and a new construct_result_table method on Evaluate.
└──▷ GET THIS VERSION
$ git clone --branch 2.6.14 https://github.com/stanfordnlp/dspy.git
# already have the repo? check out this version:$ git checkout 2.6.14
└──▷ USE IT
Use PythonInterpreter as a context manager to ensure proper cleanup after sandboxed code execution.
python
from dspy.predict.python_interpreter import PythonInterpreter
with PythonInterpreter() as interpreter:
result = interpreter("output = 2 + 2")
print(result)
›Adds context-manager protocol (with statement) support to PythonInterpreter, enabling cleaner resource management when executing sandboxed Python code.
›Introduces construct_result_table method on the Evaluate class, exposing structured result tables from evaluation runs.
Haystack v2.11.0 adds async run to all core chat generators and retrievers, a new MSGToDocument component, and ONNX/OpenVINO backend support for Sentence Transformers.
└──▷ GET THIS VERSION
$ git clone --branch v2.11.0 https://github.com/deepset-ai/haystack.git
# already have the repo? check out this version:$ git checkout v2.11.0
└──▷ USE IT
Convert an Outlook email (with attachments) into Haystack Documents for ingestion into a pipeline.
python
from haystack.components.converters import MSGToDocument
converter = MSGToDocument()
result = converter.run(sources=["email.msg"])
print(result["documents"][0].meta) # sender, recipients, subject, etc.
print(result["bytestream_outputs"]) # attachments as ByteStream objects
Disable connection type validation when prototyping a pipeline that mixes Optional and non-Optional socket types.
python
from haystack import Pipeline
pipeline = Pipeline(connection_type_validation=False)
# Now connect Optional[str] -> str without a TypeError
pipeline.connect("component_a.optional_output", "component_b.str_input")
Run an async pipeline using OpenAIChatGenerator's new run_async method for concurrent throughput.
python
import asyncio
from haystack import AsyncPipeline
from haystack.components.generators.chat import OpenAIChatGenerator
from haystack.dataclasses import ChatMessage
pipeline = AsyncPipeline()
pipeline.add_component("llm", OpenAIChatGenerator(model="gpt-4o"))
async def main():
result = await pipeline.run({"llm": {"messages": [ChatMessage.from_user("Hello")]}})
print(result)
asyncio.run(main())
›Adds connection_type_validation parameter to Pipeline.__init__() (set to False to bypass type-checking on pipeline connections, e.g. connecting Optional[str] output to str input).
›Adds run_async method to OpenAIChatGenerator, AzureOpenAIChatGenerator, HuggingFaceAPIChatGenerator, and HuggingFaceLocalChatGenerator, enabling native async chat completion inside an AsyncPipeline.
›Adds run_async method to DocumentWriter, delegating to write_documents_async on the backing document store.
›Adds async support to InMemoryDocumentStore, InMemoryBM25Retriever, and InMemoryEmbeddingRetriever.
›Adds backend parameter to Sentence Transformers components supporting torch (default), onnx, and openvino inference backends.
+10 moreshow less
›New MSGToDocument component converts Microsoft Outlook .msg files into Haystack Document objects, extracting sender, recipients, CC, BCC, and subject metadata and exposing attachments as ByteStream objects.
›Adds store_full_path init variable to XLSXToDocument to control whether the full source file path is stored in document metadata (defaults to False).
›Exposes a configurable timeout parameter on Pipeline.show and Pipeline.draw methods (default raised to 30 seconds) for the Mermaid rendering server.
›EvaluationRunResult can now export results as JSON, a pandas DataFrame, or a CSV file.
›Updates ListJoiner so that list_type is now optional, defaulting to List[Any] to combine any incoming lists without requiring strict type annotation.
›Haystack now officially supports Python 3.13.
›Lazy importing reduces import haystack CPU time to 2–5% of its previous cost and cuts per-component import CPU time by ~50%.
›FileTypeRouter now explicitly classifies .msg files with MIME type application/vnd.ms-outlook.
›PDFMinerToDocument now detects and reports undecoded CID characters in extracted PDF text, flagging potential quality issues with non-standard fonts.
›Deserialization now accepts standard typing shorthand without the typing. prefix (e.g., List[str] instead of typing.List[str]).
└──▷ BREAKING ON UPGRADE
!The ExtractedTableAnswer dataclass and the dataframe field on the Document dataclass (deprecated in 2.10.0) have been removed; pandas is no longer a required Haystack dependency.
!AzureOCRDocumentConverter no longer produces Document objects with a dataframe field; detected tables are now represented as CSV-formatted text in the content field instead.
langchain-openai 0.3.11 adds streaming token count support in AzureChatOpenAI
└──▷ GET THIS VERSION
$ git clone --branch langchain-openai==0.3.11 https://github.com/langchain-ai/langchain.git
# already have the repo? check out this version:$ git checkout langchain-openai==0.3.11
›Adds streaming token count support to AzureChatOpenAI, enabling token usage tracking during streamed responses.
17 more releases in this issue
· 2025-03-04 → 2025-03-26
langchain-core 0.3.49 adds a token-counting callback handler and stores model names on usage tracking.
└──▷ GET THIS VERSION
$ git clone --branch langchain-core==0.3.49 https://github.com/langchain-ai/langchain.git
# already have the repo? check out this version:$ git checkout langchain-core==0.3.49
›Adds a token-counting callback handler for tracking token usage across LLM calls (marked beta).
›Stores model names on the usage callback handler, enabling per-model token attribution.
langchain-openai 0.3.10 adds multi-turn computer use support and traces strict in structured output kwargs.
└──▷ GET THIS VERSION
$ git clone --branch langchain-openai==0.3.10 https://github.com/langchain-ai/langchain.git
# already have the repo? check out this version:$ git checkout langchain-openai==0.3.10
›Traces strict in structured_output_kwargs so structured-output strictness mode is now visible in LangChain traces.
›Supports multi-turn computer use interactions with OpenAI models.
langchain-core 0.3.48 adds tool_call exclusion to filter_messages and greater Mermaid diagram customization.
└──▷ GET THIS VERSION
$ git clone --branch langchain-core==0.3.48 https://github.com/langchain-ai/langchain.git
# already have the repo? check out this version:$ git checkout langchain-core==0.3.48
›Adds tool_call exclusion support to filter_messages, letting callers strip tool-call messages from a message list.
›Allows greater customization of Mermaid graph rendering for LangChain runnables.
LangChain DeepSeek 0.1.3 adds strict and method parameters to with_structured_output and fixes OpenRouter reasoning responses.
└──▷ GET THIS VERSION
$ git clone --branch langchain-deepseek==0.1.3 https://github.com/langchain-ai/langchain.git
# already have the repo? check out this version:$ git checkout langchain-deepseek==0.1.3
└──▷ USE IT
Use strict mode with a chosen method when extracting structured output from DeepSeek to enforce schema compliance.
python
from langchain_deepseek import ChatDeepSeek
from pydantic import BaseModel
class Answer(BaseModel):
result: str
confidence: float
llm = ChatDeepSeek(model="deepseek-chat")
structured_llm = llm.with_structured_output(Answer, strict=True, method="function_calling")
response = structured_llm.invoke("What is 2+2?")
›Adds strict and method parameters to with_structured_output for ChatDeepSeek, enabling finer control over structured output validation and extraction method.
langchain-ollama 0.3.0 defaults structured output to json_schema, adds DeepSeek reasoning parsing and keep_alive for embeddings.
└──▷ GET THIS VERSION
$ git clone --branch langchain-ollama==0.3.0 https://github.com/langchain-ai/langchain.git
# already have the repo? check out this version:$ git checkout langchain-ollama==0.3.0
└──▷ USE IT
Restore the previous tool-calling behavior for structured output after upgrading, to avoid breakage in pipelines that depend on function-calling semantics.
Extract chain-of-thought reasoning from a DeepSeek model response, useful for auditing or displaying intermediate thinking steps.
python
llm = ChatOllama(model="deepseek-r1:1.5b", extract_reasoning=True)
result = llm.invoke("What is 3^3?")
print(result.content)
print(result.additional_kwargs["reasoning_content"])
›Changes the default with_structured_output method to method="json_schema", using Ollama's native structured output feature instead of tool-calling.
›Adds extract_reasoning=True parameter to ChatOllama to parse reasoning content from DeepSeek models, exposing it via additional_kwargs["reasoning_content"].
›Adds keep_alive support to the Ollama embeddings integration.
└──▷ BREAKING ON UPGRADE
!with_structured_output now defaults to method="json_schema" instead of method="function_calling"; existing code relying on the tool-calling path must explicitly pass method="function_calling" to restore prior behavior.
langchain-xai 0.2.2 adds strict and method parameters to with_structured_output and a new BaseMessage.text() method.
└──▷ GET THIS VERSION
$ git clone --branch langchain-xai==0.2.2 https://github.com/langchain-ai/langchain.git
# already have the repo? check out this version:$ git checkout langchain-xai==0.2.2
›Adds strict and method parameters to with_structured_output in the xai integration, giving finer control over structured output behavior.
›Adds BaseMessage.text() method to core for extracting text content from a message object.
langchain-fireworks 0.2.8 adds strict and method parameters to with_structured_output
└──▷ GET THIS VERSION
$ git clone --branch langchain-fireworks==0.2.8 https://github.com/langchain-ai/langchain.git
# already have the repo? check out this version:$ git checkout langchain-fireworks==0.2.8
›Adds strict and method parameters to with_structured_output for finer control over structured output parsing with Fireworks models.
langchain-tests 0.3.15 adds strict and method support in with_structured_output, subclass test extension, and agent loop testing.
└──▷ GET THIS VERSION
$ git clone --branch langchain-tests==0.3.15 https://github.com/langchain-ai/langchain.git
# already have the repo? check out this version:$ git checkout langchain-tests==0.3.15
›Adds strict and method parameters to with_structured_output across multiple integrations, enabling finer control over structured output behavior.
›Enforces standards on tool_choice across multiple integrations.
›Allows subclasses to add additional, non-standard tests in the standard test suite.
›Adds a standard test for a simple agent loop.
›Image message tests now skip instead of passing when unsupported, giving more accurate test results.
LangChain Core 0.3.46 adds a utility for approximate token counting.
└──▷ GET THIS VERSION
$ git clone --branch langchain-core==0.3.46 https://github.com/langchain-ai/langchain.git
# already have the repo? check out this version:$ git checkout langchain-core==0.3.46
langchain-community 0.3.20 adds FireCrawl extract mode, Jieba link extraction, in-memory audio parsing, and DashScope partial mode.
└──▷ GET THIS VERSION
$ git clone --branch langchain-community==0.3.20 https://github.com/langchain-ai/langchain.git
# already have the repo? check out this version:$ git checkout langchain-community==0.3.20
└──▷ USE IT
Extract structured data from a URL using FireCrawlLoader's new extract mode instead of scraping raw content.
langchain-text-splitters 0.3.7 adds JSFrameworkTextSplitter for parsing JavaScript framework code.
└──▷ GET THIS VERSION
$ git clone --branch langchain-text-splitters==0.3.7 https://github.com/langchain-ai/langchain.git
# already have the repo? check out this version:$ git checkout langchain-text-splitters==0.3.7
└──▷ USE IT
Split a JavaScript framework source file into semantically meaningful chunks for embedding or retrieval.
python
from langchain_text_splitters import JSFrameworkTextSplitter
splitter = JSFrameworkTextSplitter()
chunks = splitter.split_text(js_framework_source_code)
for chunk in chunks:
print(chunk)
›Adds JSFrameworkTextSplitter class for splitting JavaScript framework code (e.g. React, Vue, Angular components) as a structured unit rather than plain text.
langchain-openai 0.3.9 adds support for the OpenAI Responses API via use_responses_api init param and automatic routing.
└──▷ GET THIS VERSION
$ git clone --branch langchain-openai==0.3.9 https://github.com/langchain-ai/langchain.git
# already have the repo? check out this version:$ git checkout langchain-openai==0.3.9
└──▷ USE IT
Use a Responses-API-only tool (e.g., web search) to trigger automatic routing without setting use_responses_api explicitly.
python
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(model="gpt-4o-mini")
response = llm.invoke(
"What was a positive news story from today?",
tools=[{"type": "web_search_preview"}],
)
print(response.content)
›Adds use_responses_api=True init param to ChatOpenAI to explicitly route calls through the OpenAI Responses API.
›Adds automatic routing of ChatOpenAI calls through the Responses API when a Responses-API-specific feature is used, such as the {'type': 'web_search_preview'} tool.
›Adds structured output support via the OpenAI Responses API in ChatOpenAI.
langchain-anthropic 0.3.10 adds support for Anthropic built-in tools.
└──▷ GET THIS VERSION
$ git clone --branch langchain-anthropic==0.3.10 https://github.com/langchain-ai/langchain.git
# already have the repo? check out this version:$ git checkout langchain-anthropic==0.3.10
›Adds support for Anthropic built-in tools in the ChatAnthropic integration.
langchain-mistralai 0.2.8 adds model_kwargs support and returns model_name in response metadata.
└──▷ GET THIS VERSION
$ git clone --branch langchain-mistralai==0.2.8 https://github.com/langchain-ai/langchain.git
# already have the repo? check out this version:$ git checkout langchain-mistralai==0.2.8
›Adds model_kwargs support to pass additional keyword arguments to Mistral models.
›Returns model_name in response metadata from Mistral chat completions.
LangChain CLI 0.0.36 adds ChatDeepSeek integration and renames LANGCHAIN_ env vars to LANGSMITH_.
└──▷ GET THIS VERSION
$ git clone --branch langchain-cli==0.0.36 https://github.com/langchain-ai/langchain.git
# already have the repo? check out this version:$ git checkout langchain-cli==0.0.36
›Renames all LANGCHAIN_ environment variable flags to LANGSMITH_ flags across the library.
›Adds ChatDeepSeek integration for DeepSeek models.
›Adds BaseMessage.text() method to the core library.
›Adds a minimal starter vector store template to the CLI.
└──▷ BREAKING ON UPGRADE
!All LANGCHAIN_ environment variable flags are replaced with LANGSMITH_ flags — any working setup that sets LANGCHAIN_* variables will need to rename them to LANGSMITH_* on upgrade.
langchain-community 0.3.19 adds async generation, MMR for OLAP vector stores, Tavily result enrichment, and a Confluence attachment filter.
└──▷ GET THIS VERSION
$ git clone --branch langchain-community==0.3.19 https://github.com/langchain-ai/langchain.git
# already have the repo? check out this version:$ git checkout langchain-community==0.3.19
›Adds title, score, and raw_content fields to Tavily search results, surfacing richer metadata per result.
›Adds a filter method to ConfluenceLoader for controlling which attachments are loaded.
›Implements the MMR (Maximal Marginal Relevance) algorithm for OLAP vector storage, enabling diversity-aware retrieval.
›Adds an asynchronous generate interface to the community layer.
›Adds cost data for the anthropic.claude-3-7 model on AWS Bedrock.
+1 moreshow less
›Makes certain Jira fields optional so the Jira agent works without requiring previously mandatory values.
langchain-anthropic 0.3.9 adds structured output support with thinking enabled and returns model_name in response metadata.
└──▷ GET THIS VERSION
$ git clone --branch langchain-anthropic==0.3.9 https://github.com/langchain-ai/langchain.git
# already have the repo? check out this version:$ git checkout langchain-anthropic==0.3.9
›Returns model_name in response metadata for Anthropic chat model responses.
›Supports structured output (.with_structured_output()) when Anthropic extended thinking is enabled.
LangGraph CLI 0.1.81 adds ui_config parameter to customize the LangGraph UI via configuration.
└──▷ GET THIS VERSION
$ git clone --branch cli==0.1.81 https://github.com/langchain-ai/langgraph.git
# already have the repo? check out this version:$ git checkout cli==0.1.81
›Adds ui_config parameter to the LangGraph configuration for customizing the LangGraph UI.
›Exposes LANGGRAPH_UI_CONFIG Docker environment variable when UI configurations are provided, enabling container-level UI customization.
28 more releases in this issue
· 2025-03-04 → 2025-03-28
LangGraph SDK 0.1.60 adds dictionary-like access to the auth user object — index, check, and iterate over user properties.
└──▷ GET THIS VERSION
$ git clone --branch sdk==0.1.60 https://github.com/langchain-ai/langgraph.git
# already have the repo? check out this version:$ git checkout sdk==0.1.60
└──▷ USE IT
Access, check, and iterate over user properties inside a LangGraph auth handler without calling getattr.
python
from langgraph_sdk.auth import Auth
auth = Auth()
@auth.authenticate
async def authenticate(headers: dict) -> Auth.types.MinimalUserDict:
# ... token validation ...
return {"identity": "user-123", "role": "admin"}
@auth.on
async def handle(ctx, value):
user = ctx.user
role = user["role"] # __getitem__
if "role" in user: # __contains__
for key in user: # __iter__
print(key, user[key])
›Adds __getitem__ to the auth user object, enabling dictionary-style property access (e.g., user["sub"]).
›Adds __contains__ to the auth user object so you can check property existence with the in operator.
›Adds __iter__ to the auth user object, allowing iteration over all user properties in auth handlers.
LangGraph CLI now reads package.json metadata to auto-detect Yarn, pnpm, or Bun when no lock file is present.
└──▷ GET THIS VERSION
$ git clone --branch cli==0.1.80 https://github.com/langchain-ai/langgraph.git
# already have the repo? check out this version:$ git checkout cli==0.1.80
›Adds get_pkg_manager_name() helper that reads packageManager or devEngines.packageManager.name from package.json to detect the correct package manager (Yarn, pnpm, Bun, or npm) even when no lock file exists.
LangGraph SDK 0.1.59 adds per-request custom HTTP headers across all API client methods.
└──▷ GET THIS VERSION
$ git clone --branch sdk==0.1.59 https://github.com/langchain-ai/langgraph.git
# already have the repo? check out this version:$ git checkout sdk==0.1.59
└──▷ USE IT
Pass a correlation or tenant-tracking header on a per-run basis without modifying the global client config.
Inject a per-request auth token when streaming a run, e.g. for short-lived credentials that differ from the client's default.
python
async for chunk in client.runs.stream(
thread_id="<thread_id>",
assistant_id="<assistant_id>",
headers={"Authorization": "Bearer <ephemeral_token>"}
):
print(chunk)
›Adds an optional headers parameter to all HTTP methods (get, post, put, patch, delete, stream) on HttpClient and SyncHttpClient, merging custom headers with existing request headers.
›Adds optional headers parameter to all methods on AssistantsClient and SyncAssistantsClient (including get, create, update, delete, search).
›Adds optional headers parameter to all thread-related methods on ThreadsClient and SyncThreadsClient, including state management, history, and creation.
›Adds optional headers parameter to all run methods on RunsClient and SyncRunsClient, covering create, stream, wait, and management operations.
›Adds optional headers parameter to all cron job methods on CronClient and SyncCronClient (create, search, delete).
+1 moreshow less
›Adds optional headers parameter to all store operations on StoreClient and SyncStoreClient, including item storage, retrieval, and namespace management.
langgraph-checkpoint 2.0.22 adds blob storage for InMemorySaver, upgrades to ormsgpack, and supports custom serialization hooks.
└──▷ GET THIS VERSION
$ git clone --branch checkpoint==2.0.22 https://github.com/langchain-ai/langgraph.git
# already have the repo? check out this version:$ git checkout checkpoint==2.0.22
›Adds dedicated blob storage system to InMemorySaver for more efficient, lower-memory channel value management via a new blobs store and _load_blobs method.
›Bumps checkpoint format to LATEST_VERSION = 2, adopted by empty_checkpoint() and create_checkpoint(), to support the new storage layout.
›Replaces msgpack with ormsgpack in JsonPlusSerializer for faster serialization, including new bytearray support and optimized serialization options.
›Adds customizable JsonPlusSerializer.__init__ accepting an optional custom unpacking hook, plus _msgpack_ext_hook_to_json for better MessagePack-to-JSON type translation.
LangGraph 0.3.19 adds dependency-aware node scheduling and XXH3-based task ID hashing for faster graph execution.
└──▷ GET THIS VERSION
$ git clone --branch 0.3.19 https://github.com/langchain-ai/langgraph.git
# already have the repo? check out this version:$ git checkout 0.3.19
└──▷ USE IT
Explicitly declare that a callable node accepts the LangChain config, avoiding runtime parameter inspection overhead.
python
from langgraph.utils.runnable import RunnableCallable
def my_node(state, config):
# config is available here
return {"result": config["configurable"].get("user_id")}
node = RunnableCallable(my_node, func_accepts_config=True)
Attach a subgraph directly to a PregelNode without wrapping it in a bound runnable — useful when composing graphs programmatically.
python
from langgraph.pregel.read import PregelNode
child_graph = build_child_graph() # returns a compiled Pregel
node = PregelNode(
channels=["input"],
triggers=["input"],
mapper=None,
subgraphs=[child_graph],
)
›Adds dependency-aware node scheduling: only nodes whose trigger channels were updated in the previous step are evaluated, reducing unnecessary work in large graphs.
›Adds trigger_to_nodes property on Pregel to expose the mapping from channel triggers to dependent nodes.
›Adds subgraphs parameter on PregelNode to directly specify subgraphs instead of extracting them from a bound runnable.
›Adds func_accepts_config parameter on RunnableCallable to explicitly control whether a wrapped function receives the LangChain config argument.
›Switches task ID generation to the XXH3 hash algorithm (via _xxhash_str) for newer checkpoint versions, replacing the slower SHA-1 implementation.
LangGraph CLI dev command gains --studio_url option to connect to custom Studio instances.
└──▷ GET THIS VERSION
$ git clone --branch cli==0.1.78 https://github.com/langchain-ai/langgraph.git
# already have the repo? check out this version:$ git checkout cli==0.1.78
└──▷ TRY IT
Point the local dev server at a self-hosted or staging LangGraph Studio instance instead of the default smith.langchain.com.
$ langgraph dev --studio_url https://studio.internal.example.com
›Adds --studio_url option to the dev command, enabling connection to a custom LangGraph Studio instance instead of the default https://smith.langchain.com.
LangGraph SDK 0.1.58 adds supersteps and graph_id parameters to thread creation for cross-deployment thread copying.
└──▷ GET THIS VERSION
$ git clone --branch sdk==0.1.58 https://github.com/langchain-ai/langgraph.git
# already have the repo? check out this version:$ git checkout sdk==0.1.58
└──▷ USE IT
Copy a thread from one deployment to another by replaying its supersteps at creation time.
›Adds supersteps parameter to sync and async ThreadsClient.create(), enabling a sequence of state updates to be applied at thread creation — useful for copying threads between deployments.
›Adds graph_id parameter to ThreadsClient.create() to associate a new thread with a specific graph at creation time.
$ git clone --branch 0.3.15 https://github.com/langchain-ai/langgraph.git
# already have the repo? check out this version:$ git checkout 0.3.15
└──▷ USE IT
Check whether a channel holds a value before reading it, avoiding try/except boilerplate in custom channel logic.
python
if channel.is_available():
value = channel.get()
›Adds is_available() method to all channel types (AnyValue, BinaryOperatorAggregate, DynamicBarrierValue, EphemeralValue, LastValue, NamedBarrierValue, Topic, UntrackedValue) for exception-free channel state checks.
›Changes PregelExecutableTask.triggers type from list[str] to Sequence[str] for more flexible and performant trigger handling.
└──▷ BREAKING ON UPGRADE
!The return_exception parameter is removed from read_channel() in langgraph.pregel.io; code passing that argument will break.
LangGraph checkpoint adds EncryptedSerializer and CipherProtocol for at-rest encryption of checkpoint data.
└──▷ GET THIS VERSION
$ git clone --branch checkpoint==2.0.21 https://github.com/langchain-ai/langgraph.git
# already have the repo? check out this version:$ git checkout checkpoint==2.0.21
└──▷ USE IT
Encrypt all checkpoint data at rest using AES — useful when storing sensitive agent state in a shared or cloud-backed checkpointer.
python
from langgraph.checkpoint.serde.encrypted import EncryptedSerializer
# Key can also be supplied via LANGGRAPH_AES_KEY env var
serializer = EncryptedSerializer.from_pycryptodome_aes(key=b"your-32-byte-aes-key-here!!!!!")
# Pass the serializer to your checkpointer of choice
from langgraph.checkpoint.memory import MemorySaver
checkpointer = MemorySaver(serde=serializer)
Implement a custom cipher (e.g., a KMS-backed one) by conforming to CipherProtocol instead of using the built-in AES factory.
python
from langgraph.checkpoint.serde.base import CipherProtocol
from langgraph.checkpoint.serde.encrypted import EncryptedSerializer
class MyKMSCipher(CipherProtocol):
def encrypt(self, plaintext: bytes) -> bytes:
... # call your KMS
def decrypt(self, ciphertext: bytes) -> bytes:
... # call your KMS
serializer = EncryptedSerializer(cipher=MyKMSCipher())
›New CipherProtocol interface defines encrypt/decrypt contract for pluggable cipher implementations.
›New EncryptedSerializer class wraps any underlying serializer (defaults to JsonPlusSerializer) to transparently encrypt and decrypt checkpoint data.
›Factory method EncryptedSerializer.from_pycryptodome_aes enables AES-encrypted checkpoints via the pycryptodome library with minimal setup.
›Supports AES key supply via LANGGRAPH_AES_KEY environment variable or direct key passing, and is backward-compatible with existing unencrypted checkpoint data.
langgraph-checkpoint-postgres 2.0.17 adds TTL support for Postgres store items with automatic background expiry sweeping.
└──▷ GET THIS VERSION
$ git clone --branch checkpointpostgres==2.0.17 https://github.com/langchain-ai/langgraph.git
# already have the repo? check out this version:$ git checkout checkpointpostgres==2.0.17
└──▷ USE IT
Automatically expire agent memory store entries after 60 minutes, with a background sweeper running every 30 seconds.
python
from langgraph.store.postgres import PostgresStore
store = PostgresStore.from_conn_string(
"postgresql://user:pass@localhost/mydb",
ttl={"default_ttl": 60, "sweep_interval_minutes": 0.5},
)
store.start_ttl_sweeper()
# ... use store in your LangGraph app ...
store.stop_ttl_sweeper()
Use the async store with TTL in an async LangGraph application, ensuring cleanup on shutdown.
python
from langgraph.store.postgres.aio import AsyncPostgresStore
async with AsyncPostgresStore.from_conn_string(
"postgresql://user:pass@localhost/mydb",
ttl={"default_ttl": 120},
) as store:
await store.start_ttl_sweeper()
# ... use store in your async LangGraph app ...
await store.stop_ttl_sweeper()
Manually trigger a TTL sweep on demand, e.g. as part of a scheduled maintenance job.
python
from langgraph.store.postgres import PostgresStore
store = PostgresStore.from_conn_string("postgresql://user:pass@localhost/mydb")
deleted_count = store.sweep_ttl()
print(f"Swept {deleted_count} expired items")
›Adds ttl parameter to PostgresStore and AsyncPostgresStore constructors to configure Time To Live behavior for store items.
›Adds start_ttl_sweeper() and stop_ttl_sweeper() methods to manage a background thread/task that automatically deletes expired items.
›Adds sweep_ttl() method (sync and async) for on-demand manual deletion of expired store items.
›Supports TTL configuration via from_conn_string() for both sync and async store classes.
›Adds expires_at and ttl_minutes columns plus an index on expires_at to the store table via new database migrations.
+1 moreshow less
›Enables TTL refresh on GET and SEARCH operations so item lifetimes can be extended on access.
LangGraph checkpoint 2.0.20 adds configurable TTL sweep intervals for automatic expiry cleanup in stores.
└──▷ GET THIS VERSION
$ git clone --branch checkpoint==2.0.20 https://github.com/langchain-ai/langgraph.git
# already have the repo? check out this version:$ git checkout checkpoint==2.0.20
└──▷ USE IT
Enable background TTL sweeping so expired store entries are deleted automatically every N minutes without manual intervention.
python
from langgraph.store.base import TTLConfig
ttl_config = TTLConfig(
sweep_interval_minutes=30
)
›Adds sweep_interval_minutes field to TTLConfig to schedule automatic periodic deletion of expired store items.
LangGraph CLI 0.1.77 adds automatic TTL sweeping via new sweep_interval_minutes config option.
└──▷ GET THIS VERSION
$ git clone --branch cli==0.1.77 https://github.com/langchain-ai/langgraph.git
# already have the repo? check out this version:$ git checkout cli==0.1.77
└──▷ USE IT
Enable automatic TTL sweeping every 10 minutes so expired store entries are cleaned up without manual intervention.
›Adds sweep_interval_minutes to TTLConfig, enabling the store to periodically delete expired items automatically; omitting it preserves the previous no-sweep behavior.
LangGraph SDK adds stream_mode filtering and cancel_on_disconnect to join_stream for precise run output control.
└──▷ GET THIS VERSION
$ git clone --branch sdk==0.1.57 https://github.com/langchain-ai/langgraph.git
# already have the repo? check out this version:$ git checkout sdk==0.1.57
└──▷ USE IT
Filter a joined run stream to only receive graph state values and debug events, reducing noise in long-running pipelines.
python
async for chunk in client.runs.join_stream(thread_id, run_id, stream_mode=["values", "debug"]):
print(chunk)
Use cancel_on_disconnect in the sync client so a stalled run is automatically cancelled when your process disconnects.
python
for chunk in client.runs.join_stream(thread_id, run_id, stream_mode=["values"], cancel_on_disconnect=True):
print(chunk)
›Adds stream_mode parameter to both sync and async RunClient.join_stream, enabling filtering of streamed run output by mode (e.g. "values", "debug").
›Adds cancel_on_disconnect parameter to the sync RunClient.join_stream, reaching feature parity with the async version.
LangGraph prebuilt 0.1.3 adds Pydantic agent state models and Callable tool support in create_react_agent.
└──▷ GET THIS VERSION
$ git clone --branch prebuilt==0.1.3 https://github.com/langchain-ai/langgraph.git
# already have the repo? check out this version:$ git checkout prebuilt==0.1.3
└──▷ USE IT
Use a plain Python callable as a tool in a ReAct agent — no need to wrap it in a BaseTool subclass.
python
from langgraph.prebuilt import create_react_agent
def lookup_user(user_id: str) -> str:
"""Look up a user by ID."""
return f"User {user_id}: Alice"
agent = create_react_agent(model, tools=[lookup_user])
Use Pydantic-based agent state for strict type validation and serialization in a ReAct agent.
python
from langgraph.prebuilt import create_react_agent
from langgraph.prebuilt.chat_agent_executor import AgentStatePydantic
agent = create_react_agent(model, tools=[...], state_schema=AgentStatePydantic)
›Adds AgentStatePydantic and AgentStateWithStructuredResponsePydantic Pydantic models for representing agent state with messages, remaining steps, and structured responses.
›Enables create_react_agent to accept plain Callable objects as tools, in addition to BaseTool instances.
›Supports both TypedDict and Pydantic models interchangeably for agent state schema via updated StateSchemaType.
LangGraph Checkpoint 2.0.19 adds TTL configuration support for stores with default TTL values and refresh-on-read control.
└──▷ GET THIS VERSION
$ git clone --branch checkpoint==2.0.19 https://github.com/langchain-ai/langgraph.git
# already have the repo? check out this version:$ git checkout checkpoint==2.0.19
└──▷ USE IT
Set a store-wide default TTL and enable automatic TTL refresh on reads so cached items stay alive while actively used.
python
from langgraph.store.base import TTLConfig
# When constructing your store implementation
store = MyStore(
ttl_config=TTLConfig(
default_ttl=60, # minutes; applied to put/aput when no TTL is specified
refresh_on_read=True # extends TTL whenever an item is fetched
)
)
›Adds TTLConfig TypedDict to configure Time-To-Live behavior at the store level, including default_ttl (in minutes) and refresh_on_read options.
›Adds ttl_config property to BaseStore so TTL policy is set once and applied automatically to get, search, put, and their async counterparts.
›Adds NotProvided sentinel class and NOT_PROVIDED constant to distinguish between explicitly passing ttl=None and omitting a TTL value entirely.
└──▷ BREAKING ON UPGRADE
!The refresh_ttl parameter on get, search, and async counterparts now defaults to None (inherit store's TTL configuration) instead of True; stores that relied on TTLs being refreshed on every read will no longer do so unless TTLConfig(refresh_on_read=True) is set or refresh_ttl=True is passed explicitly.
LangGraph CLI 0.1.76 adds TTL configuration for stores, enabling automatic expiration of stored items.
└──▷ GET THIS VERSION
$ git clone --branch cli==0.1.76 https://github.com/langchain-ai/langgraph.git
# already have the repo? check out this version:$ git checkout cli==0.1.76
└──▷ USE IT
Expire store entries after 60 minutes and keep them alive as long as they're being read — useful for session-scoped memory that should age out when users go idle.
python
from langgraph.config import StoreConfig, TTLConfig
store_cfg = StoreConfig(
ttl=TTLConfig(
default_ttl=60, # minutes until a new item expires
refresh_on_read=True, # reset the clock whenever the item is read
)
)
›Adds TTLConfig TypedDict to control automatic expiration of store items, with per-read TTL refresh and a configurable default TTL in minutes.
›Extends StoreConfig with an optional ttl field to attach TTL settings to any store definition.
LangGraph 0.3.7 adds Pydantic v1/v2 model validation for graph inputs via input_model support.
└──▷ GET THIS VERSION
$ git clone --branch 0.3.7 https://github.com/langchain-ai/langgraph.git
# already have the repo? check out this version:$ git checkout 0.3.7
└──▷ USE IT
Enforce structured, validated inputs on a compiled state graph by passing a Pydantic model as input_model so invalid payloads are caught before execution begins.
python
from pydantic import BaseModel
from langgraph.graph.state import StateGraph
class MyInput(BaseModel):
query: str
max_results: int = 5
builder = StateGraph(MyInput)
# ... add nodes and edges ...
graph = builder.compile()
# Pydantic validation now runs automatically on invoke
result = graph.invoke({"query": "threat actors targeting finance", "max_results": 10})
›Adds input_model support to Pregel for validating graph inputs against Pydantic v1 and v2 models, using construct/model_construct respectively.
›Extends get_input_schema to prioritize the input_model when available, surfacing typed input schemas for state graphs.
›Introduces _pick_mapper function in StateGraph/CompiledStateGraph to correctly handle Pydantic and non-Pydantic schema types during state coercion.
LangGraph 0.3.6 adds input schema inference for conditional edges and a dedicated Branch module with a new from_path factory method.
└──▷ GET THIS VERSION
$ git clone --branch 0.3.6 https://github.com/langchain-ai/langgraph.git
# already have the repo? check out this version:$ git checkout 0.3.6
└──▷ USE IT
Use Branch.from_path to build a conditional edge with automatic input schema inference, so the router function only receives the fields it declares rather than the full graph state.
python
from langgraph.graph.branch import Branch
branch = Branch.from_path(
path=my_router_fn,
path_map={"yes": "node_a", "no": "node_b"},
# input_schema is inferred automatically from my_router_fn's signature
)
graph.add_conditional_edges("entry", branch)
›Adds input_schema field to Branch for automatic schema inference on conditional edges in StateGraph.
LangGraph Postgres checkpoint store exposes PLACEHOLDER and get_distance_operator as public API
└──▷ GET THIS VERSION
$ git clone --branch checkpointpostgres==2.0.16 https://github.com/langchain-ai/langgraph.git
# already have the repo? check out this version:$ git checkout checkpointpostgres==2.0.16
└──▷ USE IT
Reference the now-public PLACEHOLDER constant when building custom batch queries against the Postgres store.
python
from langgraph.store.postgres.base import PLACEHOLDER
›Exposes PLACEHOLDER constant (formerly _PLACEHOLDER) as a public symbol in langgraph.store.postgres.base for use in external code.
›Exposes get_distance_operator function (formerly _get_distance_operator) as a public API in langgraph.store.postgres.base for custom vector-distance logic.
└──▷ BREAKING ON UPGRADE
!The _PLACEHOLDER constant is renamed to PLACEHOLDER; any code importing _PLACEHOLDER directly will break.
!The _get_distance_operator function is renamed to get_distance_operator; any code importing or calling _get_distance_operator directly will break.
$ git clone --branch checkpoint==2.0.18 https://github.com/langchain-ai/langgraph.git
# already have the repo? check out this version:$ git checkout checkpoint==2.0.18
└──▷ USE IT
Use integer or other non-string keys directly in store put/get calls without manually casting to str first.
python
store.put(("namespace",), 42, {"value": "data"})
result = store.get(("namespace",), 42)
›Enables non-string keys (integers, tuples, etc.) in all BaseStore operations (get, put, delete, and async variants) by automatically converting them to strings before storage.
LangGraph SDK 0.1.55 adds TTL support to the store API, enabling automatic expiration and refresh of stored items.
└──▷ GET THIS VERSION
$ git clone --branch sdk==0.1.55 https://github.com/langchain-ai/langgraph.git
# already have the repo? check out this version:$ git checkout sdk==0.1.55
└──▷ USE IT
Store a short-lived session token that auto-expires after 30 minutes, so stale credentials are never returned.
LangGraph Checkpoint 2.0.17 adds TTL support for store items, enabling automatic expiration of stored data.
└──▷ GET THIS VERSION
$ git clone --branch checkpoint==2.0.17 https://github.com/langchain-ai/langgraph.git
# already have the repo? check out this version:$ git checkout checkpoint==2.0.17
›Adds TTL (time-to-live) support to BaseStore via a supports_ttl flag, letting store implementations enable automatic expiration of stored items.
›Adds ttl: Optional[float] = None parameter to PutOp to set per-item expiration time in minutes when writing to the store.
›Adds refresh_ttl: bool = True parameter to GetOp and SearchOp to control whether TTLs are refreshed on retrieval or search.
LangGraph CLI 0.1.75 adds IDE schema validation for langgraph.json and UI component configuration support.
└──▷ GET THIS VERSION
$ git clone --branch cli==0.1.75 https://github.com/langchain-ai/langgraph.git
# already have the repo? check out this version:$ git checkout cli==0.1.75
└──▷ USE IT
Declare UI components for an agent in langgraph.json using the new ui configuration key.
›Adds JSON schema files (schema.json and schema.v0.json) referenceable in langgraph.json to enable IDE autocompletion and validation of LangGraph configuration.
›Adds a new ui configuration option to the Config class for defining UI components associated with agents.
›Supports setting the LANGGRAPH_UI environment variable in Docker deployments to configure UI components.
└──▷ BREAKING ON UPGRADE
!StoreConfig.embed is renamed to StoreConfig.index — any langgraph.json or code referencing StoreConfig.embed will break on upgrade.
LangGraph prebuilt 0.1.2 lets create_react_agent accept a RunnableSequence as its model argument.
└──▷ GET THIS VERSION
$ git clone --branch prebuilt==0.1.2 https://github.com/langchain-ai/langgraph.git
# already have the repo? check out this version:$ git checkout prebuilt==0.1.2
└──▷ USE IT
Use a prompt-plus-model RunnableSequence as the agent's model so a fixed system prompt is baked into the chain rather than managed separately.
python
from langchain_core.prompts import ChatPromptTemplate
from langchain_openai import ChatOpenAI
from langgraph.prebuilt import create_react_agent
prompt = ChatPromptTemplate.from_messages([
("system", "You are a helpful security analyst."),
("placeholder", "{messages}"),
])
llm = ChatOpenAI(model="gpt-4o")
# Pass the RunnableSequence (prompt | llm) directly as the model
agent = create_react_agent(model=prompt | llm, tools=[my_tool])
›Supports passing a RunnableSequence as the model to create_react_agent, enabling prompt-chained pipelines to be used directly as the agent's LLM backbone.
Check whether a custom config type will be handled natively by Pydantic before wiring it into a Pregel graph.
python
from langgraph.utils.pydantic import is_supported_by_pydantic
from typing import TypedDict
class MyConfig(TypedDict):
temperature: float
max_tokens: int
if is_supported_by_pydantic(MyConfig):
print("Safe to use as a Pregel config type")
›Adds config_schema method to Pregel for proper configuration schema generation when the config type is a TypedDict, dataclass, or Pydantic model.
›Adds get_config_jsonschema method to Pregel for converting config schemas to JSON Schema format, consistent with existing get_input_jsonschema/get_output_jsonschema.
›Adds is_supported_by_pydantic utility function to detect whether a type (dataclass, Pydantic model, or TypedDict, including Python 3.12+) is directly supported by Pydantic.
Letta 0.6.41 bakes the OpenTelemetry collector into the Letta container image.
└──▷ GET THIS VERSION
$ git clone --branch 0.6.41 https://github.com/letta-ai/letta.git
# already have the repo? check out this version:$ git checkout 0.6.41
›Bundles the OpenTelemetry (OTEL) collector directly into the Letta Docker image, enabling telemetry collection without a separate sidecar or external collector deployment.
AutoGen Studio 0.4.2 adds component validation, LLM observability, token streaming, session comparison, Anthropic support, and experimental GitHub auth.
└──▷ GET THIS VERSION
$ git clone --branch autogenstudio-v0.4.2 https://github.com/microsoft/autogen.git
# already have the repo? check out this version:$ git checkout autogenstudio-v0.4.2
└──▷ HOW TO FIND IT
Enable LLM call observability to inspect every LLMCallEvent during agent runs — useful for debugging prompt/response chains.
📍In AutoGen Studio, click the cog icon (Settings) in the lower-left corner and enable the LLM Call Observability option.
Stream tokens in real time for an agent to get immediate feedback during long LLM responses.
›Adds Component Validation API: all component schemas (teams, agents, models, tools, termination conditions) are automatically validated on save in the team builder, surfacing configuration errors early.
›Adds a Test button for model clients in the team builder UI to verify model configuration by running a live LLM query and displaying results.
›Adds LLM Call Observability: view all LLMCallEvents in AutoGen Studio via the Settings panel (cog icon, lower left).
›Adds token streaming in the AGS UI for agents where stream_model_client is set to true, displaying tokens as they are generated.
›Adds side-by-side Session Comparison in the playground: select multiple sessions and interact with them simultaneously to compare agent outputs.
+4 moreshow less
›Adds Anthropic model support in AutoGen Studio.
›Improves Gallery editing UI so teams, agents, models, tools, and termination conditions can be modified independently without requiring raw JSON review; Gallery is now persisted in a database rather than local storage.
›Adds experimental GitHub authentication support: pass an authentication configuration YAML file to enable user-scoped login and per-user session isolation.
›Adds experimental local Python code execution tool in AutoGen Studio.
└──▷ BREAKING ON UPGRADE
!The Gallery is now persisted in a database rather than local storage, which may require migration of existing locally stored Gallery data.
2 more releases in this issue
· 2025-03-04 → 2025-03-17
AutoGen v0.4.9 adds Anthropic & LlamaCpp model clients, task-centric memory, PowerShell execution, and pause/resume for agent teams.
└──▷ GET THIS VERSION
$ git clone --branch python-v0.4.9 https://github.com/microsoft/autogen.git
# already have the repo? check out this version:$ git checkout python-v0.4.9
└──▷ USE IT
Run a local GGUF model or pull directly from Hugging Face for offline/private inference.
python
from autogen_ext.models.llama_cpp import LlamaCppChatCompletionClient
from autogen_core.models import UserMessage
import asyncio
async def main():
client = LlamaCppChatCompletionClient(
repo_id="unsloth/phi-4-GGUF", filename="phi-4-Q2_K_L.gguf",
n_gpu_layers=-1, seed=1337, n_ctx=5000
)
result = await client.create([UserMessage(content="Summarize this report", source="user")])
print(result)
asyncio.run(main())
Give an AssistantAgent persistent memory so it learns corrections and guidance across conversations.
python
from autogen_agentchat.agents import AssistantAgent
from autogen_ext.models.openai import OpenAIChatCompletionClient
from autogen_ext.experimental.task_centric_memory import MemoryController
from autogen_ext.experimental.task_centric_memory.utils import Teachability
client = OpenAIChatCompletionClient(model="gpt-4o-2024-08-06")
memory_controller = MemoryController(reset=False, client=client)
teachability = Teachability(memory_controller=memory_controller)
agent = AssistantAgent(
name="teachable_agent",
model_client=client,
memory=[teachability],
)
›Adds AnthropicChatCompletionClient for native Anthropic model support, following the same interface as OpenAIChatCompletionClient.
›Adds LlamaCppChatCompletionClient for running local GGUF models or Hugging Face models via the llama-cpp SDK.
›Introduces experimental Task-Centric Memory (MemoryController, Teachability) enabling agents to learn from user teaching, self-improve, and persist knowledge beyond context-window limits.
›Adds LLMStreamStartEvent and LLMStreamEndEvent tracing events for LLM streaming.
›Adds ToolCallEvent logged from all built-in tools for richer tracing.
+6 moreshow less
›Supports tracing via context provider.
›Adds PowerShell support to LocalCommandLineCodeExecutor.
›Adds Pause and Resume capability for AgentChat Teams and Agents.
›Adds optional base path configuration to FileSurfer.
›Adds support for external agent runtime in AgentChat.
›Introduces Gitty, an experimental sample application that auto-replies to GitHub issues.
└──▷ BREAKING ON UPGRADE
!Team state now uses the agent name as the key instead of the agent ID, and the team_id field is removed from serialized state; states saved with the old format may not be compatible with the new format.
AutoGen v0.4.8 adds an Ollama chat client, ThoughtEvent streaming, new termination conditions, and a metadata field for AgentChat messages.
└──▷ GET THIS VERSION
$ git clone --branch python-v0.4.8 https://github.com/microsoft/autogen.git
# already have the repo? check out this version:$ git checkout python-v0.4.8
└──▷ USE IT
Run inference against a local Ollama model instead of a cloud API — useful for air-gapped environments or cost control.
python
from autogen_ext.models.ollama import OllamaChatCompletionClient
from autogen_core.models import UserMessage
ollama_client = OllamaChatCompletionClient(model="llama3")
result = await ollama_client.create([UserMessage(content="Summarize this CVE.", source="user")])
print(result)
Get structured, schema-validated output from a local Ollama model — ideal for parsing threat intel or tool results into typed objects.
python
from autogen_ext.models.ollama import OllamaChatCompletionClient
from autogen_core.models import UserMessage
from pydantic import BaseModel
class ThreatActor(BaseModel):
name: str
country: str
ollama_client = OllamaChatCompletionClient(model="llama3", response_format=ThreatActor)
result = await ollama_client.create([UserMessage(content="Identify the threat actor in this report.", source="user")])
print(result)
›New OllamaChatCompletionClient enables local LLM inference via Ollama, with support for structured output and component-config loading.
›New thought field in CreateResult surfaces chain-of-thought text from tool calls; AssistantAgent emits it as a ThoughtEvent in the message stream (currently supported by OpenAIChatCompletionClient).
›New metadata field on AgentChat message base types lets applications attach custom key/value content to messages.
›New TextMessageTerminationCondition termination condition for halting single-agent teams based on text message content.
›New FunctionCallTermination termination condition for stopping a team when a specific function call is made.
+4 moreshow less
›Adds ChromaDBVectorMemory to the extensions package for vector-backed agent memory.
›Adds native Anthropic model client support via extensions.
›FileSurfer and CodeExecAgent are now declarative (support component config).
›Unhandled exceptions inside AgentChat agents (e.g., AssistantAgent) now propagate as fatal errors instead of silently stopping the team.
└──▷ BREAKING ON UPGRADE
!The name field is now required in FunctionExecutionResult; existing code constructing FunctionExecutionResult without name will raise an error.
PydanticAI v0.0.32 adds an instrument param to Agent, supports Claude Sonnet 3.7 and Gemini 2.0 Pro Exp.
└──▷ GET THIS VERSION
$ git clone --branch v0.0.32 https://github.com/pydantic/pydantic-ai.git
# already have the repo? check out this version:$ git checkout v0.0.32
└──▷ USE IT
Re-enable OpenTelemetry tracing for an agent after the default changed to off.
python
agent = Agent('openai:gpt-4o', instrument=True)
›Adds instrument param to Agent to opt into OpenTelemetry tracing explicitly, replacing the previous always-on auto-instrumentation.
›Adds support for claude-sonnet-3-7 model.
›Adds support for gemini-2.0-pro-exp-02-05 model.
└──▷ BREAKING ON UPGRADE
!OpenTelemetry instrumentation is now DISABLED by default; agents that relied on automatic tracing must now pass instrument=True to Agent(...) explicitly to restore telemetry.
$ git clone --branch v0.0.31 https://github.com/pydantic/pydantic-ai.git
# already have the repo? check out this version:$ git checkout v0.0.31
└──▷ USE IT
Iterate over graph execution asynchronously using the new async Graph.iter context manager.
python
async with my_graph.iter(initial_state) as graph_run:
async for node in graph_run:
print(node)
›Supports recursive objects in return_type, enabling agents to return self-referential data structures.
›Makes Graph.iter an async context manager, enabling asynchronous iteration over graph execution.
›Replaces the model request span with InstrumentedModel for more structured OpenTelemetry tracing.
›Replaces all_messages in the agent span with all_messages_events, aligning its format with the InstrumentedModel span.
└──▷ BREAKING ON UPGRADE
!HandleResponseNode is renamed to CallToolsNode — any code referencing HandleResponseNode by name will break.
!Graph.iter is now an async context manager — code using it as a sync context manager will break.
!The model request span is replaced by InstrumentedModel — any telemetry pipelines filtering on the model request span name will no longer receive it.
!The all_messages field in the agent span is replaced by all_messages_events — any telemetry pipelines reading all_messages from agent spans will no longer find it.
Semantic Kernel Python 1.26.1 introduces a unified agent invocation API with AgentThread and AgentResponseItem across all agent types.
└──▷ GET THIS VERSION
$ git clone --branch python-1.26.1 https://github.com/microsoft/semantic-kernel.git
# already have the repo? check out this version:$ git checkout python-1.26.1
›Adds AgentThread base class with create() and delete() methods to manage conversation thread lifecycle across all agent types (AzureAIAgent, ChatCompletionAgent, OpenAIAssistantAgent, AzureAssistantAgent, BedrockAgent, AutoGenConversableAgent).
›Agent methods get_response(...), invoke(...), and invoke_stream(...) now return AgentResponseItem[ChatMessageContent], exposing a message attribute (type TMessage) and a thread attribute (type AgentThread).
›Renames the message keyword argument on get_response(...), invoke(...), and invoke_stream(...) to messages, now accepting str | ChatMessageContent | list[str | ChatMessageContent].
›Consolidates all agent import paths under semantic_kernel.agents, enabling a single from semantic_kernel.agents import AzureAIAgent, ChatCompletionAgent, OpenAIAssistantAgent, AzureAssistantAgent, BedrockAgent, AutoGenConversableAgent import.
›Adds Copilot Studio Agents and Copilot Studio Skill demos.
└──▷ BREAKING ON UPGRADE
!The message keyword argument on get_response(...), invoke(...), and invoke_stream(...) is renamed to messages; existing call sites using message= will break.
!Agent response objects are now AgentResponseItem[ChatMessageContent] instead of plain ChatMessageContent; code that unpacks or type-checks the return value directly will break.
7 more releases in this issue
· 2025-03-06 → 2025-03-25
Semantic Kernel .NET 1.43.0 adds Aspire integration for agents, a Structured Data Plugin, web search in OpenAI settings, and Ollama vision support.
└──▷ GET THIS VERSION
$ git clone --branch dotnet-1.43.0 https://github.com/microsoft/semantic-kernel.git
# already have the repo? check out this version:$ git checkout dotnet-1.43.0
└──▷ USE IT
Enable web search on an OpenAI chat completion call so the model can retrieve live information.
csharp
var settings = new OpenAIPromptExecutionSettings
{
WebSearchEnabled = true
};
var result = await kernel.InvokePromptAsync("What happened in the news today?", new(settings));
›Adds WebSearchEnabled (and related options) to OpenAIPromptExecutionSettings to enable web search support for OpenAI-backed prompts.
›Adds a Structured Data Plugin supporting query and CRUD operations against structured data sources.
›Ports the Pinecone connector to use the Pinecone.Client library in the Memory/Embedding Vector Database (MEVD) layer.
›Adds support for configuring embedding dimensions in Google AI embeddings generation.
›Integrates the Agent Framework with .NET Aspire for agent observability and orchestration.
+1 moreshow less
›Adds an Ollama ChatCompletion with Vision sample demonstrating multimodal input via Ollama.
Semantic Kernel Python 1.25.0 adds an NVIDIA embedding connector for vector generation.
└──▷ GET THIS VERSION
$ git clone --branch python-1.25.0 https://github.com/microsoft/semantic-kernel.git
# already have the repo? check out this version:$ git checkout python-1.25.0
›Adds an NVIDIA Embedding Connector, enabling NVIDIA-hosted embedding models as a vector generation backend in Semantic Kernel pipelines.
Semantic Kernel .NET 1.42.0 adds YAML plugin import, Mistral document passing, HuggingFace batch embeddings, and more connector enhancements.
└──▷ GET THIS VERSION
$ git clone --branch dotnet-1.42.0 https://github.com/microsoft/semantic-kernel.git
# already have the repo? check out this version:$ git checkout dotnet-1.42.0
└──▷ USE IT
Use the SQL Server vector store with a connection string for safe concurrent access across threads.
csharp
var vectorStore = new SqlServerVectorStore("Server=myserver;Database=mydb;Trusted_Connection=True;");
›Adds SqlServerVectorStore support for accepting a connection string directly, enabling thread-safe usage of the SQL Server vector store connector.
›Adds functionality to create and import plugins with YAML-defined functions.
›Adds support for passing a document to Mistral AI chat model requests.
›Adds batch embedding generation support to the HuggingFace connector.
›Allows an HttpClient instance to be passed in when building an AzureOpenAI client from a service collection.
+4 moreshow less
›Promotes several OpenAPI APIs out of experimental status.
›Adds step uninitialization hooks for Steps in the Processes Local Runtime.
›Switches Postgres and SQL Server vector store packages to preview, and moves experimental designation to memory-store-only artifacts.
›Unifies collection deletion and creation APIs across MEVD (Memory and Embedding Vector Database) connectors.
└──▷ BREAKING ON UPGRADE
!The KernelAIFunction name separator is reverted to use a dash, which may affect existing code relying on the previous separator.
Semantic Kernel Python 1.24.1 adds a Pinecone vector store connector.
└──▷ GET THIS VERSION
$ git clone --branch python-1.24.1 https://github.com/microsoft/semantic-kernel.git
# already have the repo? check out this version:$ git checkout python-1.24.1
›Adds a Pinecone connector for vector store integration.
Semantic Kernel Python 1.24.0 adds a Faiss vector store connector and agent_id support for AzureAIAgent.
└──▷ GET THIS VERSION
$ git clone --branch python-1.24.0 https://github.com/microsoft/semantic-kernel.git
# already have the repo? check out this version:$ git checkout python-1.24.0
›Supports agent_id as an identifier for AzureAIAgent in addition to assistant_id, enabling retrieval of existing Azure AI agents by their agent ID.
›Introduces the Faiss Connector for vector similarity search via the semantic-kernel Python library, adding FAISS as a supported vector store backend.
Semantic Kernel .NET 1.41.0 adds AWS Bedrock text embeddings, HTTP request option access, Cloud Events abstractions, and public Bedrock agent clients.
└──▷ GET THIS VERSION
$ git clone --branch dotnet-1.41.0 https://github.com/microsoft/semantic-kernel.git
# already have the repo? check out this version:$ git checkout dotnet-1.41.0
›Adds mechanism to access HTTP request options, exposing lower-level control over outbound calls made by the kernel.
›Implements text embedding generation support for AWS Bedrock, extending the Bedrock connector beyond inference to embeddings.
›Makes Bedrock agent clients required and public, enabling direct programmatic access to the underlying AWS Bedrock agent client objects.
›Publishes Cloud Events abstractions for processing and publishing events, introducing a new eventing surface to the .NET SDK.
›Adds missing Ollama Connector Aspire-friendly extensions, enabling Aspire-integrated registration of the Ollama connector.
+4 moreshow less
›Applies a JSON converter for exceptions when serializing chat history, improving structured serialization of ChatHistory containing exception data.
›Exposes ChatMessageContent.Content property by removing EditorBrowsable(EditorBrowsableState.Never), making it fully accessible in IDE tooling.
›March 2025 VectorData updates bring new capabilities to the vector data layer.
Semantic Kernel Python adds experimental RealtimeClients for OpenAI WebSockets, WebRTC, and Azure OpenAI WebSockets.
└──▷ GET THIS VERSION
$ git clone --branch python-1.23.0 https://github.com/microsoft/semantic-kernel.git
# already have the repo? check out this version:$ git checkout python-1.23.0
›Introduces experimental RealtimeClients for OpenAI over WebSockets and WebRTC, and for Azure OpenAI over WebSockets, enabling low-latency real-time AI interactions from Python.
$ git clone --branch v0.2.30 https://github.com/camel-ai/camel.git
# already have the repo? check out this version:$ git checkout v0.2.30
›Adds Baidu search as a new search integration via feat: add baidu search.
›Enhances BrowserToolkit with new capabilities for browser-based agent workflows.
›Adds file output support for logging, enabling log persistence to disk.
›Refactors BaseEnvironment into distinct SingleStep and MultiStep environment classes for cleaner agent environment modeling.
└──▷ BREAKING ON UPGRADE
!BaseEnvironment has been refactored into SingleStep and MultiStep environment classes — code importing or subclassing BaseEnvironment directly will break on upgrade.
camel-ai v0.2.23 adds new toolkits (Excel, audio, web, image analysis, Zapier), hybrid retrieval, verifiers, and data-gen pipeline improvements.
└──▷ GET THIS VERSION
$ git clone --branch v0.2.23 https://github.com/camel-ai/camel.git
# already have the repo? check out this version:$ git checkout v0.2.23
└──▷ USE IT
Equip an agent with the ExcelToolkit to read and manipulate spreadsheets during a task.
python
from camel.toolkits import ExcelToolkit
from camel.agents import ChatAgent
toolkit = ExcelToolkit()
agent = ChatAgent(tools=toolkit.get_tools())
agent.step('Summarize the data in report.xlsx')
›Adds stop_on_first_failure option to InstructionFilter in the datagen module to halt pipelines on the first failed instruction.
›Adds ensure_ascii option to SelfImprovingCoTPipeline JSON output for non-ASCII character handling in generated datasets.
›Adds timestamp to VectorDBMemory to prevent data retrieval order confusion.
›Adds ExcelToolkit for agent interaction with Excel files.
›Adds WebToolkit (ported from owl project) for web interaction capabilities.
+15 moreshow less
›Adds audio toolkit (ported from owl project) for audio processing in agents.
›Adds image analysis toolkit for visual analysis tasks.
›Integrates Zapier AI as a new toolkit, enabling agents to trigger Zapier workflows.
›Adds reasoning_parameter integration for model calls, exposing reasoning configuration to agents.
›Introduces BaseVerifier and PythonVerifier for verifying agent-generated code and outputs.
›Implements KnowNo for agent uncertainty quantification and conformal prediction.
›Adds hybrid retrieval support, combining multiple retrieval strategies in the RAG pipeline.
›Integrates NetworkX for graph-based reasoning and data representation.
›Adds custom prompt support in the graph agent.
›Adds new timeout functionality across all toolkits, enabling per-toolkit execution time limits.
›Adds support for the gpt-4.5 model.
›Adds Ollama multimodal model support.
›Adds rejection sampling data generation pipeline with SelfImprovingCoT pipeline.
›Adds logging for error handling and instruction generation progress in datagen pipelines.
smolagents v1.11.0 adds VLLMModel, tightens sandbox security with module whitelisting, and expands E2B and OpenAI server options.
└──▷ GET THIS VERSION
$ git clone --branch v1.11.0 https://github.com/huggingface/smolagents.git
# already have the repo? check out this version:$ git checkout v1.11.0
└──▷ USE IT
Run an agent backed by a locally-served vLLM endpoint without leaving the smolagents API.
python
from smolagents import CodeAgent, VLLMModel
model = VLLMModel(model_id="meta-llama/Llama-3.1-8B-Instruct")
agent = CodeAgent(tools=[], model=model)
agent.run("Summarize the OWASP Top 10 for 2024.")
›Adds VLLMModel class for running inference against vLLM-served models directly from smolagents.
›Adds flatten_messages_as_text kwarg support to OpenAIServerModel for controlling message serialization behavior.
›Supports passing arbitrary kwargs to E2BExecutorSandbox constructor, unlocking full E2B sandbox configuration from the agent layer.
›Forbids all modules by default in the local executor except those explicitly listed in authorized_imports, hardening sandboxed code execution.
›Forbids access to all dunder attributes by default in the local executor, closing a class of sandbox escape vectors.
+4 moreshow less
›Switches dangerous-code detection from pattern matching to module-level checking, improving accuracy of sandbox security enforcement.
›Adds mlx-lm to the all extras group, making Apple Silicon local inference available via a single install target.
›Raises agent generation errors as exceptions instead of silently swallowing them, making failure modes visible to callers.
›Logs agent thoughts when verbosity_level is set to high, giving practitioners full reasoning traces during debugging.
└──▷ BREAKING ON UPGRADE
!Default model_id is removed from all model classes — callers that previously relied on the default must now pass an explicit model_id.
!All modules are now forbidden in the local executor by default; only those in authorized_imports are allowed — existing agents that imported modules without declaring them in authorized_imports will break.
smolagents v1.10.0 adds a Docker sandbox executor, Serper search support, custom final-answer handling, and --api-base/--api-key CLI arguments.
└──▷ GET THIS VERSION
$ git clone --branch v1.10.0 https://github.com/huggingface/smolagents.git
# already have the repo? check out this version:$ git checkout v1.10.0
└──▷ USE IT
Run an agent in a Docker sandbox to isolate arbitrary code execution from the host environment.
python
from smolagents import CodeAgent, HfApiModel
agent = CodeAgent(tools=[], model=HfApiModel(), executor="docker")
agent.run("List all files in /tmp and return their sizes.")
Point the smolagents CLI at a self-hosted or third-party OpenAI-compatible endpoint without editing config files.
$ smolagents --api-base https://my-llm-proxy.example.com/v1 --api-key $MY_API_KEY 'Summarize the latest news on AI safety'
›Adds executor="docker" argument to agent initialization, running generated code inside a Docker sandbox for isolated execution.
›Adds --api-base and --api-key arguments to the CLI for configuring model endpoints directly from the command line.
›Adds support for Serper as a search backend, expanding the available web-search tools.
›Enables custom final_answer handling in CodeAgent and via agent __init__, letting callers override how the agent surfaces its final result.
›Hardens the local Python interpreter by blocking access to builtins and dangerous modules at return time, reducing sandbox-escape risk without additional configuration.
+1 moreshow less
›Supports running an Open DeepResearch demo, including compatibility with models beyond o1 and Python ≥ 3.13 dependencies.
Aider v0.80.0 adds OpenRouter OAuth, Ctrl-X Ctrl-E editor keybinding, Scala repomap support, and smarter model defaults.
└──▷ GET THIS VERSION
$ git clone --branch v0.80.0 https://github.com/Aider-AI/aider.git
# already have the repo? check out this version:$ git checkout v0.80.0
└──▷ TRY IT
Edit a long, complex prompt in your preferred terminal editor mid-session instead of typing it inline.
$ # While in an aider session, press Ctrl-X Ctrl-E to open the current input buffer in $EDITOR
›Adds OpenRouter OAuth flow: prompts to authenticate via OAuth when no model or API keys are provided, and auto-selects a default OpenRouter model based on free/paid tier status when OPENROUTER_API_KEY is set.
›Prioritizes gemini/gemini-2.5-pro-exp-03-25 when GEMINI_API_KEY is set, and vertex_ai/gemini-2.5-pro-exp-03-25 when VERTEXAI_PROJECT is set, as the default model.
›Adds Ctrl-X Ctrl-E keybinding to open the current input buffer in an external editor.
›Adds repomap support for the Scala language.
›Boosts repomap ranking for files whose path components match identifiers mentioned in chat, improving context relevance.
+6 moreshow less
›Validates user-configured color settings on startup, warning and disabling invalid ones.
›Warns at startup when --stream and --cache-prompts are used together, since cost estimates may be inaccurate in that combination.
›Changes web scraping timeout from a hard error to a warning, allowing scraping to continue with partial content.
›Left-aligns markdown headings in terminal output for improved readability.
›Updates edit format to the new model's default when switching models with /model, if the user was using the previous model's default format.
›Adds the openrouter/deepseek-chat-v3-0324:free model.
5 more releases in this issue
· 2025-03-04 → 2025-03-31
Force reasoning-effort settings onto a model that doesn't advertise support, bypassing validation.
$ aider --check-model-accepts-settings false --reasoning-effort high --model openrouter/google/gemma-3-27b-it
›Adds thinking-token support for OpenRouter Sonnet 3.7 models.
›New /editor-model and /weak-model commands let you switch model roles interactively mid-session.
›New --git-commit-verify flag (default: false) controls whether git commit hooks are bypassed on Aider commits.
›New --check-model-accepts-settings flag (default: true) validates --reasoning-effort and --thinking-tokens against model capabilities, ignoring unsupported settings — or force them through by setting the flag to false.
›Adds AWS_PROFILE support for Bedrock models, enabling named AWS profile auth instead of explicit credentials.
+2 moreshow less
›Adds support for the openrouter/google/gemma-3-27b-it model.
›Improves code block rendering in markdown output with better padding via NoInsetMarkdown.
Aider v0.77.0 adds 150 new tree-sitter languages, in-session reasoning controls, and an auto-accept architect flag.
└──▷ GET THIS VERSION
$ git clone --branch v0.77.0 https://github.com/Aider-AI/aider.git
# already have the repo? check out this version:$ git checkout v0.77.0
└──▷ TRY IT
Cap reasoning token spend during a session to control cost when using extended-thinking models.
$ /think-tokens 8k
Run an architect-mode session that automatically applies proposed changes without manual confirmation prompts.
$ aider --architect--auto-accept-architect <file>
›Adds support for 130 new languages with linter support and 20 new languages with repo-map support via tree-sitter-language-pack.
›New /think-tokens command sets thinking token budget mid-session using human-readable formats (e.g., 8k, 10.5k, 0.5M); displays current setting when called with no arguments.
›New /reasoning-effort command controls model reasoning level interactively; displays current setting when called with no arguments.
›New --auto-accept-architect flag (default: true) skips confirmation prompts when accepting changes from the architect coder format.
›Adds ignore_permission_denied option to the file watcher to silently skip restricted files instead of erroring.
+3 moreshow less
›Adds model support for cohere_chat/command-a-03-2025 and gemini/gemma-3-27b-it.
›The bare /drop command now preserves original read-only files supplied via --read.
›--thinking-tokens argument now accepts human-readable string values (e.g., 8k, 0.5M).
Continue v1.0.5 adds tools support for custom LLMs and fireworks.ai, Anthropic extended thinking, MCP text resources, AWS credential auto-retrieval, and more.
└──▷ GET THIS VERSION
$ git clone --branch v1.0.5-vscode https://github.com/continuedev/continue.git
# already have the repo? check out this version:$ git checkout v1.0.5-vscode
└──▷ USE IT
Cap Jira issues returned as context to avoid overwhelming the model with large backlogs.
›Adds contextLength attribute to LLMOptions for custom LLM configurations.
›Adds maxResults attribute to the Jira context provider to cap the number of returned issues.
›Adds headers support to the HTTP context provider for authenticated requests.
›Adds tools (function calling) support for custom LLMs.
›Adds tools support for fireworks.ai models.
+19 moreshow less
›Adds function calling support to the VertexAI provider.
›Adds watsonx reranker integration for codebase retrieval.
›Enables retrieval of AWS credentials from environment variables and ECS/EC2 instance metadata.
›Supports MCP text resources, allowing MCP servers to expose readable text content.
›Surfaces tool call arguments in the chat UI so users can inspect what the model is invoking.
›Displays citations in the output for Perplexity Sonar research models.
›Processes and streams Anthropic extended thinking blocks, showing them in the output tab — supported on both direct Anthropic and AWS Bedrock providers.
›Adds instant apply for unified diff format.
›Adds up/down arrow key history navigation in the editor's edit-mode input.
›Supports pulling missing Ollama models on demand.
›Adds new Gemini models to config_schema.json.
›Adds new DeepSeek models to the config schema.
›Chunks user queries before embedding to improve codebase retrieval quality.
›Implements walkdir caching to speed up file-tree traversal.
›Batches URIs for snippets queries, reducing retrieval overhead.
›Adds a schema: v1 declaration for YAML configuration.
›Adds YAML-based model capability configuration.
›Adds an 'Explore Hub' onboarding card in both VS Code and JetBrains IDEs.
›Removes unused MCP connections on config reload to reduce resource usage.
2 more releases in this issue
· 2025-03-07 → 2025-03-27
Continue v1.0.4 adds AWS Bedrock tool use with Claude 3.7, Gemini 2.0 Flash support, proxy tool support, and inline keyboard shortcuts.
└──▷ GET THIS VERSION
$ git clone --branch v1.0.4-vscode https://github.com/continuedev/continue.git
# already have the repo? check out this version:$ git checkout v1.0.4-vscode
›Adds AWS Bedrock tool use support, including tools support for Claude 3.7 on Bedrock.
›Adds Gemini 2.0 Flash to the model selection GUI and to @continuedev/llm-info.
›Adds proxy tool support.
›Adds a shortcuts component for inline keyboard shortcuts in the UI.
›Adds VSCode URI query param handling.
+2 moreshow less
›Filters global Prompt Files to only show files ending with .prompt.
›Adds JetBrains cross-environment support for Continue Enterprise (CE).
Continue v1.0.3 adds session tabs, Claude 3.7 Sonnet support, and a profiles refresh button.
└──▷ GET THIS VERSION
$ git clone --branch v1.0.3-vscode https://github.com/continuedev/continue.git
# already have the repo? check out this version:$ git checkout v1.0.3-vscode
›Adds Claude 3.7 Sonnet to config_schema.json and enables tool support for Claude 3.7 in toolSupport.ts.
›Introduces a Tabs feature for managing multiple chat sessions within the extension.
›Adds a shared config toggle for session tabs, letting users control whether tabs share or isolate configuration.
›Adds a Refresh Profiles button to reload available profiles without restarting the extension.
Goose v1.0.13 adds smart-approve mode, memory condensation, PDF/Office file support, a --debug flag, and a full benchmarking framework.
└──▷ GET THIS VERSION
$ git clone --branch v1.0.13 https://github.com/block/goose.git
# already have the repo? check out this version:$ git checkout v1.0.13
└──▷ TRY IT
Capture verbose agent activity to diagnose tool call failures or unexpected model behaviour during a session.
$ goose session --debug
Run a one-shot task with full debug output to trace exactly what the agent does at each step.
$ goose run --debug--instructions 'Summarise the quarterly report' report.pdf
›Enables smart-approve mode by default, allowing the agent to automatically approve low-risk tool calls without user interruption.
›Adds memory condensation for longer-context sessions, keeping conversations coherent beyond normal context limits.
›Supports reading PDFs natively, plus .doc/.xls and simple HTML files, broadening the range of documents Goose can process.
›Adds --debug flag to goose session and goose run for verbose diagnostic output during CLI sessions.
›Implements a tool permission store for persistent tracking of approved/denied tool permissions across sessions.
+12 moreshow less
›Introduces the Goose Bench framework for functional and regression testing of agent behaviour, including parallel processing in approve mode and eval result writing to an eval directory.
›Adds an image tool to the developer MCP, enabling Goose to capture and process screenshots (including macOS screenshots).
›Adds Ctrl/Cmd + ↑/↓ keyboard shortcut to navigate message history in the CLI.
›Supports Databricks OAuth refresh tokens via the Databricks API integration.
›Adds copy message content action to the UI for quick clipboard access to any message.
›Adds mode completion (tab-complete for modes) in the CLI.
›Updates config endpoints for use with providers, improving provider configuration flexibility.
›Enables building Goose inside a Docker container for portable, reproducible deployments.
›Adds auto-including directories in binary/bench working-dir for the bench framework.
›Splits required_extensions in bench configuration into builtin and external categories for finer control.
›Adds UI setting configuration panel for managing settings directly from the desktop interface.
›Retains session state through view changes in the desktop UI.
›Adds a 'thinking' tool to the CodeAct agent, enabling explicit reasoning steps during task execution.
›Enables OpenHands to run Docker inside its own runtime, unlocking containerized workflows within the agent sandbox.
›Enables OpenHands to start a Kubernetes cluster from within its runtime, supporting cluster-level automation tasks.
+1 moreshow less
›Adds structured JSON logging via the LOG_JSON environment variable for improved observability and log ingestion.
└──▷ BREAKING ON UPGRADE
!The default Claude model is now claude-3-7-sonnet-20250219 (previously an older version), which may affect costs, behavior, or rate-limit quotas for deployments that rely on the default.
Zed v0.179.2 adds subtle Edit Prediction mode, word completions, custom Git hosting, Vim global marks, and more.
└──▷ GET THIS VERSION
$ git clone --branch v0.179.2 https://github.com/zed-industries/zed.git
# already have the repo? check out this version:$ git checkout v0.179.2
└──▷ USE IT
Enable the subtle Edit Prediction mode so AI completions stay out of the way until you need them.
json
{
"edit_predictions": {
"mode": "subtle"
}
}
Use Zed's own in-window dialogs instead of macOS system prompts for confirmations.
json
{
"use_system_prompts": false
}
›Adds "edit_predictions": { "mode": "subtle" } to settings.json to hide predicted text by default, revealing it only while holding a modifier key; also togglable via the Edit Prediction status bar menu.
›Adds editor: show word completions action for word-based completion suggestions.
›Adds git_hosting_providers setting for configuring custom Git hosting providers.
›Adds use_system_prompts setting (macOS); set to false to use Zed's in-window confirmation dialogs instead of system dialogs.
›Adds SelectRepo Git action that opens the repository selector in a modal.
+9 moreshow less
›Enables toggling Edit Prediction display modes (eager or subtle) directly from the status bar menu UI.
›Adds Vim global marks '[A-Z] with persistence across workspace sessions.
›Adds Vim sentence marks '( and ')'.
›Allows signing into Copilot from assistant settings independently of the edit_prediction_provider setting, enabling Copilot chat with a different prediction provider.
›Supports reading from anonymous file descriptors (e.g., process substitution) on macOS and Linux.
Zed v0.178.4 adds git.hunk_style staged-hunk visibility, new language servers, JSX auto-close, and Vim :reg support.
└──▷ GET THIS VERSION
$ git clone --branch v0.178.4 https://github.com/zed-industries/zed.git
# already have the repo? check out this version:$ git checkout v0.178.4
└──▷ TRY IT
Inspect all current Vim register contents mid-session without leaving the editor.
$ :reg
›Adds git.hunk_style setting to control whether staged or unstaged hunks are rendered as hollow in the gutter.
›Gutter diff hunks now visually indicate whether a hunk is staged or unstaged.
›Adds alt-shift-enter keybinding mapped to toast::RunAction to interact with buttons on status toasts.
›Adds a 'secondary' meta key to the keystroke parser, mapping to cmd on macOS and ctrl on all other platforms — enabling cross-platform keybinding definitions.
›Adds vtsls and typescript-language-server to the list of available language servers.
+12 moreshow less
›Adds support for clangd's inactiveRegions extension for C/C++ files.
›Adds Open Remote... entry to the File menu.
›Adds a Copilot sign-out button in Assistant settings.
›Adds support for the workspace/executeCommand LSP request for actions' data.
›Adds support for auto-closing of JSX tags.
›Adds Vim :reg[isters] command to display current register values.
›Adds Vim <count>% motion.
›Adds Vim ctrl-a/ctrl-x support for toggling boolean values.
›Supports opening folders in Zed from third-party macOS file managers (e.g. Path Finder, Super Charge) via their 'Open With' menu.
›User and global .npmrc configuration is now respected when running user-provided NPM binaries (also applied automatically when npm from PATH is newer than 18.0.0).
›Enables soft-wrap by default in Markdown files.
›Linux: ctrl-o (nano save) now works by default in the terminal.
└──▷ BREAKING ON UPGRADE
!The vim::Backspace and vim::Space actions are renamed to vim::WrappingLeft and vim::WrappingRight respectively. The old names remain available but are deprecated.
›Adds editor::MoveToStartOfNextExcerpt and editor::MoveToEndOfPreviousExcerpt actions for navigating between excerpts in multibuffers.
›On macOS, cmd-down and cmd-shift-down now move to the start of the next excerpt in multibuffers (and to the end of the last line in singleton buffers).
›Git on macOS now uses the system Git binary to create commits, enabling compatibility with pre-commit hooks.
└──▷ BREAKING ON UPGRADE
!On macOS, committing from Zed now requires Git to be installed on the system; the previously bundled Git binary is no longer used for commits.
›Adds toggle_on_modifiers_press keys (control, shift, alt, platform, function) inside the inlay_hints config block to show/hide inlay hints by holding modifier keys.
›Adds enabled_in_assistant setting under Edit Predictions to control whether edit predictions are active inside the AI assistant.
›Adds support for absolute globs in edit_predictions.disabled_globs for finer-grained prediction suppression.
›SSH: Adds support for specifying ssh_config files via ssh -F ssh_config in the remote connection string.
›Changes the always_show_close_button config key to show_close_button and introduces a new hidden value to permanently suppress the tab close button.
+10 moreshow less
›Adds stop_at_indent support to Editor::DeleteToBeginningOfLine for indent-aware line deletion.
›Adds the editor::OrganizeImports action (default binding alt-shift-o) to sort imports and remove unused ones via the active LSP.
›Adds Vim git keyboard shortcuts: d u/d U to stage/unstage in the project diff view, d o/d O to show/toggle staged in the editor, and d p to restore a hunk.
›Adds ability to set the default Vim mode via configuration.
›Adds copy permalink action for self-hosted GitHub Enterprise instances.
›Adds support for unfolding multibuffer excerpts when editing their contents.
›Adds clickable file paths in the Odin language diagnostic format.
›SSH: Adds support for downloading zed-remote-server via busybox wget (Alpine Linux and similar).
›Built-in Git support: view diffs, stage changes, commit, and push without leaving the editor.
›Improves performance of rendering multibuffers with very large numbers of buffers.
└──▷ BREAKING ON UPGRADE
!The always_show_close_button config key is renamed to show_close_button; existing configs using the old key must be updated.
!Several keymap actions are renamed for consistency (e.g., GoToPrevHunk → GoToPreviousHunk, TabPrev → Backtab); use 'Backup and Update' in the keymap file to migrate.
›Adds allow_rewrap setting to control editor::Rewrap behavior on a per-language basis.
›Adds on_last_window_closed setting to quit the app when the last window is closed.
›Adds stop_at_indent option for MoveToBeginningOfLine and SelectToBeginningOfLine actions.
›Adds --target-dir support for Rust tasks via the task runner.
›Supports edit_prediction_provider set to none to immediately disable Edit Predictions.
+20 moreshow less
›Adds AWS Bedrock as a provider for the Zed Assistant.
›Adds initial inline diagnostics support in the editor.
›Adds support for package-version-server discovery on $PATH for version-aware completions.
›Adds support for repositories hosted on chromium.googlesource.com for Git blames and permalinks.
›Adds ability to specify an HTTP/HTTPS proxy for Copilot.
›Adds support for tcsh/csh shells as login shell when loading environment variables.
›Adds support for doc tests in tasks for Rust.
›Adds syntax scopes to themes, enabling finer-grained token theming.
›Adds vim-exchange implementation for Vim mode, enabling text region swapping.
›Adds default key binding grr for Vim::CurrentLine in replace-with-register mode.
›Adds Emacs keybinding for alt-m (back-to-indentation).
›Adds Emacs keybindings alt-{ and alt-} for paragraph navigation.
›Adds support for the 'menu' key on Windows.
›Supports selecting the commit message text in the git commit UI.
›Launches private beta for enhanced Git integrations (invite-only via waitlist).
›Improves language server fallback handling: when the first configured server cannot handle Rename, Document Highlights, Find All References, Go to Definition, Go to Declaration, Go to Implementation, or Go to Type Definition, Zed now tries the next capable server.
›Edit Predictions no longer require a modifier key when indentation matches the surrounding block.
›Edit Predictions disable the 'This Buffer' option when predictions are turned off for that language.
›Improves project panel performance in large Git repositories.
›On Mac, cmd-up now navigates to the previous multibuffer excerpt start and cmd-down to the next multibuffer excerpt end in the default keymap.
└──▷ BREAKING ON UPGRADE
!editor::RevertSelectedHunks is renamed to git::Restore; update any custom keybindings or action references.
!editor::RevertFile is renamed to git::RestoreFile; update any custom keybindings or action references.
!editor::ExpandAllHunkDiffs is renamed to editor::ExpandAllDiffHunks; update any custom keybindings or action references.
›Adds --defaultgenamt option to control the maximum number of tokens generated by default when a third-party client (e.g. via chat completions API) does not specify a value.
›Adds --nobostoken option to prevent BOS tokens from being automatically prepended at generation start.
›Allows --quantkv (quantized KV cache) to be used together with context shift — the only remaining requirement is flash attention enabled.
›Exposes speculative decoding success rate information in the /api/extra/perf/ endpoint.
›Adds instruct preset KoboldCppAutomatic in Kobold Lite, which automatically retrieves the instruct template from KoboldCpp.
+6 moreshow less
›Integrates Gemma3 support including vision (mmproj) — load a Gemma3 GGUF alongside its mmproj file; inline images work via the Chat Completions API (e.g. in SillyTavern).
›Allows admin mode to runtime-swap between GGUF model files in addition to swapping between .kcpps configs, with automatic GPU layer selection.
›Adds support for downloading Image Generation LoRAs from URL via launch arguments.
›Embeds Image Generation parameter metadata into generated images.
›Re-enables CUDA compute capability 3.7 (K80) support.
›Adds option to save stories to Google Drive when running in Colab.
1 more release in this issue
· 2025-03-01 → 2025-03-14
›Adds --savedatafile <path> flag to enable server-sided networked save slots, allowing persistent story save/load over the network from any browser or device; combine with --password to require an API key for save/load access.
›Adds --exportconfig and --exporttemplate CLI flags to export any set of launch arguments as a .kcpps or .kcppt config file from the command line, usable for model switching in admin mode.
›Adds Top-N Sigma sampler (combinable with Top-K, Temperature, and XTC only) with UI support in Kobold Lite.
›Adds Side Panel Mode for KoboldAI Lite.
›Adds improved thinking support in Kobold Lite, including display, forced injection of <think> tokens in AI replies, and filtering of old thoughts in subsequent generations.
+3 moreshow less
›Adds customization options for assistant jailbreak prompt in Kobold Lite.
›Reworks load/save UI in Kobold Lite with 2 extra local slots and 8 extra remote save slots.
›Adds Granite model support and Vulkan/CUDA enhancements via upstream merge.
›Enables FlashInfer MLA support — fully compatible with radix cache, chunked prefill, and MTP — via --enable-flashinfer-mla.
›Integrates DeepGEMM for NVIDIA Hopper architectures, enabled by setting export SGL_ENABLE_JIT_DEEPGEMM=1.
›Adds Multi-Token Prediction (MTP) speculative decoding for DeepSeek-V3/R1 with both Triton and FlashInfer backends, compatible with radix cache and chunked prefill.
›Adds hierarchical caching support for SGLang.
›Adds SageMaker support.
+11 moreshow less
›Adds support for OpenAI API o1 model.
›Adds support for Qwen 2.5 VL (vision-language) model.
›Adds support for Qwen reward model (Qwen RM).
›Adds INT8 quantization support for DeepSeek R1 models (meituan/DeepSeek-R1-Channel-INT8 and meituan/DeepSeek-R1-Block-INT8).
Check server load statistics from the new /load endpoint to inform autoscaling decisions.
$ curl http://localhost:8000/load
›V1 engine is now enabled by default; disable with VLLM_USE_V1=0 environment variable.
›New /load API endpoint exposes load statistics from the API server.
›New /is_sleeping API endpoint for checking server sleep state.
›Enables /score endpoint for embedding models.
›Adds return_tokens_as_token_ids as a request parameter to the API server.
+33 moreshow less
›Adds enable_expert_parallel argument to enable Distributed Expert Parallelism (EP) for DeepSeek models.
›Adds --show-hidden-metrics-for-version CLI argument to expose hidden metrics.
›Adds vllm bench CLI subcommand for benchmarking.
›Adds pluggable scheduler support in the V1 engine.
›Adds SupportsV0Only protocol for model definitions to opt out of V1.
›Supports Structured Outputs in V1 engine.
›Supports LoRA in V1 engine.
›Supports ngram speculative decoding in V1 engine.
›Supports reasoning output (chain-of-thought) via the API, including streaming and outlines engine integration.
›Supports SSL Key Rotation in the HTTP server.
›Enables streaming for the Transcription API.
›Supports Image Embedding as API input.
›Makes the model parameter optional in API requests.
›Supports KV cache offloading and disaggregated prefill via LMCache connector, including chunked prefill.
›Adds FlashMLA integration for DeepSeek MLA, including V1 support and chunked prefill.
›Adds EP/TP MoE + DP Attention for DeepSeek distributed serving.
›Adds MTP support for k > n_predict in DeepSeek MTP speculative decoding.
›Adds streamK for block-quantized CUTLASS kernels (GEMM performance).
›Adds GPTQAllSpark quantization method.
›Adds Deepseek GGUF support including a MoE GGUF kernel.
›Adds support for NVIDIA Blackwell nvfp4 and fp8 CUTLASS GEMM kernels.
›Adds ModelOpt FP4 checkpoint support for Blackwell.
›Supports new models: Gemma 3, Mistral Small 3.1, Phi-4-multimodal-instruct, Grok1, QwQ-32B (with tool calling), and Zamba2.
›Adds LoRA support for TransformersModel and Gemma3ForConditionalGeneration.
›Enables prefix caching by default on TPU.
›Adds tensor parallel support via Ray on TPU.
›Adds start_profile/stop_profile support in TPU worker.
›Adds TPU multimodal model support for ragged attention.
›Adds Neuron device communicator for vLLM V1.
›Supports FP8 KV cache in the CPU backend.
›Adds CPU inference with VXE ISA for s390x architecture.
›vLLM now defaults generation_config from the model for chat template and sampling parameters such as temperature.
›Updates PyTorch to 2.6.0, CUDA default to 12.4, and Ray to 2.43.
└──▷ BREAKING ON UPGRADE
!The default value of seed is now None (previously a fixed integer); explicitly set seed for reproducibility.
!The kv_cache and attn_metadata arguments for a model's forward method have been removed; access them via forward_context on the attention backend instead.
!vLLM now defaults generation_config from the model for chat template and sampling parameters (e.g. temperature); existing overrides may behave differently.
!The metrics vllm:time_in_queue_requests, vllm:model_forward_time_milliseconds, and vllm:model_execute_time_milliseconds are deprecated and subject to removal.
›Introduces trt_op_types_to_exclude option to exclude specific ops from TensorRT assignment, giving fine-grained control over TensorRT EP graph partitioning.
›Adds preload_dlls Python API for the CUDA EP to coexist with PyTorch without DLL conflicts.
›Adds CMake option onnxruntime_BUILD_QNN_EP_STATIC_LIB for building QNN EP as a static library; QNN EP is now built as a shared library/DLL by default (use --use_qnn static_lib to retain old behavior).
›Adds CMake options onnxruntime_USE_EXTERNAL_DAWN, onnxruntime_CUSTOM_DAWN_SRC_PATH, onnxruntime_BUILD_DAWN_MONOLITHIC_LIBRARY, onnxruntime_ENABLE_PIX_FOR_WEBGPU_EP, onnxruntime_ENABLE_DAWN_BACKEND_VULKAN, and onnxruntime_ENABLE_DAWN_BACKEND_D3D12 for WebGPU EP build configuration.
›Enables onnxruntime_USE_CUDA_NHWC_OPS by default for CUDA builds.
+19 moreshow less
›Adds support for TensorRT 10.8, including default assignment of DDS ops NMS, RoiAlign, and NonZero to TensorRT.
›Adds chat mode support for CPU, GPU, and WebGPU execution.
›Adds support for decoder model pipelines.
›Adds Java API support for MultiLoRA.
›Introduces QNN shared memory support for the QNN EP.
›Adds support for QAIRT/QNN SDK 2.31 and a Python 3.13 package for QNN EP.
›Introduces OpenVINO EP Weights Sharing feature.
›Adds contrib op support in OpenVINO EP: SkipLayerNormalization, MatMulNBits, FusedGemm, FusedConv, EmbedLayerNormalization, BiasGelu, Attention, DynamicQuantizeMatMul, FusedMatMul, QuickGelu, SkipSimplifiedLayerNormalization.
›Adds support for caching generated CoreML models.
›Expands tokenizer support to include ChatGLM, Baichuan2, and Phi-4 models.
›Adds full Phi-4 pre/post-processing support for text, vision, and audio.
›Introduces RegEx pattern loading from tokenizer.json.
›Adds support for loading tokenizer data from a memory blob in the C API.
›Introduces a new tokenizer op schema to unify the tokenizer codebase.
›Adds support for WASM64 (build from source).
›Increases minimum required CMake version from 3.26 to 3.28 and adds support for CMake 4.0.
›Increases minimum required Python version from 3.8 to 3.10 for building ONNX Runtime from source.
›Removes the onnxruntime_USE_PREINSTALLED_EIGEN CMake option.
›Upgrades Gradle from 7.x to 8.x and JDK from 11 to 17 for Android builds.
└──▷ BREAKING ON UPGRADE
!Chat mode introduces breaking API changes — see the migration guide at https://onnxruntime.ai/docs/genai/howto/migrate.html.
!QNN EP is now built as a shared library/DLL by default; builds that previously relied on static linking must add --use_qnn static_lib.
!All prebuilt Windows packages now require VC++ Runtime >= 14.40 (previously 14.38); lower versions will cause a crash on initialization.
!Minimum iOS SDK requirement raised to >= 15.1.
!Minimum Android API requirement raised to >= 24 (Android 7).
!All macOS packages now require macOS >= 13.3.
!Minimum CMake version increased from 3.26 to 3.28.
!Minimum Python version for building from source increased from 3.8 to 3.10.
!The onnxruntime_USE_PREINSTALLED_EIGEN CMake option has been removed.
!TVM EP has been removed from the source tree.
!NNAPI EP is marked for deprecation following Google's deprecation of NNAPI.
Arize Phoenix v8.19.0 adds a Config tab to the tracing UI.
└──▷ GET THIS VERSION
$ git clone --branch arize-phoenix-v8.19.0 https://github.com/Arize-ai/phoenix.git
# already have the repo? check out this version:$ git checkout arize-phoenix-v8.19.0
›Adds a Config tab to the tracing UI, giving practitioners a dedicated view for tracing configuration settings.
11 more releases in this issue
· 2025-03-01 → 2025-03-25
Arize Phoenix OTel v0.9.0 adds a warning when SimpleSpanProcessor is detected.
└──▷ GET THIS VERSION
$ git clone --branch arize-phoenix-otel-v0.9.0 https://github.com/Arize-ai/phoenix.git
# already have the repo? check out this version:$ git checkout arize-phoenix-otel-v0.9.0
›Adds a runtime warning when SimpleSpanProcessor is used, alerting practitioners to the performance implications of synchronous span export.
Arize Phoenix 8.17.0 adds an environment variable to auto-provision admin users at startup.
└──▷ GET THIS VERSION
$ git clone --branch arize-phoenix-v8.17.0 https://github.com/Arize-ai/phoenix.git
# already have the repo? check out this version:$ git checkout arize-phoenix-v8.17.0
›Adds an environment variable to automatically insert admin users when the Phoenix server starts, enabling headless/automated deployment without manual user setup.
Phoenix 8.16.0 adds experiment deletion from the action menu and date format explanations in the UI.
└──▷ GET THIS VERSION
$ git clone --branch arize-phoenix-v8.16.0 https://github.com/Arize-ai/phoenix.git
# already have the repo? check out this version:$ git checkout arize-phoenix-v8.16.0
›Adds a 'Delete Experiment' option to the experiment action menu in the UI.
›Shows the expected date format as an explanation in date input fields in the UI.
Phoenix 8.14.0 adds resizable Span/Trace/Session tables and a tabbed Settings page.
└──▷ GET THIS VERSION
$ git clone --branch arize-phoenix-v8.14.0 https://github.com/Arize-ai/phoenix.git
# already have the repo? check out this version:$ git checkout arize-phoenix-v8.14.0
›Splits the Settings page into tabs for easier navigation.
›Adds column-resize capability to the Span, Trace, and Session tables in the UI.
Phoenix v8.13.0 adds CSV export for experiment runs and annotations, and makes the spans table the default tab.
└──▷ GET THIS VERSION
$ git clone --branch arize-phoenix-v8.13.0 https://github.com/Arize-ai/phoenix.git
# already have the repo? check out this version:$ git checkout arize-phoenix-v8.13.0
›Download experiment runs and annotations as CSV from the UI.
›Makes the spans table the default tab for faster trace navigation.
Arize Phoenix 8.12.0 adds a high-contrast UI mode.
└──▷ GET THIS VERSION
$ git clone --branch arize-phoenix-v8.12.0 https://github.com/Arize-ai/phoenix.git
# already have the repo? check out this version:$ git checkout arize-phoenix-v8.12.0
›Adds a high-contrast UI mode for improved accessibility and readability.
Arize Phoenix client v1.1.0 adds Anthropic thinking config parameter support to the Python client.
└──▷ GET THIS VERSION
$ git clone --branch arize-phoenix-client-v1.1.0 https://github.com/Arize-ai/phoenix.git
# already have the repo? check out this version:$ git checkout arize-phoenix-client-v1.1.0
›Adds thinking config parameter for Anthropic models to the Python client, enabling extended thinking support in Phoenix-instrumented calls.
Phoenix 8.11.0 adds a specialized UI for the thinking budget parameter and migrates the slider to react-aria.
└──▷ GET THIS VERSION
$ git clone --branch arize-phoenix-v8.11.0 https://github.com/Arize-ai/phoenix.git
# already have the repo? check out this version:$ git checkout arize-phoenix-v8.11.0
›Adds specialized UI for the thinking budget parameter, giving practitioners a dedicated control surface when configuring model reasoning limits.
›Ports the slider component to react-aria, improving accessibility and interaction consistency across parameter controls.
Arize Phoenix 8.10.0 adds DB usage visibility in the admin panel and bulk trace deletion from the UI.
└──▷ GET THIS VERSION
$ git clone --branch arize-phoenix-v8.10.0 https://github.com/Arize-ai/phoenix.git
# already have the repo? check out this version:$ git checkout arize-phoenix-v8.10.0
›Admin panel now shows percent of database storage used, giving operators visibility into DB capacity.
›Enables deletion of selected traces in bulk from the traces UI.
Phoenix 8.9.0 adds Anthropic thinking config and budget params, a DB storage env var, and experiment JSON downloads.
└──▷ GET THIS VERSION
$ git clone --branch arize-phoenix-v8.9.0 https://github.com/Arize-ai/phoenix.git
# already have the repo? check out this version:$ git checkout arize-phoenix-v8.9.0
└──▷ TRY IT
Cap Phoenix database storage at a fixed size when running in a memory-constrained environment.
Arize Phoenix 8.8.0 adds quick filtering from metadata cells in the trace table.
└──▷ GET THIS VERSION
$ git clone --branch arize-phoenix-v8.8.0 https://github.com/Arize-ai/phoenix.git
# already have the repo? check out this version:$ git checkout arize-phoenix-v8.8.0
›Adds quick filtering support for metadata cells in the trace table, letting users instantly filter traces by clicking metadata values.
Langfuse v3.41.0 adds prompt composability and extracts logfire.msg as span and trace names.
└──▷ GET THIS VERSION
$ git clone --branch v3.41.0 https://github.com/langfuse/langfuse.git
# already have the repo? check out this version:$ git checkout v3.41.0
›Extracts logfire.msg as the span and trace name when ingesting Logfire telemetry.
›Adds prompt composability, enabling prompts to be built from reusable component prompts.
└──▷ BREAKING ON UPGRADE
!Batch exports rename the table column/entity from 'generation' to 'observation' following generalization of the exports table — any downstream automation referencing 'generation' in batch export output may need updating.
›Adds S3_CONCURRENT_READS and S3_CONCURRENT_WRITES environment variables to tune S3 parallelism for self-hosted instances.
›Adds AUTH_WORKOS_ORGANIZATION_ID and AUTH_WORKOS_CONNECTION_ID environment variables to configure WorkOS SSO at the organization and connection level.
LanceDB v0.19.0-beta.0 adds analyze_plan API and changes default read_consistency_interval to 5 seconds.
└──▷ GET THIS VERSION
$ git clone --branch v0.19.0-beta.0 https://github.com/lancedb/lancedb.git
# already have the repo? check out this version:$ git checkout v0.19.0-beta.0
›Adds analyze_plan API for query plan analysis.
›Changes default read_consistency_interval from its previous value to 5s.
└──▷ BREAKING ON UPGRADE
!The default read_consistency_interval is now 5s; any setup relying on the previous default will now read with a 5-second consistency window instead.
12 more releases in this issue
· 2025-03-06 → 2025-03-30
LanceDB python-v0.22.0-beta.0 adds analyze_plan API and changes default read_consistency_interval to 5 seconds.
└──▷ GET THIS VERSION
$ git clone --branch python-v0.22.0-beta.0 https://github.com/lancedb/lancedb.git
# already have the repo? check out this version:$ git checkout python-v0.22.0-beta.0
›Adds analyze_plan API for query plan analysis.
›Changes default read_consistency_interval to 5s (previously unset/0), enabling automatic consistency checks for remote tables by default.
└──▷ BREAKING ON UPGRADE
!The default read_consistency_interval is changed to 5s; remote table reads that previously returned immediately without a consistency check will now incur a consistency poll on every read unless explicitly overridden.
LanceDB python-v0.21.3-beta.0 adds explain-plan and restore remote APIs plus PyArrow schema column support.
└──▷ GET THIS VERSION
$ git clone --branch python-v0.21.3-beta.0 https://github.com/lancedb/lancedb.git
# already have the repo? check out this version:$ git checkout python-v0.21.3-beta.0
›Adds an explain plan remote API for inspecting query execution plans on remote tables.
›Adds a restore remote API for reverting remote tables to a previous state.
›Supports adding columns to a table using a PyArrow schema definition.
LanceDB v0.18.3-beta.0 adds explain-plan and restore remote APIs plus PyArrow schema support for adding columns.
└──▷ GET THIS VERSION
$ git clone --branch v0.18.3-beta.0 https://github.com/lancedb/lancedb.git
# already have the repo? check out this version:$ git checkout v0.18.3-beta.0
›Adds a remote API for explain plan, enabling inspection of query execution plans against remote LanceDB tables.
›Adds a remote API for restore, enabling programmatic rollback of remote LanceDB tables to previous versions.
›Supports adding columns to a table using a PyArrow schema definition.
LanceDB v0.21.2 adds catalog URL connections, binary vector support in TypeScript, and fork warnings for Python.
└──▷ GET THIS VERSION
$ git clone --branch python-v0.21.2 https://github.com/lancedb/lancedb.git
# already have the repo? check out this version:$ git checkout python-v0.21.2
›Adds connect_catalog method (Rust) to connect to a catalog via URL.
›Adds alterColumns() support in Node.js for parsing Arrow types directly.
›Adds to_query_object method to convert query state to a serializable object.
›Adds get_dataset method on NativeTable to retrieve the underlying Lance dataset.
›Supports binary vector type and IVF_FLAT index in the TypeScript client.
+1 moreshow less
›Warns when a Python process forks while a LanceDB connection is open, preventing silent data corruption.
LanceDB v0.18.2-beta.1 adds a fork-safety warning for Python users.
└──▷ GET THIS VERSION
$ git clone --branch v0.18.2-beta.1 https://github.com/lancedb/lancedb.git
# already have the repo? check out this version:$ git checkout v0.18.2-beta.1
›Adds a warning when the LanceDB Python client detects a forked process, helping practitioners avoid data-corruption or connection issues in multiprocessing workloads.
LanceDB Python v0.21.2-beta.1 adds a fork-safety warning to catch multiprocessing pitfalls early.
└──▷ GET THIS VERSION
$ git clone --branch python-v0.21.2-beta.1 https://github.com/lancedb/lancedb.git
# already have the repo? check out this version:$ git checkout python-v0.21.2-beta.1
›Adds a warning when the LanceDB Python client detects it is running in a forked process, helping surface multiprocessing safety issues at runtime.
LanceDB python-v0.21.2-beta.0 adds catalog URL connections, binary vector support in TypeScript, and a new to_query_object method.
└──▷ GET THIS VERSION
$ git clone --branch python-v0.21.2-beta.0 https://github.com/lancedb/lancedb.git
# already have the repo? check out this version:$ git checkout python-v0.21.2-beta.0
›Adds connect_catalog method to connect to a catalog via URL (Rust backend).
›Adds to_query_object method to convert queries to a serializable object representation.
›Adds get_dataset method on NativeTable to retrieve the underlying dataset directly.
›Supports parsing Arrow types in alterColumns() for the Node.js client.
›Supports binary vector type and IVF_FLAT index in the TypeScript client.
LanceDB v0.18.2-beta.0 adds catalog URL connections, binary vector + IVF_FLAT in TypeScript, and new query/dataset methods.
└──▷ GET THIS VERSION
$ git clone --branch v0.18.2-beta.0 https://github.com/lancedb/lancedb.git
# already have the repo? check out this version:$ git checkout v0.18.2-beta.0
›Adds connect_catalog method in Rust to connect to a catalog via URL.
›Adds alterColumns() in Node.js now parses Arrow types directly, enabling schema alterations with Arrow type objects.
›Adds get_dataset method on NativeTable to retrieve the underlying dataset.
›Adds to_query_object method for converting queries to a serializable object representation.
›Supports binary vector indexing and IVF_FLAT index type in the TypeScript client.
+1 moreshow less
›Upgrades bundled Lance to v0.25.0-beta.5, bringing upstream engine improvements.
LanceDB python-v0.21.0 adds streaming create_table input, field metadata editing, and makes pylance an optional dependency.
└──▷ GET THIS VERSION
$ git clone --branch python-v0.21.0 https://github.com/lancedb/lancedb.git
# already have the repo? check out this version:$ git checkout python-v0.21.0
└──▷ USE IT
Ingest a large generator of record batches into a new table without loading everything into memory first.
python
import lancedb
import pyarrow as pa
def batch_generator():
for i in range(10):
yield pa.record_batch({"vec": [[float(i)] * 128], "id": [i]},
schema=pa.schema([pa.field("vec", pa.list_(pa.float32(), 128)),
pa.field("id", pa.int64())]))
db = lancedb.connect("./mydb")
table = db.create_table("embeddings", data=batch_generator())
›Adds support for modifying field metadata in the Python API via feat: support modifying field metadata in lancedb python.
›Adds streaming input support to create_table, enabling large or lazy iterables to be ingested without materializing them first.
›Drops the hard dependency on pylance; it is now optional, reducing mandatory install footprint.
›Reverts query scan limit to unbounded by default — scans no longer apply an implicit row limit.
›Records the server version for remote table connections, surfacing version metadata for LanceDB Cloud clients.
+1 moreshow less
›Respects DataFusion's configured batch size when LanceDB runs as a DataFusion table provider.
└──▷ BREAKING ON UPGRADE
!Query scans are now unbounded by default (no implicit row limit); any code that relied on the previous default limit to cap result size will now return all matching rows.
›Introduces Catalog trait and ListingCatalog implementation in the Rust crate, providing a structured abstraction for catalog operations.
›Adds support for modifying field metadata on existing tables in the Python API.
›Adds streaming input support to create_table, enabling table creation from streaming data sources without buffering the full dataset.
›Drops the hard dependency on pylance in the Python package, making it an optional dependency.
›Respects DataFusion's batch size configuration when LanceDB runs as a DataFusion table provider.
+2 moreshow less
›Records the server version for remote tables, surfacing version metadata for remote connections.
›Reverts query limit to be unbounded for scans, removing the previously imposed default row limit on full-table scans.
└──▷ BREAKING ON UPGRADE
!Query limit is now unbounded for scans by default — full-table scans that previously returned a capped number of rows will now return all rows, which may significantly increase memory usage and query time for callers that relied on the implicit limit.
LanceDB python-v0.21.0-beta.1 drops the hard pylance dependency and adds field-metadata modification support.
└──▷ GET THIS VERSION
$ git clone --branch python-v0.21.0-beta.1 https://github.com/lancedb/lancedb.git
# already have the repo? check out this version:$ git checkout python-v0.21.0-beta.1
›Drops the hard dependency on pylance, making the Python package installable without it.
›Records the server version for remote table connections, enabling version-aware client behaviour.
›Introduces a Catalog trait in the Rust layer with a ListingCatalog implementation, laying groundwork for multi-catalog support.
Milvus 2.5.7 introduces JSON Path Index for inverted indexes on dynamic and JSON columns to boost query performance.
└──▷ GET THIS VERSION
$ git clone --branch v2.5.7 https://github.com/milvus-io/milvus.git
# already have the repo? check out this version:$ git checkout v2.5.7
›Adds JSON Path Index, enabling inverted indexes on dynamic columns and specific JSON paths to bypass slower JSON load processes and significantly improve query performance.
›Adds more config options for interimindex to support refined modes.
›Makes segment prune config refreshable at runtime.
›Supports retrieving segment binlogs via the new GetSegmentsInfo interface.
›Adds a channel seal policy based on blocking L0.
+3 moreshow less
›Improves import error messages for better usability.
›Reorders sub-expressions for conjunct expressions to improve query execution.
›Removes unnecessary collection and partition labels from metrics to reduce cardinality.
Qdrant v1.13.6 cuts query API network overhead and speeds up resharding transfers on constrained hardware.
└──▷ GET THIS VERSION
$ git clone --branch v1.13.6 https://github.com/qdrant/qdrant.git
# already have the repo? check out this version:$ git checkout v1.13.6
›Query API now reads vectors and payloads once at the shard level instead of per-segment, meaningfully improving search performance on collections with many segments.
›Query API defers vector and payload reads so large data is no longer sent over the internal network during distributed queries, reducing latency in multi-node deployments.
›Resharding transfers now complete faster under slow-disk or high-memory-pressure conditions.
1 more release in this issue
· 2025-03-21 → 2025-03-31