unstale

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 init

@unstale/cli 0.2.6 on npm

agentscope 2134 changes

Breaking changes 7

  • The agent's text-mode settings are grouped under chat_config.

    2.0.10release notes

  • DashScope synthesis errors are propagated to callers.

    2.0.10release notes

  • A zero cache file limit is enforced.

    2.0.10release notes

  • TTSModelBase is made a real abstract base class.

    2.0.10release notes

  • Tightens shell command checks so destructive git, sed, and tee usages no longer bypass permission confirmation.

    2.0.9release notes

  • Gemini output_tokens no longer include tool-execution tokens.

    2.0.8release notes

  • Distance scores are normalized so higher scores mean more relevant results.

    2.0.8release notes

Security 3

  • Symlinks are resolved before the dangerous-path check.

    2.0.10release notes

  • Prevents git subcommands with destructive arguments from passing the read-only fast path.

    2.0.9release notes

  • Checks every sed expression against the denylist, including expressions with inline long-option values and attached short-option values.

    2.0.9release notes

New APIs and options 31

  • A DashScope voice can be supplied per call.

    2.0.10release notes

  • OpenAI Decisions API support is added to the classifier.

    2.0.10release notes

  • Realtime support is added for Qwen3.8 Omni.

    2.0.10release notes

  • The owned streamable-HTTP client is built through the SDK factory.

    2.0.10release notes

  • Adds the classifier module that supports Jev-based chat model routing.

    2.0.9release notes

  • Adds experimental standard operating procedures that split tasks into ordered milestones, verify each before proceeding, and support persisted, resumable run state.

    2.0.9release notes

  • Introduces a full-screen terminal interface for chatting with agents and running realtime voice sessions.

    2.0.9release notes

  • Adds an external tool that lets agents ask users multiple-choice questions.

    2.0.9release notes

  • Agents using DingTalk channels can search DingTalk knowledge bases.

    2.0.9release notes

  • Adds support for the Gemini Live API model in the realtime voice agent.

    2.0.9release notes

  • Adds an entry point for running realtime voice sessions in the terminal UI.

    2.0.9release notes

  • Adds MiniMax chat model support, with M3 as the default model.

    2.0.9release notes

  • Adds MiniMax chat model support, with M3 as the default.

    2.0.9release notes

  • Adds MiniMax chat model support, with M3 as the default.

    2.0.9release notes

  • Adds model cards for the latest models.

    2.0.9release notes

  • Adds middleware that selects the chat model for each reply, backed by the classifier module and Jev support.

    2.0.9release notes

  • Adds Ollama model cards for qwen3-7b, llama3.2, and phi4-mini.

    2.0.9release notes

  • Adds support for the OpenAI Realtime API model in the realtime voice agent.

    2.0.9release notes

  • Adds service endpoints to store procedures, start runs, and review steps by hand.

    2.0.9release notes

  • Adds leader-member task delegation: member agents run concurrently and return their results to the leader.

    2.0.9release notes

  • Adds leader-member delegation through a TeamPipeline class.

    2.0.9release notes

  • Adds support for xAI Grok Voice in the realtime voice agent.

    2.0.9release notes

  • Adds A2AAgent to the agent module for agent-to-agent communication.

    2.0.8release notes

  • Adds a context compression tool that lets agents manage their own context window.

    2.0.8release notes

  • Channel credentials can now be bound interactively.

    2.0.8release notes

  • A new pipeline module provides GoalPipeline for goal-driven agent workflows.

    2.0.8release notes

  • Adds LLM-based reranking support to improve RAG retrieval quality.

    2.0.8release notes

  • Supports runtime MCP headers in Docker workspaces.

    2.0.8release notes

  • The Web UI adds a query cache.

    2.0.8release notes

  • Introduces a realtime voice agent with DashScope backends and local transport support.

    2.0.8release notes

  • Adds support for the Volcengine Ark chat model.

    2.0.8release notes

Behavior and default changes 14

  • DashScope audio transcripts are emitted as text.

    2.0.10release notes

  • A copy of usage appended to a message is retained.

    2.0.10release notes

  • Chat spans report the MiniMax provider name.

    2.0.10release notes

  • Default Read input media types are isolated.

    2.0.10release notes

  • The owner is notified after schedules are deleted.

    2.0.10release notes

  • A schedule's default start time is anchored to an absolute instant.

    2.0.10release notes

  • Tool-result media is promoted in the xai chat formatter.

    2.0.10release notes

  • Agent invites now support cross-owner invitations.

    2.0.8release notes

  • Agents generate a final text summary after reaching the maximum number of iterations.

    2.0.8release notes

  • The formatter uses native multimodal tool outputs.

    2.0.8release notes

  • xAI output usage now includes reasoning tokens.

    2.0.8release notes

  • The Web UI now automatically names sessions.

    2.0.8release notes

  • Tool arguments now receive schema-guided repair.

    2.0.8release notes

  • Agents receive a hint after repeated tool errors.

    2.0.8release notes

