Skip to content

Releases: agentscope-ai/agentscope

v2.0.4.post1

Choose a tag to compare

@DavdGao DavdGao released this 16 Jul 08:25
2d5ebe1

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

Full Changelog: v2.0.4...v2.0.4.post1

v2.0.4

Choose a tag to compare

@DavdGao DavdGao released this 07 Jul 10:51
ded7ccd

Highlight

Agent

  • Support agent interruption with context handling #1995

Longterm Memory Integration

  • Integrate ReMe based longterm memory #1972
  • Integrate agentic longterm memory #1927

TTS

  • Support OpenAI TTS API #1878
  • Support DashScope CosyVoice TTS API #1866

RAG

  • Support Milvus Lite VDB #1969

Agent Service

  • Support AgentInvite to 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

Full Changelog: v2.0.3...v2.0.4

v2.0.3

Choose a tag to compare

@DavdGao DavdGao released this 29 Jun 02:08
3467754

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

Full Changelog: v2.0.2...v2.0.3

v2.0.2

Choose a tag to compare

@qbc2016 qbc2016 released this 16 Jun 07:29
cb3a4a9

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

Full Changelog: v2.0.1...v2.0.2

v2.0.1

Choose a tag to compare

@DavdGao DavdGao released this 05 Jun 12:13
8d2e94b

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

Full Changelog: v2.0.0...v2.0.1

v2.0.0

Choose a tag to compare

@DavdGao DavdGao released this 25 May 15:44
edd7cfd

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 MCPClient class 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 Agent class 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_choice argument 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

Choose a tag to compare

@DavdGao DavdGao released this 25 May 09:35
278696c

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: null in 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

Full Changelog: v1.0.20...v1.0.21

v1.0.20

Choose a tag to compare

@DavdGao DavdGao released this 15 May 07:46
b840fa9

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

Choose a tag to compare

@DavdGao DavdGao released this 28 Apr 06:35
8ba4b40

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

Full Changelog: v1.0.19...v1.0.19.post1

v1.0.19

Choose a tag to compare

@DavdGao DavdGao released this 20 Apr 12:45
eb7678e

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

Full Changelog: v1.0.18...v1.0.19