Releases: VRSEN/agency-swarm
Releases · VRSEN/agency-swarm
v0.4.0: Custom Communication Flows
New Features
- Custom Communication Flows: Create custom
SendMessage
tool classes for agents to communicate with each other. Learn more async_mode
Parameter inBaseTool.ToolConfig
: Setasync_mode="threading"
directly inToolConfig
ofBaseTool
classes, instead of at the Agency level. This allows you to execute only certain tools asynchronously.output_as_result
Parameter inBaseTool.ToolConfig
: When set totrue
,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
- @trichards1300 made their first contribution in #70
Full Changelog: v0.3.1...v0.4.0
v0.3.1: Azure Fixes
New Features
- Added
.cursorrules
file: Enables agent creation using Cursor Composer without writing any code. - Added
refresh_from_id
parameter in theAgent
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
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 theBaseTool
class and in your schema usingToolFactory
. See Structured Outputs for more details.response_format: json_schema
: The response format can now be set tojson_schema
in both theAgent
class and completion methods.get_completion_parse
: This new method allows you to pass a Pydantic model directly to theresponse_format
method, which will then return a parsed model. If the request is refused, aRefusalError
fromagency_swarm.util.errors
will be raised.- Verbose mode for
get_completion
: By setting theverbose
parameter totrue
, 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 inBaseTool
is now located underToolConfig
. -
shared_state
andcaller_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
New Features
- Async Tools - You can now set
async_mode
totools_threading
inside theAgency
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
orToolFactory.from_openapi_schema
return coroutines, which are executed concurrently in an event loop. - Async
BaseTool.run
Method Support - All async run methods in yourBaseTool
classes are now executed concurrently in an event loop as well. - File Search Configuration - Added
file_search
configuration to theAgent
class - This parameter allows you to modify the configuration of theFileSearch
tool. Currently, only{max_num_results: int}
is available. See OpenAI API Docs - Parallel Tool Call Controls - Added
parallel_tool_calls
parameter to theAgent
class - When set toFalse
, 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
New Features
- Converting OpenAI/OpenAPI schemas using
ToolFactory
into tools has been significantly improved withdatamodel-code-generator
. Now, all parameters and endpoints are converted intoBaseTool
s flawlessly, even with complex data structures likeoneOf
orallOf
, 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
- @beanlover made their first contribution in #129
- @Elektra58 made their first contribution in #132
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
New Features
BrowsingAgent
is now significantly improved and uses vision directly with GPT-4o, instead of through the toolsMessageOutput
now contains an object which caused the message, for more flexibility in backend integrations.- Shared state now contains
agent
andrecipient_agent
references. Additionally, it is now initialized inAgency
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
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
- @ArtemShatokhin made their first contribution in #119
Full Changelog: v0.2.1...v0.2.2
v0.2.1
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
New Features
- Temperature and Top P Controls: Set the
temperature
and thetop_p
parameter in theAgent
orAgency
class, with Agent settings taking precedence. - Max Token Controls: Configure
max_prompt_tokens
,max_completion_tokens
, andtruncation_strategy
in either theAgent
orAgency
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 theFileSearch
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, useagent.delete()
oragency.delete()
methods. - Enhanced Genesis Agency: Enhanced genesis agency to accommodate new features. Upgraded
ToolCreator
agent'sCreateTool
with a more robust architecture.
Full Changelog: View Changelog
Devid
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 theBaseTool
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