Fixes and other changes 79

  • The usage time is refreshed during Anthropic streaming.

    2.0.10release notes

  • Streaming Anthropic tool calls without arguments are emitted with an empty object.

    2.0.10release notes

  • TTS audio is labeled with the effective response format.

    2.0.10release notes

  • A rejected chat run coroutine is closed.

    2.0.10release notes

  • CosyVoice callback errors are propagated.

    2.0.10release notes

  • The formatter validates its input.

    2.0.10release notes

  • Completed tool-call names are released.

    2.0.10release notes

  • Deferred function results are awaited.

    2.0.10release notes

  • Failed Docker initialization is cleaned up.

    2.0.10release notes

  • Document content types are normalized before parser lookup.

    2.0.10release notes

  • Edit rejects empty replacement targets.

    2.0.10release notes

  • RAG closes the latest Elasticsearch point-in-time handle.

    2.0.10release notes

  • RAG parsing preserves duplicate and blank Excel headers.

    2.0.10release notes

  • ExcelParser preserves native Excel error cells.

    2.0.10release notes

  • extra_body is copied before defaulting thinking.type.

    2.0.10release notes

  • Nullable Gemini cache token usage is normalized.

    2.0.10release notes

  • Caller-provided Gemini configuration is honored.

    2.0.10release notes

  • Option-like glob argument values are preserved.

    2.0.10release notes

  • Glob patterns containing current-directory segments are handled.

    2.0.10release notes

  • Dash-prefixed grep paths are treated as operands.

    2.0.10release notes

  • Injected state is omitted from inferred function schemas.

    2.0.10release notes

  • Local symbolic links are unlinked without following their targets.

    2.0.10release notes

  • RAG resolves LOG_LEVEL before configuring the worker.

    2.0.10release notes

  • The app rejects MCP names that the library cannot load back.

    2.0.10release notes

  • Cached prompt tokens are read from prompt_tokens_details.

    2.0.10release notes

  • Empty thinking blocks are skipped.

    2.0.10release notes

  • A no-argument tool call runs with an empty argument payload.

    2.0.10release notes

  • Non-streaming chat audio is wrapped in a valid WAV header.

    2.0.10release notes

  • Each Ollama tool call receives its own id.

    2.0.10release notes

  • OpenAI Responses refusal text is preserved.

    2.0.10release notes

  • Streaming OpenAI Responses tool calls without arguments are emitted with an empty object.

    2.0.10release notes

  • Embedding tolerates missing OpenAI usage information.

    2.0.10release notes

  • An unset exit code is reported as a failure.

    2.0.10release notes

  • Deferred PDF read errors are normalized.

    2.0.10release notes

  • RAG normalizes soft line breaks in PowerPoint text frames.

    2.0.10release notes

  • Deferred PPTX XML errors are normalized.

    2.0.10release notes

  • Redis subscription cleanup is protected from cancellation.

    2.0.10release notes

  • Responses API stream errors are propagated.

    2.0.10release notes

  • Responses reasoning text is preserved.

    2.0.10release notes

  • A separated dotted sed backup suffix is treated as a suffix.

    2.0.10release notes

  • Case-insensitive skill directory collisions are resolved.

    2.0.10release notes

  • The hub parses BOM-prefixed skill frontmatter.

    2.0.10release notes

  • Skill files are read as utf-8-sig so a BOM does not prevent front matter from being read.

    2.0.10release notes

  • A step that marks its own run failed is honored.

    2.0.10release notes

  • TTS respects speech instructions supplied on an individual call.

    2.0.10release notes

  • Middleware does not block structured output when the budget is spent.

    2.0.10release notes

  • Sibling members are joined after a failed round.

    2.0.10release notes

  • Moonshot tool-sequence formatting uses the dedicated formatter.

    2.0.10release notes

  • RAG extracts images embedded in Word table cells.

    2.0.10release notes

  • RAG parsing preserves omitted Word table columns.

    2.0.10release notes

  • Workspace skill deletion is idempotent.

    2.0.10release notes

  • The backend creates Write's parent directories.

    2.0.10release notes

  • Preserves Anthropic streaming content blocks.

    2.0.9release notes

  • Drops empty and whitespace-only chunks.

    2.0.9release notes

  • Validates AskUser question constraints.

    2.0.9release notes

  • Passes a model card's context_size to the chat model.

    2.0.9release notes

  • Exposes the multimodal capability of DashScope embeddings.

    2.0.9release notes

  • Preserves text and NA-like values in Excel parsing.

    2.0.9release notes

  • Bounds the output returned by the glob search tool.

    2.0.9release notes

  • Sorts ripgrep output by path so Grep pagination is stable.

    2.0.9release notes

  • Enables image and video input for Kimi K2.7 Code models.

    2.0.9release notes

  • Supports float metadata filters in Qdrant.

    2.0.9release notes

  • Refreshes the read cache after Edit and Write operations.

    2.0.9release notes

  • Requests a response after a caller-committed turn.

    2.0.9release notes

  • Reports tool call arguments in the realtime event stream.

    2.0.9release notes

  • Preserves property names and instance values when schemas are flattened.

    2.0.9release notes

  • Normalizes weekday numbering to the standard cron convention.

    2.0.9release notes

  • Includes paths in tool validation errors to identify where validation failed.

    2.0.9release notes

  • Copies the tool lists passed when constructing a ToolGroup.

    2.0.9release notes

  • Normalizes errors produced by Word and Excel parsers.

    2.0.9release notes

  • The formatter derives audio format from media type.

    2.0.8release notes

  • Cron is validated before persistence.

    2.0.8release notes

  • The Web UI follows system dark mode so sidebar buttons stay visible.

    2.0.8release notes

  • Enter no longer sends a message while a reply is in progress.

    2.0.8release notes

  • Excel Markdown table cells are escaped.

    2.0.8release notes

  • Cancelled MCP connections are now cleaned up.

    2.0.8release notes

  • Encrypted reasoning items are preserved in OpenAI Responses history.

    2.0.8release notes

  • The read cache is backend-aware so Read followed by Edit works in workspaces.

    2.0.8release notes

  • WordParser preserves blank lines between paragraphs.

    2.0.8release notes