# What changed in agentscope

> 134 changes in agentscope 2 from its official release notes, upgrade guides and advisories: 7 breaking, 3 security, 31 new APIs and options. Each one cited. Sources checked 2026-10-25. HTML: https://unstale.sh/pypi/agentscope/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## agentscope 2

### Breaking changes

- The agent's text-mode settings are grouped under chat_config. (2.0.10) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.10)
- DashScope synthesis errors are propagated to callers. (2.0.10) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.10)
- A zero cache file limit is enforced. (2.0.10) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.10)
- TTSModelBase is made a real abstract base class. (2.0.10) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.10)
- Tightens shell command checks so destructive git, sed, and tee usages no longer bypass permission confirmation. (2.0.9) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.9)
- Gemini output_tokens no longer include tool-execution tokens. (2.0.8) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.8)
- Distance scores are normalized so higher scores mean more relevant results. (2.0.8) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.8)

### Security

- Symlinks are resolved before the dangerous-path check. (2.0.10) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.10)
- Prevents git subcommands with destructive arguments from passing the read-only fast path. (2.0.9) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.9)
- Checks every sed expression against the denylist, including expressions with inline long-option values and attached short-option values. (2.0.9) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.9)

### New APIs and options

- A DashScope voice can be supplied per call. (2.0.10) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.10)
- OpenAI Decisions API support is added to the classifier. (2.0.10) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.10)
- Realtime support is added for Qwen3.8 Omni. (2.0.10) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.10)
- The owned streamable-HTTP client is built through the SDK factory. (2.0.10) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.10)
- Adds the classifier module that supports Jev-based chat model routing. (2.0.9) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.9)
- Adds experimental standard operating procedures that split tasks into ordered milestones, verify each before proceeding, and support persisted, resumable run state. (2.0.9) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.9)
- Introduces a full-screen terminal interface for chatting with agents and running realtime voice sessions. (2.0.9) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.9)
- Adds an external tool that lets agents ask users multiple-choice questions. (2.0.9) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.9)
- Agents using DingTalk channels can search DingTalk knowledge bases. (2.0.9) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.9)
- Adds support for the Gemini Live API model in the realtime voice agent. (2.0.9) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.9)
- Adds an entry point for running realtime voice sessions in the terminal UI. (2.0.9) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.9)
- Adds MiniMax chat model support, with M3 as the default model. (2.0.9) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.9)
- Adds MiniMax chat model support, with M3 as the default. (2.0.9) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.9)
- Adds MiniMax chat model support, with M3 as the default. (2.0.9) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.9)
- Adds model cards for the latest models. (2.0.9) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.9)
- Adds middleware that selects the chat model for each reply, backed by the classifier module and Jev support. (2.0.9) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.9)
- Adds Ollama model cards for qwen3-7b, llama3.2, and phi4-mini. (2.0.9) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.9)
- Adds support for the OpenAI Realtime API model in the realtime voice agent. (2.0.9) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.9)
- Adds service endpoints to store procedures, start runs, and review steps by hand. (2.0.9) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.9)
- Adds leader-member task delegation: member agents run concurrently and return their results to the leader. (2.0.9) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.9)
- Adds leader-member delegation through a TeamPipeline class. (2.0.9) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.9)
- Adds support for xAI Grok Voice in the realtime voice agent. (2.0.9) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.9)
- Adds A2AAgent to the agent module for agent-to-agent communication. (2.0.8) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.8)
- Adds a context compression tool that lets agents manage their own context window. (2.0.8) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.8)
- Channel credentials can now be bound interactively. (2.0.8) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.8)
- A new pipeline module provides GoalPipeline for goal-driven agent workflows. (2.0.8) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.8)
- Adds LLM-based reranking support to improve RAG retrieval quality. (2.0.8) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.8)
- Supports runtime MCP headers in Docker workspaces. (2.0.8) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.8)
- The Web UI adds a query cache. (2.0.8) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.8)
- Introduces a realtime voice agent with DashScope backends and local transport support. (2.0.8) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.8)
- Adds support for the Volcengine Ark chat model. (2.0.8) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.8)

### Behavior and default changes

- DashScope audio transcripts are emitted as text. (2.0.10) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.10)
- A copy of usage appended to a message is retained. (2.0.10) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.10)
- Chat spans report the MiniMax provider name. (2.0.10) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.10)
- Default Read input media types are isolated. (2.0.10) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.10)
- The owner is notified after schedules are deleted. (2.0.10) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.10)
- A schedule's default start time is anchored to an absolute instant. (2.0.10) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.10)
- Tool-result media is promoted in the xai chat formatter. (2.0.10) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.10)
- Agent invites now support cross-owner invitations. (2.0.8) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.8)
- Agents generate a final text summary after reaching the maximum number of iterations. (2.0.8) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.8)
- The formatter uses native multimodal tool outputs. (2.0.8) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.8)
- xAI output usage now includes reasoning tokens. (2.0.8) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.8)
- The Web UI now automatically names sessions. (2.0.8) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.8)
- Tool arguments now receive schema-guided repair. (2.0.8) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.8)
- Agents receive a hint after repeated tool errors. (2.0.8) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.8)

### Fixes and other changes

