Releases: agentscope-ai/agentscope
Releases · agentscope-ai/agentscope
Release list
v2.0.4.post1
What's Changed
- fix(gemini): fix gemini schema containing null by @qbc2016 in #2020
- feat(workspace): add K8sWorkspace with Pod/PVC lifecycle, tar-stream backend and MCP gateway support by @XiuShenAl in #1933
- feat(rag): add MongoDB vector store backend Closes by @xu-suping in #2008
- fix(formatter): include tool_name in ollama tool result messages by @nolanchic in #2006
- feat(workspace): add OpenSandbox backend by @lumman0 in #1953
- fix(formatter): drop empty text blocks for anthropic by @nolanchic in #2007
- feat(rag): add excel parser by @qbc2016 in #2026
- feat(rag): add word parser by @qbc2016 in #2025
- feat(service): support to share resource (credential, agent, knowledge bases) across different users as a group or org by @DavdGao in #1998
- feat(workspace): add daytona workspace backend by @BreezyB1n in #1943
- fix(workspace): restore default glob helper path by @dailingtao in #2056
- fix: change max_tokens to max_completion_tokens in openai chat model by @qbc2016 in #2065
- fix(workspace): fix OpenSandbox bootstrap and state filtering by @jwx0925 in #2046
- refactor(webui): update tools rendering in the web ui by @DavdGao in #2072
- feat(dashscope): add new models for dashscope by @qbc2016 in #2073
- fix(webui): fix rendering errors in Read/Write/Edit tools caused by incomplete JSON during tool call streaming or interruption by @DavdGao in #2075
- fix(rag): adapt MilvusLiteStore to milvus-lite 3.1.0 COSINE distance semantics by @qbc2016 in #2089
- chore(deps): restrict MCP dependency version to below 2.0.0 by @qbc2016 in #2091
- fix(model): preserve OpenAI Responses reasoning history replay by @qbc2016 in #2071
- fix(app): use cursor-based pagination for list_messages by @DavdGao in #2081
- fix(webui): scroll newly loaded sessions to bottom by @JanCong in #2100
- fix(mem0): use separate LLM instances in OSS example by @Osier-Yi in #2078
- chore(version): bumping version to 2.0.4.post1 by @qbc2016 in #2104
- fix(agent): preserve multi-tool pairs during context compression by @qiuC123 in #2093
New Contributors
- @XiuShenAl made their first contribution in #1933
- @xu-suping made their first contribution in #2008
- @lumman0 made their first contribution in #1953
- @BreezyB1n made their first contribution in #1943
- @dailingtao made their first contribution in #2056
- @jwx0925 made their first contribution in #2046
- @JanCong made their first contribution in #2100
- @qiuC123 made their first contribution in #2093
Full Changelog: v2.0.4...v2.0.4.post1
v2.0.4
Highlight
Agent
- Support agent interruption with context handling #1995
Longterm Memory Integration
TTS
RAG
- Support Milvus Lite VDB #1969
Agent Service
- Support
AgentInviteto import existing agent as team member, i.e. supporting p2p communication between agents - Add session status endpoint #1984
- Support agent interruption in agent service backend & frontend #1995
What's Changed
- fix: prevent duplicate credential registration in CredentialFactory by @qbc2016 in #1964
- fix(tool): reject negative grep pagination values by @VectorPeak in #1954
- feat(middleware): add file-based long-term memory middleware by @y1y5 in #1927
- refactor(workspace): re-organize the code implementation logic of the workspace by @DavdGao in #1971
- fix(agent): preserve middleware kwargs across next handlers by @h2h2h in #1966
- fix(agent): guard against empty or interrupted streaming responses by @xueshanfeihu007 in #1861
- fix(model): use flat estimate for multimodal data blocks by @dongfeng3692 in #1899
- feat: add DashScope CosyVoice TTS model by @YingchaoX in #1866
- feat(rag): add Milvus Lite vector store by @Trefoi1 in #1969
- fix(agent): emit ThinkingBlockEnd before TextBlockStart at reasoning→answer boundary by @qbc2016 in #1887
- feat(agent-team): support to invite the existing agents within the agent service by @DavdGao in #1977
- feat(service): add session status endpoint by @DavdGao in #1984
- docs(agent): fix copy-paste and mismatched docstrings in agent, state and tool modules by @orangeCatDeveloper in #1989
- feat(middleware): add ReMe long-term memory middleware by @ployts in #1972
- feat(agent): support agent interruption with graceful context and tool state handling by @iluv7 in #1995
- fix(formatter): drop empty thinking blocks for gemini by @nolanchic in #2013
- fix(formatter): repair truncated tool-call input instead of crashing by @nolanchic in #2012
- fix(gemini): sanitize const schema field for gemini tool parameters by @qbc2016 in #2016
- feat(tts): implement OpenAI TTS API by @nuthalapativarun in #1878
- fix(model): fix openai response api by @qbc2016 in #1950
- fix(model): fix structured output hang on streaming models by @qbc2016 in #2018
- chore(version): bump version to 2.0.4 by @DavdGao in #2019
New Contributors
- @VectorPeak made their first contribution in #1954
- @y1y5 made their first contribution in #1927
- @xueshanfeihu007 made their first contribution in #1861
- @dongfeng3692 made their first contribution in #1899
- @Trefoi1 made their first contribution in #1969
- @orangeCatDeveloper made their first contribution in #1989
- @iluv7 made their first contribution in #1995
- @nolanchic made their first contribution in #2013
Full Changelog: v2.0.3...v2.0.4
v2.0.3
Major New Features
RAG Module
- Introduced a native RAG (Retrieval-Augmented Generation) module with full support for distributed, multi-tenant, and multi-session RAG services, significantly enhancing knowledge retrieval capabilities.
Long-Term Memory Middleware
- Added a mem0-backed long-term memory middleware, enabling agents to retain persistent memory across sessions.
Budget Control Middleware
- Introduced BudgetControlMiddleware for enforcing token budget limits, helping teams manage and control API costs effectively.
Tool-Level Onion Middleware
- ToolBase now supports onion-style middleware at the tool level, allowing flexible pre/post-processing logic to be injected around tool execution.
What's Changed
- fix(dashscope): correct qwen max 3.7 model id by @Rise1024 in #1876
- feat(middleware): add mem0-backed long-term memory middleware by @Osier-Yi in #1775
- fix(model): handle Gemini function calls without an id by @he-yufeng in #1883
- feat(middleware): add BudgetControlMiddleware for token budget enforcement by @MannXo in #1738
- feat(tts): add cosyvoice realtime tts model by @qbc2016 in #1855
- feat(model): add gpt-4o, gpt-4o-mini, and gpt-4.1-nano cards for openai-response by @nuthalapativarun in #1750
- fix(schema): remove max_length constraints from SummarySchema fields and increase tool result limit by @qbc2016 in #1891
- fix(gemini): add _sanitize_schema_for_gemini to strip Gemini-incompatible JSON Schema constructs by @qbc2016 in #1886
- feat(tool): support tool-level onion middleware in ToolBase by @nuthalapativarun in #1754
- feat(utils): add configurable ID factory via set_id_factory() by @lajxw in #1839
- feat(embedding): add pass_dimensions option for OpenAI embedding model by @jinliyl in #1897
- chore(version): bump version from 2.0.2 to 2.0.3 by @DavdGao with @Copilot in #1898
- chore(workflow): add github workflow for monitoring by @DavdGao in #1912
- fix(formatter): merge parallel tool_results into one user message in AnthropicChatFormatter by @qbc2016 in #1894
- feat(workspace): support builtin tools for the e2b and docker workspaces by @DavdGao in #1903
- fix(tool): merge base64 tool response chunks by bytes by @wang-zhengxin in #1901
- fix(agent): avoid shared default configs by @Premsenareddy in #1906
- feat(agent-team): support to expose the hitl events in the team leader's session by @DavdGao in #1918
- fix(app): convert AG-UI SSE stream events by @YingchaoX in #1917
- refactor(message_bus): refactor and decouple message bus from service logic by @DavdGao in #1923
- feat(message_bus): add in-memory message bus for single node deployment by @DavdGao in #1925
- feat(webui): render Write and Edit tool diffs by @Premsenareddy in #1856
- refactor(webui): add right panel to the WebUI to support verbose task&permission context, equipped MCP and skills by @DavdGao in #1945
- docs: fix hyperlink in docs by @qbc2016 in #1946
- fix(middleware): use configured id factory for TTS audio blocks by @YingchaoX in #1930
- feat(rag): add RAG module in agentscope and support distributed&multi-tenant&multi-session RAG service by @DavdGao in #1926
- feat(agent): support user-defined hints/instructions when compressing memory by @h2h2h in #1942
- refactor: lift _flatten_json_schema to shared util and apply in OpenAI chat model by @qbc2016 in #1940
New Contributors
- @Rise1024 made their first contribution in #1876
- @nuthalapativarun made their first contribution in #1750
- @lajxw made their first contribution in #1839
- @wang-zhengxin made their first contribution in #1901
- @h2h2h made their first contribution in #1942
Full Changelog: v2.0.2...v2.0.3
v2.0.2
What's Changed
- ci(webui): add format and build checks by @Premsenareddy in #1821
- feat(omni): streaming audio + live captions for DashScope/OpenAI omni by @qbc2016 in #1701
- feat(agent-team): support custom subagent templates in agent service by @DavdGao in #1833
- fix(workspace): gracefully handle invalid MCP config entries during i… by @xliu123321 in #1819
- fix(model): fallback to auto tool_choice in OpenAI-compatible structured output when thinking mode rejects forced tool_choice by @qbc2016 in #1830
- fix(ollama): create embedding client per call to avoid event loop binding issues by @DavdGao in #1836
- fix(storage): preserve explicit Redis session ids by @he-yufeng in #1786
- feat(service): support custom agent class within the agent service by @DavdGao in #1838
- feat: support cwd in Bash tool by @he-yufeng in #1822
- fix(webui): correct typo in setup hint copy (zh) by @fancyboi999 in #1766
- fix: add workspace root to permission context by @he-yufeng in #1823
- fix(message-bus): fix the timeout bug in the current redis-based message bus implementation by @DavdGao in #1853
- refactor(embedding): refactor the embedding models for the agent service by @DavdGao in #1852
- feat(tts): add TTS module with DashScope backend and streaming middleware by @qbc2016 in #1832
- refactor(bg_task): refactor the background task manager for multiprocess and distributed deployment by @DavdGao in #1849
- fix(webui): avoid nested in sidebar group action by @fancyboi999 in #1769
- fix(webui): render non-previewable file attachments and constrain media size by @fancyboi999 in #1768
- fix(model): forward Qwen thinking toggle by @he-yufeng in #1774
- fix(team): inherit leader permission rules by @he-yufeng in #1815
- fix(tool): support windows-style separators in glob patterns by @faisalishfaq2005 in #1809
- feat(webui): clarify the credential sidebar with provider grouping by @fancyboi999 in #1829
- fix(webui): make the chat session sidebar a mobile overlay drawer by @fancyboi999 in #1772
- fix(webui): add a route-level error boundary with a friendly error page by @fancyboi999 in #1828
- fix(webui): fix the bug in chat page by @DavdGao in #1867
- fix(version): bump AgentScope version to 2.0.2 by @Copilot in #1875
New Contributors
- @Premsenareddy made their first contribution in #1821
- @xliu123321 made their first contribution in #1819
- @faisalishfaq2005 made their first contribution in #1809
- @Copilot made their first contribution in #1875
Full Changelog: v2.0.1...v2.0.2
v2.0.1
Highlight
- Agent Team is supported
What's Changed
- fix(webui): add missing files in the web ui example by @DavdGao in #1661
- fix(readme): update the QR code for DingTalk group by @DavdGao in #1662
- perf(service): support to provide extra tools and middlewares by @DavdGao in #1709
- fix(formatter): drop thinking blocks without signature for Anthropic by @qbc2016 in #1668
- feat(webui): support to set fallback model in web UI by @DavdGao in #1699
- feat(model): add client_kwargs in model by @qbc2016 in #1659
- feat(model): add yaml configs for mainstream models by @MannXo in #1731
- feat(rag): add the basic class for the RAG module by @DavdGao in #1746
- fix(model): refine retry logic by @qbc2016 in #1730
- fix(tool): support plain return values in FunctionTool by @xunx911 in #1703
- fix(tool): clean the file cache of the builtin Read tool by @googs1025 in #1735
- fix(storage): expire Redis message lists by @he-yufeng in #1734
- fix(webui): fix frontend build with current dependencies by @yuanchangsai77 in #1708
- fix(tool): hide bash subprocess windows on Windows by @he-yufeng in #1717
- fix(workspace): add locks to mcp and skill operations in LocalWorkspace. by @weizhang25 in #1710
- perf(permission): improve the implementation of the current permission system by @DavdGao in #1767
- feat(agent_team): refactor the agent service to support agent team by @DavdGao in #1776
- feat(event): add metadata in EventBase by @qbc2016 in #1788
- fix(mcp): sanitize MCPTool name for LLM provider compatibility by @qbc2016 in #1787
- fix(model): honor explicit thinking_enable=False on Ollama and Gemini by @qbc2016 in #1784
- docs(readme): update readme for the new service feature by @DavdGao in #1789
- fix(webui): use asChild on Button tooltip trigger to avoid nested by @fancyboi999 in #1770
- fix(webui): add dialog descriptions for accessibility by @fancyboi999 in #1771
- fix: include tool group skills by @he-yufeng in #1732
- feat(deps): make ripgrep an optional dependency by @Oxygen56 in #1740
New Contributors
- @MannXo made their first contribution in #1731
- @xunx911 made their first contribution in #1703
- @googs1025 made their first contribution in #1735
- @he-yufeng made their first contribution in #1734
- @yuanchangsai77 made their first contribution in #1708
- @fancyboi999 made their first contribution in #1770
- @Oxygen56 made their first contribution in #1740
Full Changelog: v2.0.0...v2.0.1
v2.0.0
AgentScope 2.0 is released!
Please refer to the new docs for more information.
What's Changed
- chore(project): temporarily deprecate evaluate/module/rag/tts/realtime modules pending refactor by @DavdGao in #1438
- refactor(msg): simplify core building blocks and Msg class structure by @DavdGao in #1440
- feat(msg): formalize Msg type rules and constraints and add message related tests by @DavdGao in #1454
- feat(permission): build the basic permission classes by @DavdGao in #1486
- refactor(tool): refactor the tool module, including providing new base class and toolkit logic by @DavdGao in #1493
- ci(mcp): refactor the previous MCP unittests for the new version by @DavdGao in #1505
- feat(tool): implement builtin tools with ToolBase inheritance and add comprehensive tests by @DavdGao in #1502
- refactor(skill): refactor the skill in the toolkit by adding a new skill loader class by @DavdGao in #1513
- feat(agent): implement permission checking logic within the agent class by @DavdGao in #1518
- feat(context): support context compression in Agent class by @DavdGao in #1544
- feat(task): add task related tools in agentscope 2.0 by @DavdGao in #1549
- refactor(mcp): rename the mcp when registered into the toolkit by @DavdGao in #1552
- refactor(mcp): unify the MCP implementation into a
MCPClientclass by @DavdGao in #1572 - feat(middleware): support 2.0 middlewares in the agent class by @DavdGao in #1565
- feat(context): support tool result compact within the
Agentclass by @DavdGao in #1585 - feat(workspace): built the workspace module in agentscope 2.0 by @DavdGao in #1586
- refactor(model): refactor the chat model implementation by @DavdGao in #1564
- factor(tool): refactor the
tool_choiceargument to support advanced prompt cache in OpenAI response API by @qbc2016 in #1524 - feat(scripts): add scripts for model call by @qbc2016 in #1604
- feat(model): add cache_creation_input_tokens and cache_input_tokens in ChatUsage by @qbc2016 in #1602
- fix(dashscope): fix KeyError in dashscope response by @qbc2016 in #1615
- refactor(model): refactor dashscope model to openai compatible by @qbc2016 in #1617
- refactor: rename kimi to moonshot by @qbc2016 in #1609
- refactor(tracing): refactor tracing module, except model and formatter by @qbc2016 in #1579
- fix(formatter): refine formatters and unittest by @qbc2016 in #1621
- feat(service): implement the FastAPI based agent service by @DavdGao in #1568
- feat(trace): add trace as a middleware by @qbc2016 in #1633
- feat(model): uniform thinking tag by @qbc2016 in #1622
- fix(model): refine _format_tools for openai response model by @qbc2016 in #1635
- fix(scripts): assign a list of textblock to the content instead of a string by @qbc2016 in #1629
- fix(mcp): preserve $defs in MCPTool input schema and strip titles recursively by @qbc2016 in #1595
- feat(model): handle audio output for openai by @qbc2016 in #1623
- feat(msg): add usage in msg by @qbc2016 in #1639
- feat(tool): integrate the tool and workspace modules with the Agent class by @DavdGao in #1642
- feat(model): fix dashscope structured output and add examples by @qbc2016 in #1651
- fix(formatter): download remote image URLs to base64 for Moonshot by @qbc2016 in #1653
- fix(tool): close .env bypass gap and refine dangerous-path API for Write/Edit/Bash by @qbc2016 in #1656
- refactor(workspace): support e2b and docker workspace, as well as their managers by @DavdGao in #1650
- docs(readme): udpate the docs for 2.0 release by @DavdGao in #1657
- chore(version): update the version to 2.0.0 and release to PyPI by @DavdGao in #1658
Full Changelog: v1.0.21...v2.0.0
v1.0.21
What's Changed
- docs: update dingtalk qr codes and add hyperlink by @qbc2016 in #1620
- docs(readme): remove redundant links by @qbc2016 in #1636
- feat(model): extend reasoning_effort options for OpenAI-compatible providers by @qbc2016 in #1643
- fix(formatter): avoid emitting
text: nullin AnthropicChatFormatter tool_result by @qbc2016 in #1641 - feat(model): support openai response api by @qbc2016 in #1346
- fix(tts): bug fix and add warning and retry by @qbc2016 in #1014
- feat(gemini): add thought signature for gemini model and formatter by @qbc2016 in #1402
- fix(tracing): handle CancelledError when closing spans by @FallingSnowFlake in #1619
- fix(model): handle structured output failures on dashscope-compatible endpoints by @CarlBye in #1646
- chore(version): bumping version to 1.0.21 by @qbc2016 in #1652
New Contributors
- @FallingSnowFlake made their first contribution in #1619
- @CarlBye made their first contribution in #1646
Full Changelog: v1.0.20...v1.0.21
v1.0.20
What's Changed
- fix(openai): catch response_format errors during streaming to enable fallback by @qbc2016 in #1527
- feat(mcp): add execution timeout for mcp by @qbc2016 in #1540
- chore(version): bumping version to 1.0.19.post1 by @qbc2016 in #1543
- fix(mcp): preserve $defs and $ref in MCP tool input schema by @qbc2016 in #1591
- fix(mcp): remove title in $defs by @qbc2016 in #1594
- chore(milvus): fix version of milvus-lite by @qbc2016 in #1603
- fix(anthropic): handle None input_tokens in stream message_delta event by @qbc2016 in #1610
- fix(formatter): fix memory overhead, None tool output crash, and DeepSeek null content rejection by @qbc2016 in #1589
- chore(version): bumping verstion to 1.0.20 by @qbc2016 in #1612
Full Changelog: v1.0.19...v1.0.20
v1.0.19.post1
v1.0.19
What's Changed
- docs(copaw): add news for copaw by @qbc2016 in #1379
- feat(formatter): support local multimedia paths starting with file:// by @qbc2016 in #1385
- feat(memory): add tablestore memory support by @zhanghaochenFCB in #1308
- fix(examples): rename ReflectFailure.decompose_subtask.rephrased_plan to failed_subtask in deep research example by @alex-xinlu in #1151
- docs(news): update the news for 2.0 by @DavdGao in #1442
- chore(assets): update the png by @DavdGao in #1468
- fix(agent): add missing await on memory.add in DeepResearchAgent._summarizing by @Ricardo-M-L in #1477
- fix: handle missing 'type' field in tool parameter properties for OpenAITokenCounter by @octo-patch in #1403
- fix(agent): handle thinking blocks in DeepResearchAgent to support thinking and non-thinking models by @Luohh5 in #1492
- fix(memory): serialize concurrent writes in AsyncSQLAlchemyMemory by @umerkhan95 in #1390
- fix(agent): prevent duplicate hook execution when subclass overrides _reasoning or _acting by @qbc2016 in #1481
- feat(model): add fallback for structured output for openai chat model by @qbc2016 in #1430
- fix(sqlalchemy_memory): flush the session to ensure message records are written to the database by @qbc2016 in #1396
- feat(formatter): translate local file path to base64 in image blocks in Anthropic formatter by @qbc2016 in #1361
- fix: use underscore naming for Tavily tool functions in DeepResearch agent by @octo-patch in #1400
- feat(model): refine counting input tokens for anthropic chat model by @qbc2016 in #1319
- fix(DashScope formatter): convert local files to base64 data in dashscope formatter by @qbc2016 in #1253
- fix(agent): guard DeepResearchAgent tool metadata access by @YingchaoX in #1489
- fix(unittest): hotfix for unittest by @qbc2016 in #1507
- chore(version): bumping verstion to 1.0.19 by @qbc2016 in #1506
New Contributors
- @zhanghaochenFCB made their first contribution in #1308
- @alex-xinlu made their first contribution in #1151
- @Ricardo-M-L made their first contribution in #1477
- @octo-patch made their first contribution in #1403
- @umerkhan95 made their first contribution in #1390
Full Changelog: v1.0.18...v1.0.19