Releases: VRSEN/agency-swarm
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
Streaming minor bug fixes
Bug Fixes
- Fixed readline not available on windows #95
- Fixed message queue timing out on long function calls in
demo_gradio
.
Full Changelog: v0.1.5...v0.1.6
Streaming
New Features
- Support for streaming: The
demo_gradio
andrun_demo
methods now use streaming by default. For custom integrations, please see documentation.
Bug Fixes
- Fixed agency chart not parsing correctly when adding more than 2 agents in any second level list.
Full Changelog: v0.1.4...v0.1.5
Genesis Agency Improved
New Features
- Improved Genesis Agency: The agency creation process with Genesis Agency is now a lot more reliable and stable.
Bug Fixes
- Fixed "got an unexpected keyword argument 'type'" bug when using genesis cli command.
Full Changelog: v0.1.3...v0.1.4
Docs
New Features
- Docs are available!: Check out the full usage guide with lots of useful tips at https://vrsen.github.io/agency-swarm/
- Added
get_openapi_schema
to ToolFactory: With this method, you can now convert multiple tools into a single OpenAPI schema. This is useful when you want to deploy all tools for an agent in a single endpoint. - --with_browsing option for genesis CLI: Make browsing agent optional in genesis CLI, because the ToolAgent can create schemas for most APIs.
- Azure OpenAI Support: Docs and notebook on how to use agency swarm with Azure are available here.
Bug Fixes
- Fixed main thread from being saved using
threads_callbacks
.
Full Changelog: v0.1.2...v0.1.3
Genesis CLI
New Features
-
Use Genesis Agency directly from CLI - Run the
agency-swarm genesis
command to chat with Genesis Agency directly from your CLI and create your agents and tools more quickly. -
Select multiple agents as the entry point for communication (ChatGPT Mentions Feature) #72 - You can now add multiple agents in the top-level array in
agency_chart
. Then you can start communication directly with those agents using@AgentName
in the terminal or selecting a recipient in Gradio using the dropdown.agency = Agency([ ceo, dev, # you can now add multiple agents in the main thread [ceo, dev], [ceo, va], ])
You can also use autocomplete by pressing the Tab button to fill in the agent's name in the terminal.
-
Shared State For Tools - Now, you have the ability to share state between all tools by using the
self.shared_state
. For instance, you can save state when Agent1 calls a tool inside the run method by usingself.shared_state.set("key", "value")
, and then retrieve it in Agent2 when it calls a different tool usingself.shared_state.get("key")
. This allows you to control the execution logic based on certain conditions or actions performed by other agents. -
Markdown formatting -
agency.run_demo()
method now displays messages using markdown in terminal. -
Tools Directory - Select
tools_folder
when initializing your agent to automatically import all tools from.py
files. The file must be named exactly as the class name of the tool. Each tool should be defined in a separate file. For example, the [ExampleTool.py](http://exampletool.py/) file should haveExampleTool
defined inside. -
Settings Path - When initializing your agency, you can now specify the settings_path parameter to save your agent configurations in a file other than settings.json. For example, you can use settings2.json.
-
Gradio file uploads - You can now upload files directly from the new Gradio interface when running the agency.demo_gradio() command.
Bug Fixes
- OpenAI thread timing out on long running agent tasks #71
- Improved doc strings
Deprecations and Removals
- Refactored genesis agency by moving all tools into corresponding agent folders inside agency/genesis folder.
- I have removed the ability to import tools and agents from Genesis Agency. Instead, we will be focusing on improving Genesis Agency itself, allowing you to create those tools from scratch and giving you more ways to customize them.
Full Changelog: v0.1.1...v0.1.2
Async Agency
Agency Async Release Features
-
Asynchronous Execution Mode:
- Integrated asynchronous execution in the Agency class.
- Allows agents to send tasks without waiting for a response, and check response later with the new
GetResponse
tool - To use, simply set
async_mode='threading'
when initializing the Agency class
-
Database-Backed Agent and Thread Management:
- Added functionality to load and save agent configurations and threads from the database.
- To use, set
settings_callbacks
andthreads_callbacks
when initializing your agency. - Supports stateless backends like serverless functions, enabling conversation continuity between your agents.
-
Other features:
- Dark mode or light mode in demo gradio with
agency.demo_gradio(dark_mode=True)
- Set
settings_path
when initializing yourAgency
- Use the latest
gpt-4-preview
version by default
- Dark mode or light mode in demo gradio with