Agent Relation And Communication Architecture Theory Proposal #39
Replies: 10 comments 16 replies
-
I love this |
Beta Was this translation helpful? Give feedback.
-
I had something similar drawn up. From a technical PoV, I think that one huge problem is the threads... how does an agent know whether it should direct it's next response to it's parent up the chart, or a child down the chart from it. We could have a thread for each possible agent the current one could talk too, but how would information be shared between channels... i.e how would an information request from a low layer agent be passed up. I realized you would need each agent to have a thread with itself, where all threads it belongs to post their chat history each update to the "self-thread". the "self-thread" will the make outputs telling the assistant which thread to continue the conversation with next... effectively triage for communication. |
Beta Was this translation helpful? Give feedback.
-
@daveshap have you seen the "agency" project? I am not affiliated with them, but it feels like there are some things you could use from there (agent spaces, invoking other agents, talking to other systems etc.). Check it out here: https://github.com/operand/agency |
Beta Was this translation helpful? Give feedback.
-
Thinking about agents as machines, the communication protocols for M2M have been widely developed already. It could be that using something like MQTT, each tier would have a Topic to which any agent would post, that would be async so that all agents within the Topic could hear what others are saying and update it states each iteration with the latest information posted. I think this communication scheme should follow standard IoT methods for streaming data. Considering Tiers as MQTT (or similar) Topics, there would be a topic for each tier and maybe a topic for bridging between tiers. This would also ensure communication flows both ways, that is, the firing order should return information to the higher tier personas, a feedback loop of information and transparent across the tier participants |
Beta Was this translation helpful? Give feedback.
-
Considering that the SOB will have 1 input and 1 output channel, we could use it as I have seen with Professor Synapse. It calls several specialists in a single chat. This could help reduce API costs by not having to send a SOB agent's conversation to all other SOB members. as in the example I made in the link. SOB chat |
Beta Was this translation helpful? Give feedback.
-
I just came out of my own Strategy planning session at work and was curious how much we want to emulate how organizations handle goal setting that cascades from the top-down. Thoughts? Is this solving a problem that doesn't exist? TL;DR: Implementing Dynamic OKRs within HAAS for Enhanced Goal Realization Objectives and Key Results (OKRs) are a goal-setting framework that enhances strategic alignment, operational efficiency, and accountability through measurable results. They drive focus on what matters most, promoting transparency and engagement. In the context of HAAS, integrating OKRs could significantly bolster agents' ability to rapidly and efficiently self-organize towards mission-critical outcomes.
|
Beta Was this translation helpful? Give feedback.
-
I'm new to this space but given how rigid the hierarchical structure is I see a potential issue down the line Organizational InertiaThe effectiveness of large hierarchies, like those in big corporations, can be hindered by organizational inertia. I see a lot of potential for middle management reinventing wheels. I'm particularly concerned with two areas: Improving Agent Development: Knowledge about building and evaluating agents should not be isolated or scattered. Better to have a system where improvements in agent design are quickly shared with upper management and tested at each level. This would allow for consistent updates and enhancements across the entire hierarchy. Access to Essential Tools: Universally beneficial tools, like advanced web search and summary tools, should be easily accessible to all agents. Perhaps each tool's description is put in a lookup table that a manager can search when creating new agents. Curious to hear potential remedies for this, these discussions are very exciting |
Beta Was this translation helpful? Give feedback.
-
Yeah, well thought out swarm-gpt dynamics. Let's see how it performs after building it :) |
Beta Was this translation helpful? Give feedback.
-
Proposal for single process event loop Message SystemIdea: Pros:
Cons:
Conclusion: |
Beta Was this translation helpful? Give feedback.
-
Hello, I hope I'm right here. When I look at the picture in first post, I see similiarities with the ACE image. In ACE there is an hierarchy (the layer on top is more important than on the bottom) and every layer has it's own tier (Aspirational - tier 1, Global strategy - tier 2, ...), like in HAAS. So why not implement a communication, like in ACE. There will be a North-bound communication channel, and South-bound channel. Every Agent will be able to read and filter communication in these channels and also write to them. This is just an idea. Maybe it is, maybe it is not sufficient. Needs more thinking, discussions and experiments. |
Beta Was this translation helpful? Give feedback.
-
TL;DR:
I propose two ideas for agent communication and regulation. Each agent follows a sequence of steps in a tick, including executing actions, checking context, reviewing goal progress, queuing actions, and reporting to upper-level agents. The SOB agents have the authority to review and intervene in agent threads to ensure adherence to directives
Problems
I have done my best to keep this post as short, dense, actionable, and contained as possible. Feedback and thoughts welcome.
There are two problems I will address that are intimately related:
The ideas I have are very high level, and I do not propose a code implementation yet. I want to work through the high-level architecture and receive feedback before getting into the code of my proposed solution.
Terms
High level agent: Agent closer to the SOB, broad strategic goals
Low level agent: More specialized and task-oriented
Sub-agents: Any agent that is not an SOB agent or an executive agent
Regulation: the process by which the SOB and executive agents ensure sub-agents are keeping to guidelines and solving tasks effectively and efficiently.
Agent communication: The process by which agents communication with each other, including:
Thread: Every sub-agent has it’s own “thread” in which every action it has taken is logged, sequentially, paired with the feedback that it received for that action from it’s parent agent. Threads will be stored in a vector-store of choice on a per-agent basis (Pinecone or Weaveiate). When agents are terminated, their individual action/feedback store context is deleted as well. Each time an agent takes an action, the store is updated with that action. Each time a parent agent gives feedback on that action, that agent’s thread is updated to reflect the feedback.
Agent Context: An agent’s context is all of the information that the agent knows about the problem at hand, including general knowledge, tools it has access to, it’s current thread, the threads of each of it’s children, etc. SOB agents have access to ALL threads. High-tier agents have access to low-tier agent threads, but low-tier agents do not have access to high-tier agent threads. Each agent (with the exception of SOB agents) can only 'talk' (enter information into it's thread) to its parent and any children that it has.
Tick: The highest-level concept in the agent swarm simulation. Each tick represents one step of the simulation, or one unit of time. Each tick, every agent (SOB agents, executive agents, and sub-agents) ”fires” ************************(i.e. performs the following five tasks in order):
Agent Firing Order
When an agent “fires”, they complete the above 5 steps. The order that sub-agents fire in is important. See the diagram below:
Agents fire recursively from bottom to top in a depth first approach. After each tick (i.e., all of the executive level agents have fired ONCE).
Below is more detail about each tick:
1. Execute action from previous tick
At the start of each tick, when the agent fires, it completes the action that was queued from the previous tick.
2. Check Known Context
This includes feedback on the previous tick from the parent agent, reports from child agents, general agent guidebook baseline understanding, the overall goal it is trying to accomplish, and any other context that the agent might have. Any agent does not need to see too much context - JUST reports from child agents, feedback from parent agent, goal, and it’s own action history paired with the feedback from the parent agent after each action.
3. Review goal progress
From the context, the agent reviews what it’s goal is in preparation for the next step, logging to it’s own thread. In addition, the agent reviews the progress from it’s children agents and gives feedback to each in each agent’s respective thread. If any of the children queued actions is problematic, then this is the stage where an edit to the thread can be made by this agent, and the action can be cancelled and feedback on why can be given.
4. Queue an action based on the context
After the agent has reviewed it’s own context, the agent chooses an action to take from the actions that are available to it and then queues that action. The action metadata is logged in the thread history for this agent, but the action is not performed yet. This is so that there is a chance for the parent agent to overrule the action.
5. Report/summarize progress to upper-level agent.
This is a critical step. In this step, the agent reports on all that it did in this step, and summarizes to the parent agent for review.
SOB Intervention:
The SOB agents have an opportunity to review ALL PROGRESS that it would like to check from the tick that just happened. The SOB board can collectively review each thread, starting with the executive board threads for each agent, and if it deems there is a problem in the thread, it can choose to investigate the threads of child agents. If the SOB thinks that an agent is not following it’s directives, it can choose to modify, add, or delete anything from the thread for that agent (including giving it tasks to do next, or even deleting the agent and it’s sub agents entirely). After the SOB has reviewed what it wants to, then the next tick begins.
What I did not cover
I did not talk about specific communication channels, or technically how communication would work. I also did not hash out SOB chat room communication, but I do have thoughts on that that I will share later.
Let me know what you think, and let’s see how we can improve on this idea!
Beta Was this translation helpful? Give feedback.
All reactions