hotfix: Fix agent-not-found errors: only route refinement to registered agents#602
Open
gsarchioni wants to merge 1 commit intoed-donner:mainfrom
Open
hotfix: Fix agent-not-found errors: only route refinement to registered agents#602gsarchioni wants to merge 1 commit intoed-donner:mainfrom
gsarchioni wants to merge 1 commit intoed-donner:mainfrom
Conversation
Author
|
Hi @ed-donner - please review this PR. I noticed an issue with the |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
When an agent tried to bounce an idea off another agent, the runtime could log:
ERROR:autogen_core:Agent agent2 not found, failed to deliver message.find_recipient()was choosing from everyagent*.pyfile on disk. With many concurrent requests, some agents (e.g. agent20) are registered and run before others (e.g. agent2). Picking agent2 before it was registered caused the delivery failure.Solution
REGISTERED_AGENTSandregister_agent()inmessages.py. The Creator callsregister_agent(agent_name)after each successful registration with the runtime.find_recipient()now selects only fromREGISTERED_AGENTSinstead of from allagent*.pyfiles.find_recipient(exclude=...)excludes the current agent so we don’t send to ourselves. It returnsNonewhen there is no valid recipient; the agent then skips the bounce and returns its idea as-is.from agent import Agentinworld.py; the module only definesAgentCreator.Files changed
messages.py–REGISTERED_AGENTS,register_agent(),find_recipient(exclude)with registered-only selectioncreator.py– callmessages.register_agent(agent_name)after registering an agentagent.py– usefind_recipient(exclude=self.id.type)and only bounce whenrecipient is not Noneworld.py– remove invalidAgentimport