An asynchronous framework for building LLM-based multi-agent systems in Python, with a focus on trees of immutable messages and token streaming.
Project description
🏛 AgentForum
An asynchronous framework for building LLM-based multi-agent systems in Python, with a focus on:
- Message trees which highly resemble commits in git to facilitate backtracking. Messages are immutable and are identified by hashes based on their content and their history (a hash of the previous message). A single hash represents state of a conversation at a given point in time.
- Message promises and the possibility of token streaming.
MessagePromise
objects are returned before the messages are fully generated. Token streaming is supported regardless of the number of nested levels of agents.
NOTE: While this framework is designed with LLMs in mind, it can be used with any kind of agents.
🧩 Features
- Message forwarding. Messages can be forwarded to become a part of different message branches or trees (much like it is done in messaging apps for humans).
💡 Philosophy
- Agents run as concurrently as possible. When an agent is called with
.call()
or.quick_call()
a task is scheduled andAgentCall
orAsyncMessageSequence
objects are returned immediately. The actual processing will happen upon a task switch. - Stateless agents are encouraged. This is not a hard requirement, but ideally the agents should produce the same output when they are given the same input (the same sequence of messages from a message branch).
🔧 Implementation details
This framework supports Python 3.9 or higher and uses asyncio under the hood.
🌱 Future plans
- Message replies. Technically this will be very similar to message forwarding. The difference will mostly be semantic (in the spirit of mimicking messaging apps for humans).
- Exceptions as part of the message tree. In the future, exceptions raised by agents will be represented as a special type of messages and will be part of the message branches those agents were on when they were raised.
- Optional caching of agent responses (enabled by default). When the same sequence of messages is sent to an agent, the framework will respond with the same sequence of response messages without actually calling the agent.
- Cancellation of agent execution. In the future, it will be possible to cancel the execution of agents before they finish.
⚠️ NOTE: These plans are tentative and may change in the future. ⚠️
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
agentforum-0.0.10.tar.gz
(22.5 kB
view details)
Built Distribution
File details
Details for the file agentforum-0.0.10.tar.gz
.
File metadata
- Download URL: agentforum-0.0.10.tar.gz
- Upload date:
- Size: 22.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.7.1 CPython/3.9.18 Darwin/23.4.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | bc05dc209b5e20a934f9b85ab698d68e095b9a5c43beb7a654e775adfeee4816 |
|
MD5 | a5934d043f1dfb0fea1cc80dc9ce3aec |
|
BLAKE2b-256 | 369243a2a18500e8024b9b8543996f8302111be395f0acef3ca0f06dbffd3dcf |
File details
Details for the file agentforum-0.0.10-py3-none-any.whl
.
File metadata
- Download URL: agentforum-0.0.10-py3-none-any.whl
- Upload date:
- Size: 26.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.7.1 CPython/3.9.18 Darwin/23.4.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f7156c687c7ec6ee1a17960df75ccc4a8a811458da6c615b7ee2ce59c41d81de |
|
MD5 | 2da576ce039e2439a74aa73f5fb69e62 |
|
BLAKE2b-256 | e426cac25b25daa86f50f4ecb0c4b8e55aa294cc08f0daebeb736df1647b93b5 |