pypi / agentscope
agentscope
What changed in agentscope 2, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-25.
7 breaking3 security31 new APIs and options14 behavior and defaults79 fixes and other
See which of these apply to your code, ranked, in your agent:
npx @unstale/cli initagentscope 2134 changes
Breaking changes 7
The agent's text-mode settings are grouped under chat_config.
DashScope synthesis errors are propagated to callers.
A zero cache file limit is enforced.
TTSModelBase is made a real abstract base class.
Tightens shell command checks so destructive git, sed, and tee usages no longer bypass permission confirmation.
Gemini output_tokens no longer include tool-execution tokens.
Distance scores are normalized so higher scores mean more relevant results.
Security 3
Symlinks are resolved before the dangerous-path check.
Prevents git subcommands with destructive arguments from passing the read-only fast path.
Checks every sed expression against the denylist, including expressions with inline long-option values and attached short-option values.
New APIs and options 31
A DashScope voice can be supplied per call.
OpenAI Decisions API support is added to the classifier.
Realtime support is added for Qwen3.8 Omni.
The owned streamable-HTTP client is built through the SDK factory.
Adds the classifier module that supports Jev-based chat model routing.
Adds experimental standard operating procedures that split tasks into ordered milestones, verify each before proceeding, and support persisted, resumable run state.
Introduces a full-screen terminal interface for chatting with agents and running realtime voice sessions.
Adds an external tool that lets agents ask users multiple-choice questions.
Agents using DingTalk channels can search DingTalk knowledge bases.
Adds support for the Gemini Live API model in the realtime voice agent.
Adds an entry point for running realtime voice sessions in the terminal UI.
Adds MiniMax chat model support, with M3 as the default model.
Adds MiniMax chat model support, with M3 as the default.
Adds MiniMax chat model support, with M3 as the default.
Adds model cards for the latest models.
Adds middleware that selects the chat model for each reply, backed by the classifier module and Jev support.
Adds Ollama model cards for qwen3-7b, llama3.2, and phi4-mini.
Adds support for the OpenAI Realtime API model in the realtime voice agent.
Adds service endpoints to store procedures, start runs, and review steps by hand.
Adds leader-member task delegation: member agents run concurrently and return their results to the leader.
Adds leader-member delegation through a TeamPipeline class.
Adds support for xAI Grok Voice in the realtime voice agent.
Adds A2AAgent to the agent module for agent-to-agent communication.
Adds a context compression tool that lets agents manage their own context window.
Channel credentials can now be bound interactively.
A new pipeline module provides GoalPipeline for goal-driven agent workflows.
Adds LLM-based reranking support to improve RAG retrieval quality.
Supports runtime MCP headers in Docker workspaces.
The Web UI adds a query cache.
Introduces a realtime voice agent with DashScope backends and local transport support.
Adds support for the Volcengine Ark chat model.
Behavior and default changes 14
DashScope audio transcripts are emitted as text.
A copy of usage appended to a message is retained.
Chat spans report the MiniMax provider name.
Default Read input media types are isolated.
The owner is notified after schedules are deleted.
A schedule's default start time is anchored to an absolute instant.
Tool-result media is promoted in the xai chat formatter.
Agent invites now support cross-owner invitations.
Agents generate a final text summary after reaching the maximum number of iterations.
The formatter uses native multimodal tool outputs.
xAI output usage now includes reasoning tokens.
The Web UI now automatically names sessions.
Tool arguments now receive schema-guided repair.
Agents receive a hint after repeated tool errors.
Fixes and other changes 79
The usage time is refreshed during Anthropic streaming.
Streaming Anthropic tool calls without arguments are emitted with an empty object.
TTS audio is labeled with the effective response format.
A rejected chat run coroutine is closed.
CosyVoice callback errors are propagated.
The formatter validates its input.
Completed tool-call names are released.
Deferred function results are awaited.
Failed Docker initialization is cleaned up.
Document content types are normalized before parser lookup.
Edit rejects empty replacement targets.
RAG closes the latest Elasticsearch point-in-time handle.
RAG parsing preserves duplicate and blank Excel headers.
ExcelParser preserves native Excel error cells.
extra_body is copied before defaulting thinking.type.
Nullable Gemini cache token usage is normalized.
Caller-provided Gemini configuration is honored.
Option-like glob argument values are preserved.
Glob patterns containing current-directory segments are handled.
Dash-prefixed grep paths are treated as operands.
Injected state is omitted from inferred function schemas.
Local symbolic links are unlinked without following their targets.
RAG resolves LOG_LEVEL before configuring the worker.
The app rejects MCP names that the library cannot load back.
Cached prompt tokens are read from prompt_tokens_details.
Empty thinking blocks are skipped.
A no-argument tool call runs with an empty argument payload.
Non-streaming chat audio is wrapped in a valid WAV header.
Each Ollama tool call receives its own id.
OpenAI Responses refusal text is preserved.
Streaming OpenAI Responses tool calls without arguments are emitted with an empty object.
Embedding tolerates missing OpenAI usage information.
An unset exit code is reported as a failure.
Deferred PDF read errors are normalized.
RAG normalizes soft line breaks in PowerPoint text frames.
Deferred PPTX XML errors are normalized.
Redis subscription cleanup is protected from cancellation.
Responses API stream errors are propagated.
Responses reasoning text is preserved.
A separated dotted sed backup suffix is treated as a suffix.
Case-insensitive skill directory collisions are resolved.
The hub parses BOM-prefixed skill frontmatter.
Skill files are read as utf-8-sig so a BOM does not prevent front matter from being read.
A step that marks its own run failed is honored.
TTS respects speech instructions supplied on an individual call.
Middleware does not block structured output when the budget is spent.
Sibling members are joined after a failed round.
Moonshot tool-sequence formatting uses the dedicated formatter.
RAG extracts images embedded in Word table cells.
RAG parsing preserves omitted Word table columns.
Workspace skill deletion is idempotent.
The backend creates Write's parent directories.
Preserves Anthropic streaming content blocks.
Drops empty and whitespace-only chunks.
Validates AskUser question constraints.
Passes a model card's context_size to the chat model.
Exposes the multimodal capability of DashScope embeddings.
Preserves text and NA-like values in Excel parsing.
Bounds the output returned by the glob search tool.
Sorts ripgrep output by path so Grep pagination is stable.
Enables image and video input for Kimi K2.7 Code models.
Supports float metadata filters in Qdrant.
Refreshes the read cache after Edit and Write operations.
Requests a response after a caller-committed turn.
Reports tool call arguments in the realtime event stream.
Preserves property names and instance values when schemas are flattened.
Normalizes weekday numbering to the standard cron convention.
Includes paths in tool validation errors to identify where validation failed.
Copies the tool lists passed when constructing a ToolGroup.
Normalizes errors produced by Word and Excel parsers.
The formatter derives audio format from media type.
Cron is validated before persistence.
The Web UI follows system dark mode so sidebar buttons stay visible.
Enter no longer sends a message while a reply is in progress.
Excel Markdown table cells are escaped.
Cancelled MCP connections are now cleaned up.
Encrypted reasoning items are preserved in OpenAI Responses history.
The read cache is backend-aware so Read followed by Edit works in workspaces.
WordParser preserves blank lines between paragraphs.