一. 简介
直观公式
Agent = LLM+Planning+Feedback+Tool use
Agent决策流程
1.感知(Perception)是指Agent从环境中收集信息并从中提取相关知识的能力。
2.规划(Planning)是指Agent为了某一目标而作出的决策过程。
3.行动(Action)是指基于环境和规划做出的动作。
Agent通过感知从环境中收集信息并提取相关知识。然后通过规划为了达到某个目标做出决策。最后,通过行动基于环境和规划做出具体的动作。Policy是Agent做出行动的核心决策,而行动又为进一步感知提供了观察的前提和基础,形成了一个自主的闭环学习过程。
为Agent创建一个目标或主任务后,主要分为以下三个步骤:
- 获取第一个未完成的任务
- 收集中间结果并储存到向量数据库中
- 创建新的任务,并重新设置任务列表的优先级
二.实现:通过autogen来实现
1.安装autoagen
pip install openai
pip install pyautogen
2.把配置填写到config_list上
config_list = [{'model': 'gpt-3.5-turbo', 'api_key': '<your OpenAI API key here>'}]
3.创建程序
1.引入并实例化出用户代理对象和助手代理对象
from autogen import AssistantAgent, UserProxyAgent
assistant = AssistantAgent(
name="Magic",
llm_config={
"seed": 42, # seed for caching and reproducibility
"config_list": config_list, # a list of OpenAI API configurations
"temperature": 0, # temperature for sampling
}, # configuration for autogen's enhanced inference API which is compatible with OpenAI API
)
user_proxy = UserProxyAgent(
name="user_proxy",
max_consecutive_auto_reply=2,
is_termination_msg=lambda x: x.get("content", "").rstrip().endswith("TERMINATE"),
code_execution_config={
"work_dir": "coding",
"use_docker": True, # set to True or image name like "python:3" to use docker
},
llm_config={"config_list": config_list}
)
2.使用initiate_chat函数进行推理
user_proxy.initiate_chat(
assistant,
message="""告诉我今天的气温"""
,clear_history = True
)
3.完整代码
from autogen import AssistantAgent, UserProxyAgent, config_list_from_json
config_list = [{'model': 'gpt-3.5-turbo', 'api_key': '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'}]
assistant = AssistantAgent(
name="Monika",
llm_config={
"seed": 42, # seed for caching and reproducibility
"config_list": config_list, # a list of OpenAI API configurations
"temperature": 0, # temperature for sampling
}, # configuration for autogen's enhanced inference API which is compatible with OpenAI API
)
user_proxy = UserProxyAgent(
name="user_proxy",
max_consecutive_auto_reply=2,
is_termination_msg=lambda x: x.get("content", "").rstrip().endswith("TERMINATE"),
code_execution_config={
"work_dir": "coding",
"use_docker": True, # set to True or image name like "python:3" to use docker
},
llm_config={"config_list": config_list}
)
user_proxy.initiate_chat(
assistant,
message="""告诉我今天的气温"""
,clear_history = True
)