- The usage time is refreshed during Anthropic streaming. (2.0.10) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.10)
- Streaming Anthropic tool calls without arguments are emitted with an empty object. (2.0.10) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.10)
- TTS audio is labeled with the effective response format. (2.0.10) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.10)
- A rejected chat run coroutine is closed. (2.0.10) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.10)
- CosyVoice callback errors are propagated. (2.0.10) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.10)
- The formatter validates its input. (2.0.10) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.10)
- Completed tool-call names are released. (2.0.10) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.10)
- Deferred function results are awaited. (2.0.10) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.10)
- Failed Docker initialization is cleaned up. (2.0.10) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.10)
- Document content types are normalized before parser lookup. (2.0.10) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.10)
- Edit rejects empty replacement targets. (2.0.10) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.10)
- RAG closes the latest Elasticsearch point-in-time handle. (2.0.10) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.10)
- RAG parsing preserves duplicate and blank Excel headers. (2.0.10) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.10)
- ExcelParser preserves native Excel error cells. (2.0.10) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.10)
- extra_body is copied before defaulting thinking.type. (2.0.10) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.10)
- Nullable Gemini cache token usage is normalized. (2.0.10) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.10)
- Caller-provided Gemini configuration is honored. (2.0.10) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.10)
- Option-like glob argument values are preserved. (2.0.10) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.10)
- Glob patterns containing current-directory segments are handled. (2.0.10) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.10)
- Dash-prefixed grep paths are treated as operands. (2.0.10) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.10)
- Injected state is omitted from inferred function schemas. (2.0.10) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.10)
- Local symbolic links are unlinked without following their targets. (2.0.10) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.10)
- RAG resolves LOG_LEVEL before configuring the worker. (2.0.10) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.10)
- The app rejects MCP names that the library cannot load back. (2.0.10) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.10)
- Cached prompt tokens are read from prompt_tokens_details. (2.0.10) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.10)
- Empty thinking blocks are skipped. (2.0.10) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.10)
- A no-argument tool call runs with an empty argument payload. (2.0.10) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.10)
- Non-streaming chat audio is wrapped in a valid WAV header. (2.0.10) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.10)
- Each Ollama tool call receives its own id. (2.0.10) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.10)
- OpenAI Responses refusal text is preserved. (2.0.10) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.10)
- Streaming OpenAI Responses tool calls without arguments are emitted with an empty object. (2.0.10) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.10)
- Embedding tolerates missing OpenAI usage information. (2.0.10) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.10)
- An unset exit code is reported as a failure. (2.0.10) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.10)
- Deferred PDF read errors are normalized. (2.0.10) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.10)
- RAG normalizes soft line breaks in PowerPoint text frames. (2.0.10) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.10)
- Deferred PPTX XML errors are normalized. (2.0.10) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.10)
- Redis subscription cleanup is protected from cancellation. (2.0.10) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.10)
- Responses API stream errors are propagated. (2.0.10) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.10)
- Responses reasoning text is preserved. (2.0.10) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.10)
- A separated dotted sed backup suffix is treated as a suffix. (2.0.10) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.10)
- Case-insensitive skill directory collisions are resolved. (2.0.10) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.10)
- The hub parses BOM-prefixed skill frontmatter. (2.0.10) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.10)
- Skill files are read as utf-8-sig so a BOM does not prevent front matter from being read. (2.0.10) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.10)
- A step that marks its own run failed is honored. (2.0.10) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.10)
- TTS respects speech instructions supplied on an individual call. (2.0.10) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.10)
- Middleware does not block structured output when the budget is spent. (2.0.10) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.10)
- Sibling members are joined after a failed round. (2.0.10) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.10)
- Moonshot tool-sequence formatting uses the dedicated formatter. (2.0.10) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.10)
- RAG extracts images embedded in Word table cells. (2.0.10) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.10)
- RAG parsing preserves omitted Word table columns. (2.0.10) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.10)
- Workspace skill deletion is idempotent. (2.0.10) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.10)
- The backend creates Write's parent directories. (2.0.10) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.10)
- Preserves Anthropic streaming content blocks. (2.0.9) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.9)
- Drops empty and whitespace-only chunks. (2.0.9) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.9)
- Validates AskUser question constraints. (2.0.9) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.9)
- Passes a model card's context_size to the chat model. (2.0.9) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.9)
- Exposes the multimodal capability of DashScope embeddings. (2.0.9) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.9)
- Preserves text and NA-like values in Excel parsing. (2.0.9) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.9)
- Bounds the output returned by the glob search tool. (2.0.9) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.9)
- Sorts ripgrep output by path so Grep pagination is stable. (2.0.9) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.9)
- Enables image and video input for Kimi K2.7 Code models. (2.0.9) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.9)
- Supports float metadata filters in Qdrant. (2.0.9) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.9)
- Refreshes the read cache after Edit and Write operations. (2.0.9) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.9)
- Requests a response after a caller-committed turn. (2.0.9) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.9)
- Reports tool call arguments in the realtime event stream. (2.0.9) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.9)
- Preserves property names and instance values when schemas are flattened. (2.0.9) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.9)
- Normalizes weekday numbering to the standard cron convention. (2.0.9) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.9)
- Includes paths in tool validation errors to identify where validation failed. (2.0.9) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.9)
- Copies the tool lists passed when constructing a ToolGroup. (2.0.9) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.9)
- Normalizes errors produced by Word and Excel parsers. (2.0.9) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.9)
- The formatter derives audio format from media type. (2.0.8) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.8)
- Cron is validated before persistence. (2.0.8) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.8)
- The Web UI follows system dark mode so sidebar buttons stay visible. (2.0.8) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.8)
- Enter no longer sends a message while a reply is in progress. (2.0.8) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.8)
- Excel Markdown table cells are escaped. (2.0.8) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.8)
- Cancelled MCP connections are now cleaned up. (2.0.8) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.8)
- Encrypted reasoning items are preserved in OpenAI Responses history. (2.0.8) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.8)
- The read cache is backend-aware so Read followed by Edit works in workspaces. (2.0.8) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.8)
- WordParser preserves blank lines between paragraphs. (2.0.8) — [release notes](https://github.com/agentscope-ai/agentscope/releases/tag/v2.0.8)
