Releases: VRSEN/agency-swarm
v1.5.0 — One Does Not Simply Call an MCP
What's Changed
Features
- add ToolFactory.from_mcp to convert MCP servers into validated tools by @ArtemShatokhin in #453
- enable OpenAPI schema generation for tools by @bonk1t in #446
- add server_url to run_fastapi for better schema generation by @ArtemShatokhin in #465
Fixes and improvements
- fix: correct guardrail streaming persistence and refactor execution modules by @bonk1t in #434
- fix: normalize basetool error output by @bonk1t in #455
- fix: prevent streaming context override mutation by @bonk1t in #457
- improvement: move timeout into a tool input field by @ArtemShatokhin in #456
- improvement: simplified model definition in litellm doc by @ArtemShatokhin in #463
Dependencies
Docs
- add n8n integration docs by @dumitruPuggle in #464
- update n8n integration documentation to include notes on self-h… by @dumitruPuggle in #466
Full Changelog: v1.4.1...v1.5.0
v1.4.1
v1.4.0 Built-in Tools and CLI Improvements
🚀 Features
Built-in Tools & CLI Import
Introduces built-in tools — IPythonInterpreter, PersistentShellTool, and LoadFileAttachment — along with a new import-tool CLI command.
Includes improvements to file handling, agent template generation, and documentation/navigation for built-ins.
- Add built-in tools and CLI import command (#442) by @ArtemShatokhin
- CLI:
import-toolcommand to list/copy built-ins into a project - Docs: new Built-in Tools page with cross-links
- CLI:
Terminal Demo Improvements
Major UX upgrade for the terminal demo (Agency.terminal_demo()) with interactive dropdowns and autocomplete.
- Terminal demo improvements (#432) by @ArtemShatokhin
- Added keyboard-navigable dropdown for
/commands and@agentmentions - Improved agent parsing, error handling, and handoff logic
- Added autocomplete, new key bindings (Tab, Esc, Enter), and refined styling
- Updated integration tests for all new behaviors
- Added keyboard-navigable dropdown for
🛠 Fixes and Improvements
- Improve IPython tool isolation (#448) by @ArtemShatokhin
- Add working directory as a separate IPython tool input (#452) by @ArtemShatokhin
- Additional improvements: improve agent file handling by skipping subfolders, detecting empty directories, and optimizing vector store creation.
📘 Docs
- Added Widget Integration documentation (#427) by @MykhailoShchuka
🧑💻 New Contributors
- @MykhailoShchuka made their first contribution in #427
Full Changelog: v1.3.1 → v1.4.0
v1.3.1
What's Changed
- fix: ensure openapi tools serialize schema payloads by @bonk1t in #430
- fix: add object serialization to visualize function, move serialize() to util by @ArtemShatokhin in #426
- refactor: adopt sdk response models by @bonk1t in #424
- refactor: simplify citation extraction by @bonk1t in #431
Full Changelog: v1.3.0...v1.3.1
v1.3.0 — Multimodal Tool Outputs
Features
- Support multimodal tool outputs, bump the Agents SDK to 0.4.1 by @bonk1t in #383
- Use agency name as a default trace name by @ArtemShatokhin in #404
- Group runs in a single trace by @ArtemShatokhin in #411
- get_response_stream returns run response wrapper by @bonk1t in #400. See "Streaming API update" below for more details.
- Expanded imports from Agents SDK into the framework by @ArtemShatokhin in #402
Improvements & Fixes
- Improved mention parsing in the terminal demo, update show_reasoning default value by @ArtemShatokhin in #403
- fix: streamline vector store ingestion waits by @bonk1t in #423
- fix: propagate run_config trace ids by @ArtemShatokhin in #413
- fix: unblock streaming final futures by @bonk1t in #414
- fix: set callerAgent for hosted tool system messages during agent→agent runs by @ArtemShatokhin in #420
Docs
- docs: update API reference to match Agency and Agent APIs by @ArtemShatokhin #416
- Revise README for clarity and updates by @bonk1t in #422
- Fixed formatting issue in validation doc by @ArtemShatokhin in #412
Streaming API update
Agency.get_response_streamandAgent.get_response_streamnow return aStreamingRunResponseimmediately instead of an awaitable coroutine.- Existing
async foriteration keeps working, but callingawaiton these methods now raisesTypeErrorbecause they are synchronous.
Updated usage:
stream = agent.get_response_stream(...)
async for event in stream:
...
final_result = await stream.wait_final_result()Drop the leading await when obtaining the stream. Callers that previously wrote await agent.get_response_stream(...) must adopt the pattern above.
Full Changelog: v1.2.1...v1.3.0
v1.2.1
v1.2.0 — FastAPI Capability Metadata, State Isolation, Vector-Store Sync Hardening
Features
- FastAPI integration: provide per-agent capability metadata (tools, reasoning, hosted tools) by @bonk1t in #397
- FastAPI integration: support
DRY_RUNenv variable so agent metadata can be served without initialization / API keys by @ArtemShatokhin in #398 - handoffs (backwards-compatible): move reminder customization onto
Agent.handoff_reminder, add a dedicatedexamples/handoffs.py, and update communication-flow docs by @ArtemShatokhin in #388 and by @bonk1t in #399
Improvements & Fixes
- fix: isolate agent runtime state per agency by @bonk1t in #396
- fix: isolate send_message pending guard per thread manager by @bonk1t in #394
- fixes: add vector-store file cleanup, timestamp reconciliation, and resilient ID parsing so stale artifacts and OpenAI ID mismatches no longer break sync jobs by @ArtemShatokhin in #393 and @bonk1t in #395
- fix: harden mcp shutdown handling by @bonk1t in #401
Dependencies
- deps: upgrade the OpenAI Agents SDK from 0.2.9 to 0.3.3 (plus pinned transitive updates) to include streaming fixes and other improvements by @bonk1t in #369
Docs
- docs: rename "open-source models" to "third-party models", fix GitHub references by @bonk1t in #391
- docs/examples: expand hybrid communication flow guidance and align tutorials with the new handoff reminder APIs by @ArtemShatokhin in #388
Full Changelog: v1.1.0...v1.2.0
v1.1.0 — Create-agent-template CLI & v0 Migrator; Handoff Reminders + Guardrail Upgrades
Features
- feat(fastapi): auto-generate chat titles from request context and harden guardrail/output_type interplay by @ArtemShatokhin in #362
- cli: add agent template creation workflow for new projects by @ArtemShatokhin in #380
- cli(v0 migration): port
settings.jsonagents into v1 projects by @ArtemShatokhin in #374 - terminal demo: add /resume persistence command by @bonk1t in #340
- terminal demo: add show_reasoning parameter to control reasoning traces display by @bonk1t in #342
Note: some terminal demo improvements were introduced in 1.0.2.
Improvements & Fixes
- guardrails: preserve prior assistant output across retry cycles without
run_databy @bonk1t in #365 - guardrails: ensure input wrappers apply regardless of guardrail name by @bonk1t in #370
- handoffs: inject a reminder system message whenever agents transfer control by @ArtemShatokhin in #366
- metadata: surface the running agency-swarm version on the FastAPI metadata endpoint by @bonk1t in #373
- files: reuse existing vector-store directories and skip utility files during ingestion by @ArtemShatokhin in #385 and #382
- cli: tighten error handling, exit codes, and AGENTS.md compliance for migrate-agent flows by @bonk1t in #386
- terminal: fix reference routing for agents with repeating name patterns by @ArtemShatokhin in #363
- fix: add tsx runner support and resolve build failures by @bonk1t in #392
Docs
- docs: remove legacy v0 mentions and polish navigation by @ArtemShatokhin in #371
- docs: refresh MCP demo guidance, agent initialization, and
max_tokensusage by @bonk1t in #375 - docs: align BaseTool examples with the async
runcontext pattern by @bonk1t in #384 - docs: add coverage badge and trim outdated Colab reference by @bonk1t in 5792830
Tests
- tests: broaden coverage across tool factory, BaseTool, MCP server, persistence, and FastAPI logging by @ArtemShatokhin in #378
- tests: refactor FastAPI logging middleware integration to run in-process and disable tracing noise by @bonk1t in #379
- tests: stabilize file attachment expectations in integration suite by @ArtemShatokhin in #377
Security
- security: upgrade Next.js dependency to 15.4.7+ to address upstream vulnerability by @bonk1t in aac33f0
Full Changelog: v1.0.2...v1.1.0
v1.0.2
Improvements
- feat(mcp): add persistent MCP manager to maintain connections with MCP servers by @ArtemShatokhin in #355
- feat(terminal): add /resume persistence command; split demo into focused modules by @bonk1t in #340
- feat: add show_reasoning parameter to control reasoning traces display by @bonk1t in #342
- agency: reject global model parameter by @bonk1t in #353
- guardrails: avoid double-wrapping in FastAPI by @ArtemShatokhin in #343
- guardrails: adjust how guardrail messages are added to history by @ArtemShatokhin in #346
- prompts: ensure shared instructions lead agent prompts by @bonk1t in #351
- tools: update BaseTool context usage; add reasoning event warning by @ArtemShatokhin in #352
- messages: add message_origin parameter to system messages by @ArtemShatokhin in #347
Refactors
- refactor(agency): agent execution system for better modularity and maintainability; refactor tests by @bonk1t in #349
Fixes
- fix(mcp): persistent MCP manager driver reuse by @bonk1t in #356
- fix(handoff): incorrect agent assignment for handoff tool call output by @ArtemShatokhin in #341
- fix(ui): launcher chat persistence; strict compact client by @bonk1t in #354
Tests
- tests: verify message_origin assignment by @ArtemShatokhin in #348
Handoff
- improve handoff handling and name parsing logic by @ArtemShatokhin in #360
Full Changelog: v1.0.1...v1.0.2
v1.0.1
What's Changed
Agent API & Defaults
- [backwards-compatible] agents: rename return_input_guardrail_errors -> throw_input_guardrail_error by @bonk1t in #330
- Added default model assignment to agent init by @ArtemShatokhin in #338
- Updated handoff tool to include unedited agent name and recipient_agent field by @ArtemShatokhin in #337
Terminal & UI
- Improve Terminal Demo: Support commands: compact summarize, reset by @bonk1t in #331
- terminal_demo: enable reasoning summaries and render in console by @bonk1t in #335
- Fixed reasoning duplication in terminal demo by @ArtemShatokhin in #336
- Updated handoff name display in terminal demo by @ArtemShatokhin in #332
- ui(console): improve ConsoleEventAdapter rendering by @bonk1t in a775841
- ui(launcher): reuse entry agent sync client in /compact; add unit test to ensure model passthrough and non-OpenAI path by @bonk1t in 434c9dc
- ui/terminal: compact uses OpenAI minimal reasoning when model contains 'gpt'; keep provider string intact; retain ID sanitization; integration test unchanged by @bonk1t in 89b93b3
- fix: enable terminal_demo slash menu with prompt-toolkit dependency by @bonk1t in 9981feb
Streaming & Messaging
- refactor: make streaming event handling non-destructive by @bonk1t in 13840d2
- streaming: add ensure_event_agent_metadata and use in SendMessage to avoid overwriting agent attribution during sub-agent forwarding by @bonk1t in 6c8e023
- feat: add ExtraParams support to SendMessage for clean field customization by @bonk1t in 8356ee6
FastAPI Integration
Tests & Stability
- tests: stabilize integration test flakes by @bonk1t in #333
- tests: migrate fin_agency agents from v0.x to v1.x pattern by @bonk1t in d471366
- test: fix ConsoleEventAdapter handoff_agent initialization in test fixture by @bonk1t in 06d97a9
Docs & Examples
- Updated examples and docs by @ArtemShatokhin and @bonk1t in #326 and #327
- Updated multi_agent_workflow example by @ArtemShatokhin in #329
- docs(AGENTS): prioritize running relevant tests first; reserve make ci for final verification by @bonk1t in a7ab748
Other
- Bug fixes and updates by @ArtemShatokhin in #334
Full Changelog: v1.0.0...v1.0.1