Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Hierarchical Multi Agents rfc #29

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

xuechendi
Copy link
Collaborator

No description provided.

@hshen14
Copy link
Contributor

hshen14 commented Jun 29, 2024

@xuechendi OPEA Agent RFC was created: #26. Suggest taking that as the base and add your improvements. @ftian1

Signed-off-by: Chendi Xue <chendi.xue@intel.com>
@xuechendi
Copy link
Collaborator Author

@ftian1 @minmin-intel @XuhuiRen, I have move all content from 'WORD' version RFC to this PR.
Is it OK that we merge current version as it is and update later?


configuration:
```
strategy: choices([react, planexec, humanInLoopPlanExec])
Copy link

@irisdingbj irisdingbj Jul 11, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what is the difference between these stratety choices?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

options here are common strategies for Agent, and we will add more strategies in future.
here are some high-level explaination for each strategy

react: https://react-lm.github.io/
plan_exec: https://langchain-ai.github.io/langgraph/tutorials/plan-and-execute/plan-and-execute/
human_in_the_loop: https://langchain-ai.github.io/langgraph/how-tos/human_in_the_loop/breakpoints/

llm_endpoint_url: str
llm_engine: choices([tgi, vllm, openai])
llm_model_id: str
recursion_limit: int
Copy link

@irisdingbj irisdingbj Jul 11, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

any description for these fields? Better we have some schema definition for the configurations.

Copy link
Collaborator Author

@xuechendi xuechendi Jul 12, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good suggestion, I think we can add term explaination in actual codes readme / template configuration yaml.

'recursion_limit' is not a must_to_provide argument, default will be 5. This keyword is used to ask agent to break after several tests. For example:

If we asked agent to get today's intel stock price but not providing right tools, agent will not get the exact answer and fall into a dead loop, in which the Agent will try to fix its prompt and plan back and forth). By adding 'recursion_limit', if one agent can't get answer after 'recursion_limit' times of tests, agent will direct return to user with no answer.


#### Part3.1 Hierarchical Multi Agents
__Example 1__: ‘Single Agent megaservice’
Only 1 agent is presented in this configuration.
Copy link

@irisdingbj irisdingbj Jul 12, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this Agent configuration written by developer or auto-generated? Can it be adjusted on the fly?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The 'opea_micro_service' and 'opea_mega_service' configuration should be prepared by enterprise devops team. For docker-based side, ip and port should be provided. For GMC/k8s side, we should leverage a python script to obtain domain_name:port from k8s.

The 'tool' yaml should be generated by enterprise developer according to their company tools/available APIs, and then end_user should be able to cherry-pick some tools from the tool store.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this Agent configuration written by developer or auto-generated? Can it be adjusted on the fly?

Yes, tools will also be adjusted on the fly. There is keyword -> 'tools' in ChatCompletion or Assistants to call out which tools will be used

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants