入门

AutoGen是一个框架,它支持使用多个代理开发LLM应用程序,这些代理可以像人类一样相互沟通协作以解决任务。AutoGen代理是可定制的、可对话的,并且支持人类参与其中。它们可以在采用LLM、人工输入和工具的组合的各种模式下操作。

AutoGen框架架构

AutoGen由微软、宾夕法尼亚州立大学和华盛顿大学的合作研究提供动力。

主要特点

AutoGen使构建下一代LLM应用程序的基础上,多代理对话,以最小的努力。它简化了复杂的LLM工作流程的编排,自动化和优化。它最大限度地提高了LLM模型的性能,并克服了它们的弱点。

  • 支持复杂工作流的多种对话模式。通过可定制和可转换的代理,开发人员可以使用AutoGen构建各种关于会话自主性的会话模式、代理的数量和代理会话拓扑。
  • 提供了具有不同复杂性的工作系统的集合。这些系统跨越来自各种领域和复杂性的广泛应用。它们演示了AutoGen如何轻松支持不同的对话模式。
  • 提供了openai.Completionopenai.ChatCompletion的直接替代品,作为增强的推理API。它允许轻松的性能调优,API统一缓存等实用程序,以及高级使用模式,如错误处理、多配置推理、上下文编程等。

Quickstart

从pip安装:

1
pip install pyautogen

安装文档中查找更多选项。对于代码执行,我们强烈建议安装python docker包,并使用docker。

多Agent会话框架

Autogen使下一代LLM应用程序具有通用的多代理对话框架。它提供了可定制和可转换的代理,集成了LLM,工具和人。通过在多个有能力的代理之间自动化聊天,可以很容易地使它们共同自主执行任务或人工反馈,包括需要通过代码使用工具的任务。比如说:

1
2
3
4
5
6
7
8
9
10
from autogen import AssistantAgent, UserProxyAgent, config_list_from_json

# Load LLM inference endpoints from an env variable or a file
# See https://microsoft.github.io/autogen/docs/FAQ#set-your-api-endpoints
# and OAI_CONFIG_LIST_sample.json
config_list = config_list_from_json(env_or_file="OAI_CONFIG_LIST")
assistant = AssistantAgent("assistant", llm_config={"config_list": config_list})
user_proxy = UserProxyAgent("user_proxy", code_execution_config={"work_dir": "coding"})
user_proxy.initiate_chat(assistant, message="Plot a chart of NVDA and TESLA stock price change YTD.")
# This initiates an automated chat between the two agents to solve the task

AutoGen对话流程示例

增强的LLM推断

Autogen还有助于最大限度地利用昂贵的LLM,如ChatGPT和GPT-4。它提供了openai.Completionopenai.ChatCompletion的直接替代品,具有强大的功能,如调优,缓存,错误处理,模板。例如,您可以使用自己的调优数据,成功指标和预算通过LLM优化生成:

1
2
3
4
5
6
7
8
9
10
11
12
# perform tuning
config, analysis = autogen.Completion.tune(
data=tune_data,
metric="success",
mode="max",
eval_func=eval_func,
inference_budget=0.05,
optimization_budget=3,
num_samples=-1,
)
# perform inference for a test instance
response = autogen.Completion.create(context=test_instance, **config)

下一步去哪里?