Skip to content

Releases: VRSEN/agency-swarm

v0.4.0: 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

v0.3.1: 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

Assistants V2

26 Apr 15:16
Compare
Choose a tag to compare

New Features

  • Temperature and Top P Controls: Set the temperature and the top_p parameter in the Agent or Agency class, with Agent settings taking precedence.
  • Max Token Controls: Configure max_prompt_tokens, max_completion_tokens, and truncation_strategy in either the Agent or Agency class, with Agent settings taking precedence.
  • JSON Mode: Configure the response format by setting the response_format parameter in the Agent class.
  • Tool Choice: Select the tool to be used in the get_completion methods.
  • Few-Shot Examples: Add examples to the agent to fine-tune its responses. For more details, refer to the documentation.
  • File Search: The Retrieval tool has been replaced by the FileSearch tool by default. Initialize an agent to create a vector store if one does not already exist. To delete a vector store and all associated files, use agent.delete() or agency.delete() methods.
  • Enhanced Genesis Agency: Enhanced genesis agency to accommodate new features. Upgraded ToolCreator agent's CreateTool with a more robust architecture.

Full Changelog: View Changelog

Devid

11 Apr 10:15
Compare
Choose a tag to compare

New Features

  • Devid Agent: A new AI Software Development agent has been added to the framework.
  • Local Import of Agent Source Code Files: The command agency-swarm import-agent has been introduced, enabling the local copying of your agent's source files. This feature grants you complete control over your systems. Additionally, Genesis agency has integrated the use of this command.
  • Enhanced Command Instructions: Enhancements have been made to the get_completion methods, allowing the passing of additional instructions. Agents can now communicate more effectively with each other by utilizing this new parameter.
  • Customizable Response Validators: Agents now have the capability to override special response validator methods within their class definitions. If these methods return an error, the corresponding error message will be forwarded as a user message, facilitating automatic reprompting of your agents.
  • Concurrency Control for Tool Access: To prevent simultaneous multiple calls to certain tools by your agents, a new class attribute one_call_at_a_time: bool = False has been introduced in the BaseTool classes. If set to True, your agent can't call this tool multiple times in a single message.

Bug Fixes

  • General Stability Enhancements: Significant improvements have been made to mitigate various OpenAI-related errors, enhancing the robustness and reliability of the system.
  • Fixed non existing agents in settings: Now, rather than rasiing errors for deleted agents in your settings file, the system will automatically create a new one.
  • Fixes in Demo Interfaces: Issues with demo interfaces, including Gradio and terminal demos not displaying messages sent to other assistants, have been resolved, ensuring a smoother user experience.

For the complete list of changes, please visit the full changelog: View Changelog