Skip to content

Releases: VRSEN/agency-swarm

Fix Gradio

14 Dec 04:31
Compare
Choose a tag to compare

What's Changed

  • Set Up and Apply Pre-Commit Hooks with Ruff by @bonk1t in #191
  • Update the demo_gradio method to align with the new package version by @bonk1t in #197

Full Changelog: v0.4.1...v0.4.2

Upgrade OpenAI

02 Dec 12:13
9e23529
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v0.4.0...v0.4.1

Custom Communication Flows

26 Nov 15:21
Compare
Choose a tag to compare

New Features

  • Custom Communication Flows: Create custom SendMessage tool classes for agents to communicate with each other. Learn more
  • async_mode Parameter in BaseTool.ToolConfig: Set async_mode="threading" directly in ToolConfig of BaseTool classes, instead of at the Agency level. This allows you to execute only certain tools asynchronously.
  • output_as_result Parameter in BaseTool.ToolConfig: When set to true, agency.get_completion will return the tool’s output instead of the message.

Bug Fixes & Improvements

  • Thread Initialization: Optimized by removing redundant thread fetches when loading threads from IDs.

New Contributors

Full Changelog: v0.3.1...v0.4.0

Azure Fixes

23 Oct 14:09
Compare
Choose a tag to compare

New Features

  • Added .cursorrules file: Enables agent creation using Cursor Composer without writing any code.
  • Added refresh_from_id parameter in the Agent class: Controls whether agent settings are refreshed from OpenAI when an ID is provided, useful for backend integrations based on your setup.

Bug Fixes

  • Fixed strict mode unsupported on Azure issue (#177).
  • Improved parameter checking before running agents to reduce unnecessary OpenAI assistant updates.
  • Enhanced tool classification for different uploaded files as attachments.

Full Changelog: v0.3.0...v0.3.1

Structured Outputs

20 Aug 17:07
Compare
Choose a tag to compare

New Features

  • Removed Instructor: Agency Swarm no longer relies on the instructor. If a Pydantic model is passed, the response_format parameter will now use OpenAI's implementation. The tool creation process remains unchanged.
  • strict mode: You can now enable "strict" mode when creating tools in both the BaseTool class and in your schema using ToolFactory. See Structured Outputs for more details.
  • response_format: json_schema: The response format can now be set to json_schema in both the Agent class and completion methods.
  • get_completion_parse: This new method allows you to pass a Pydantic model directly to the response_format method, which will then return a parsed model. If the request is refused, a RefusalError from agency_swarm.util.errors will be raised.
  • Verbose mode for get_completion: By setting the verbose parameter to true, you can view intermediary messages, similar to Crew AI.
  • Improved error handling for existing threads: The system will now automatically cancel any active runs within a thread and continue the conversation.

Bug Fixes

  • Fixed shared state initialization when testing tools separately. #165
  • Improved common error handling like connection errors and rate limits in Thread.

⚠️ Breaking Changes in BaseTool Class

  • The one_call_at_a_time parameter in BaseTool is now located under ToolConfig.

  • shared_state and caller_agent are now private attributes.

    from agency_swarm.tools import BaseTool
    
    class Action1(BaseTool):
        input: str = Field(...)
        # one_call_at_a_time = True  # before 
    
        class ToolConfig:
            one_call_at_a_time = True  # now
            strict = True # new
    
        def run(self):
            # self.shared_state.get('param')  # before
            self._shared_state.get('param')  # now

Full Changelog: GitHub Compare v0.2.6...v0.2.7

Async Tool Calls

17 Jul 16:07
Compare
Choose a tag to compare

New Features

  • Async Tools - You can now set async_mode to tools_threading inside the Agency class. With this mode on, all tool calls made by your agents will be executed in separate threads (max 4, depending on your CPU). This can signifincatly speed up the workflow when executing multiple I/O bound tasks.
  • Concurrent API Calls - Now all API tools created with schemas_folder or ToolFactory.from_openapi_schema return coroutines, which are executed concurrently in an event loop.
  • Async BaseTool.run Method Support - All async run methods in your BaseTool classes are now executed concurrently in an event loop as well.
  • File Search Configuration - Added file_search configuration to the Agent class - This parameter allows you to modify the configuration of the FileSearch tool. Currently, only {max_num_results: int} is available. See OpenAI API Docs
  • Parallel Tool Call Controls - Added parallel_tool_calls parameter to the Agent class - When set to False, the agent won't call multiple tools at once and will execute all tools sequentially.

Bug Fixes

  • Fixed bug with duplicate call IDs assignment when the agent calls the same tool multiple times and the request times out. #151

Full Changelog: v0.2.5...v0.2.6

v0.2.5

30 May 05:01
Compare
Choose a tag to compare

New Features

  • Converting OpenAI/OpenAPI schemas using ToolFactory into tools has been significantly improved with datamodel-code-generator. Now, all parameters and endpoints are converted into BaseTools flawlessly, even with complex data structures like oneOf or allOf, allowing the agent to validate all inputs before calling the API.
  • Default model is now gpt-4o.
  • Gradio interface now accepts image files for analysis with vision.
  • Gradio interface now automatically adds required tools to the recipient agent when uploading files.

Bug Fixes

  • Fixed bugs with the initialization of assistants created with the V1 assistants API. #128
  • Fixed file assignment to tool resources based on file types in the Gradio interface.
  • Fixed typos by @Elektra58.

New Contributors

Note

Version 0.2.4 was skipped because of an extra debug statement that was not removed.

Full Changelog: v0.2.3...v0.2.5

Browsing Agent Improved

25 May 17:25
Compare
Choose a tag to compare

New Features

  • BrowsingAgent is now significantly improved and uses vision directly with GPT-4o, instead of through the tools
  • MessageOutput now contains an object which caused the message, for more flexibility in backend integrations.
  • Shared state now contains agent and recipient_agent references. Additionally, it is now initialized in Agency class, rather than package-wide.

Bug Fixes

  • Fix Order of Operations in Agent.init_oai Method to Ensure Assistant Updates by @bonk1t in #127
  • Other minor bug fixes

New Contributors

Full Changelog: v0.2.2...v0.2.3

v0.2.2

09 May 05:32
Compare
Choose a tag to compare

New Features

  • Added support for open-source models, docs are available here

Bug Fixes

  • Returned backward compatibility for yield_messages as some people have requested.
  • Handle timeouts with extremely long function calls #115
  • Fixed message attachment bug by @ArtemShatokhin in #119

New Contributors

Full Changelog: v0.2.1...v0.2.2

v0.2.1

27 Apr 02:27
Compare
Choose a tag to compare

Bug Fixes

  • Resolved the issue where the on_all_streams_end call was missing for the event handler in streaming, causing the Gradio interface to freeze after the first message.

Full Changelog: View Changes