Files

90 lines
4.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 讨论:多智能体讨论组
示例演示如何使用 agentUniverse 进行多智能体讨论。
共两个智能体角色:讨论组主持人(一名)和讨论组参与者(若干)。
用户发起一个话题,主持人组织各位参与者开始讨论,每轮每个参与者根据讨论话题发表自己的观点(每个参与者的观点并非一成不变,会随着讨论的深入不断调整),几轮讨论后,主持人会对讨论过程进行总结并将参与者们经过几轮讨论后的结果返回给用户。
三个臭皮匠顶个诸葛亮想象一下你有个想要解答的问题直接交给agentUniverse讨论组主持人将具有不同想法的多个智能体组织在一起对你的问题进行集中讨论最终给你一个全面且聚集智慧的答案这是一个有趣的智能体实验。
## 快速开始
### 配置API密钥
比如在agentUniverse管理私有密钥配置的文件`custom_key.toml`中配置密钥信息讨论组默认使用gpt作为基座模型serper作为google search工具下文讲述其他模型或工具使用方法
```toml
[KEY_LIST]
# serper google search key
SERPER_API_KEY='xxx'
# openai api key
OPENAI_API_KEY='xxx'
```
### 运行讨论组
在agentUniverse的`examples/sample_apps/discussion_group_app`示例工程中找到intelligence/test目录下的`discussion_agents.py`文件chat方法中输入想要解答的问题运行即可。
例如,输入问题甜粽子好吃还是咸粽子好吃
```python
from agentuniverse.base.agentuniverse import AgentUniverse
from agentuniverse.agent.agent import Agent
from agentuniverse.agent.agent_manager import AgentManager
AgentUniverse().start(config_path='../../config/config.toml')
def chat(question: str):
instance: Agent = AgentManager().get_instance_obj('discussion_group_agent')
instance.run(input=question)
if __name__ == '__main__':
chat("甜粽子好吃还是咸粽子好吃")
```
### 效果演示
甜粽子好吃还是咸粽子好吃:
![演示图片](../../_picture/sweet_or_salted_zongzi.png)
中医好还是西医好:
![演示图片](../../_picture/chinese_or_western_medicine.png)
## 更多细节
### 智能体配置
讨论组多智能体配置文件在`examples/sample_apps/discussion_group_app`示例工程中的intelligence/agentic/agent/agent_instance/discussion_agent_case目录下。
讨论组对应`discussion_group_agent.yaml`,参与者对应`participant_agent_*.yaml`
prompt通过版本号管理例如discussion_group_agent的默认prompt_version为`discussion_group_agent.cn`对应prompt文件为intelligence/agentic/prompt目录下的`discussion_group_agent_cn.yaml`
llm_model若修改为其他模型如qwen模型请更改`llm_model` name信息如aU系统内置的`qwen_llm`)。
agent中的round讨论轮数默认为2用户可以按需调整默认参与者为aU内置的两个智能体可以通过建立新的智能体并配置agent name在`participant`中增加讨论组成员。
```yaml
info:
name: 'discussion_group_agent'
description: 'discussion group agent'
profile:
llm_model:
name: 'qwen_llm'
temperature: 0.6
total_round: 2
participant_names:
- 'participant_agent_one'
- 'participant_agent_two'
memory:
name: 'demo_memory'
metadata:
type: 'AGENT'
module: 'discussion_group_app.intelligence.agentic.agent.agent_template.discussion_group_template'
class: 'DiscussionGroupTemplate'
```
### Memory配置
aU讨论组的参与者默认配置了`examples/sample_apps/discussion_group_app`示例工程中的`demo_memory`,用于存储整个讨论组的公共记忆信息。
### Prompt配置
prompt通过版本号管理aU讨论组智能体默认prompt文件配置在intelligence/agentic/prompt目录下对应中英文两种版本discussion_group_agent_xx.yaml/participant_agent_xx.yaml用户可以在智能体配置中更改prompt_version完成快速切换。
### Tool配置
aU讨论组的两位参与者默认配置了google_search_tool用户可以更改`examples/sample_apps/discussion_group_app`示例工程中的intelligence/agentic/agent/agent_instance/discussion_agent_case目录下`participant_agent_xxx.yaml`中的`tool name`,实现工具调用的切换。