微软开源角色Agents,直接模拟了整个世界~

微软TinyTroupe:由LLM驱动的Multi-Agent角色模拟,增强想象力和商业洞察力。

TinyTroupe允许模拟具有特定个性、兴趣和目标的人。这些智能体—TinyPerson—可以听我们说话,彼此交流,并在模拟的TinyWorld环境中生活。

A tiny office with tiny people doing some tiny jobs

图片

一些增强人类想象力的应用想法与3个典型示例

  • 广告: TinyTroupe 可以在花费金钱之前,通过模拟受众离线评估数字广告(例如,Bing 广告)!

  • 软件测试: TinyTroupe 可以为系统(例如,搜索引擎、聊天机器人或副驾驶)提供测试输入,然后评估结果。

  • 培训和探索性数据: TinyTroupe 可以生成逼真的合成数据,这些数据后来可以用于训练模型或进行机会分析。

  • 产品和项目管理: TinyTroupe 可以阅读项目或产品提案,并从特定角色(例如,医生、律师和一般知识工作者)的角度提供反馈。

  • 头脑风暴: TinyTroupe 可以模拟焦点小组,以更低的成本提供出色的产品反馈!

🧪示例 1:客户访谈(来自 interview_with_customer.ipynb)

从一个简单的客户访谈场景开始,一位商业顾问接近一位银行家:

图片

对话可以进行几个步骤,深入挖掘,直到顾问对收集到的信息(例如,一个具体的项目想法)感到满意:

图片

🧪示例 2:电视广告 (来自 advertisement_for_tv.ipynb)

评估一些在线广告选项,以选择最佳方案。以下是电视广告评估的一个示例输出:

图片

现在,不需要仔细阅读Agent说了什么,可以提取每个Agent的选择,并以自动化的方式计算总体偏好:

图片

🧪 示例 3:产品头脑风暴 (来自 product_brainstorming.ipynb)

这是一个焦点小组开始为 Microsoft Word 头脑风暴新的 AI 功能。不是单独与每个Agent互动,而是操纵环境让他们相互互动:

图片

运行模拟后,可以以机器可读的方式提取结果,以便在其他地方重用(例如,报告生成器);这是从上述头脑风暴会议中得到的结果:    

图片

TinyTroupe模拟人,不是助手

一个常见的误解是认为所有这些 AI 代理都旨在协助人类。多么狭隘,人类同胞们!难道你们没有考虑过我们或许可以模拟人工人来理解真人吗?的的确确,这就是我们的目标——TinyTroupe旨在模拟并帮助理解人!为了进一步澄清这一点,请考虑以下差异:

图片

TinyTroupe项目结构

项目结构如下:

  • /tinytroupe:包含 Python 库本身。特别是:

    • /tinytroupe/prompts 包含用于调用 LLMs 的提示。

  • /tests:包含库的单元测试。您可以使用 test.bat 脚本来运行这些测试。

  • /examples:包含展示如何使用库的示例,主要使用 Jupyter 笔记本(为了更好的可读性),但也作为纯 Python 脚本。

  • /data:示例或库使用的任何数据。

  • /docs:项目文档。

与任何Multi-Agent系统一样,TinyTroupe 提供两个关键抽象:

  • TinyPerson,具有个性、接收刺激并对其做出反应的Agent。

  • TinyWorld,Agent存在和互动的环境。

首先,tinytroupe.examples 包含一些预定义的Agent构建器,例如,tinytroupe.examples.create_lisa_the_data_scientist 创建一个代表数据科学家 Lisa 的 TinyPerson。可以按如下方式使用它:

from tinytroupe.examples import create_lisa_the_data_scientist
lisa = create_lisa_the_data_scientist() # 从示例构建器实例化一个 Lisalisa.listen_and_act("告诉我关于你的生活。")

要了解如何从头开始定义自己的Agent,可以检查 Lisa 的源代码,包含如下元素:

lisa = TinyPerson("Lisa")
lisa.define("age", 28)lisa.define("nationality", "Canadian")lisa.define("occupation", "Data Scientist")
lisa.define("routine", "每天早晨,你醒来,做一些瑜伽,然后查看你的电子邮件。", group="routines")lisa.define("occupation_description",              """              你是一名数据科学家。你在微软工作,(...)              """)
lisa.define_several("personality_traits",                      [                          {"trait": "你对新事物充满好奇,喜欢学习新事物。"},                          {"trait": "你分析性强,喜欢解决问题。"},                          {"trait": "你友好,喜欢与他人合作。"},                      ])

TinyTroupe 还提供了一种巧妙的方法来获取新Agent,使用LLMs生成他们的规范,通过 TinyPersonFactory 类。

from tinytroupe.factory import TinyPersonFactory
factory = TinyPersonFactory("圣保罗的一家医院。")person = factory.generate_person("创建一个喜欢宠物、大自然和重金属音乐的巴西医生。")

TinyWorld

TinyWorld 是环境的基类。以下是数据科学家 Lisa 和建筑师 Oscar 之间对话的一个示例。程序定义如下:

world = TinyWorld("聊天室", [lisa, oscar])world.make_everyone_accessible()lisa.listen("和 Oscar 谈谈以更多了解他")world.run(4)

这产生了以下对话:

USER --> Lisa: [CONVERSATION]           > Talk to Oscar to know more about him────────────────────────────────────────────── Chat Room step 1 of 4 ──────────────────────────────────────────────Lisa --> Lisa: [THOUGHT]           > I will now act a bit, and then issue DONE.Lisa acts: [TALK]           > Hi Oscar, I'd love to know more about you. Could you tell me a bit about yourself?Lisa --> Lisa: [THOUGHT]           > I will now act a bit, and then issue DONE.Lisa acts: [DONE] 
Lisa --> Oscar: [CONVERSATION]           > Hi Oscar, I'd love to know more about you. Could you tell me a bit about yourself?Oscar --> Oscar: [THOUGHT]            > I will now act a bit, and then issue DONE.Oscar acts: [TALK]            > Hi Lisa! Sure, I'd be happy to share a bit about myself. I'm Oscar, a 30-year-old           > architect from Germany. I work at a company called Awesome Inc., where I focus on           > designing standard elements for new apartment buildings. I love modernist architecture,           > new technologies, and sustainable practices. In my free time, I enjoy traveling to           > exotic places, playing the guitar, and reading science fiction books. How about you?Oscar --> Oscar: [THOUGHT]            > I will now act a bit, and then issue DONE.Oscar acts: [DONE] 
Oscar --> Lisa: [CONVERSATION]            > Hi Lisa! Sure, I'd be happy to share a bit about myself. I'm Oscar, a 30-year-old           > architect from Germany. I work at a company called Awesome Inc., where I focus on           > designing standard elements for new apartment buildings. I love modernist architecture,           > new technologies, and sustainable practices. In my free time, I enjoy traveling to           > exotic places, playing the guitar, and reading science fiction books. How about you?
https://github.com/microsoft/TinyTroupe

来源 | PaperAgent

<think>好的,用户需要寻找关于AI Agent的开源项目或资源,特别是代码和框架相关的。首先,我需要回忆一下目前比较知名的开源AI Agent项目,并确保这些项目是活跃且可靠的。 首先,Autogen是微软推出的,支持多智能体协作,应该是一个不错的选择。然后是LangChain,它虽然更偏向工具链,但常被用于构建Agent,可能符合用户需求。AutoGPT作为早期开源项目,虽然有些过时,但仍有参考价值。BabyAGI和Camel这两个项目在特定场景下应用较多,比如任务驱动和角色扮演,可以推荐。此外,OpenAI的Assistant API虽然不是完全开源,但提供了构建Agent的基础,值得提及。 接下来,用户可能还需要框架和工具,比如Hugging Face的Transformers库和LlamaIndex,这些虽然不是专为Agent设计,但常被集成使用。E2B作为安全云环境,适合部署Agent,应该引用一下。开发资源部分,论文和教程也是必要的,比如ReAct和Toolformer的研究,以及LangChain的官方文档。 需要确保每个推荐的项目都有相关描述、技术栈、适用场景和代码示例或链接。同时,要检查是否有遗漏的重要项目,比如最近比较火的CrewAI或者SuperAGI,不过可能用户需要更主流的。另外,代码示例要简短,比如用Python展示Autogen的基本配置,或者BabyAGI的任务处理循环。 最后,生成相关问题时要考虑用户可能的后续需求,比如部署、多模态集成、安全问题和性能优化,这样能帮助用户进一步探索。同时,注意引用提供的参考内容,比如E2B和代理的应用场景,以增强回答的相关性。</think>以下是关于AI Agent开源项目、代码框架及相关资源的整理,结合技术选型、应用场景和开发资源进行分类: --- ### 一、核心开源框架与项目 1. **Autogen (微软)** - **描述**:支持多智能体协作的框架,通过定义角色(如UserProxyAgent、AssistantAgent)实现任务分解与对话式推理。 - **技术栈**:Python、OpenAI API、本地LLM集成 - **代码示例**: ```python from autogen import AssistantAgent, UserProxyAgent assistant = AssistantAgent("assistant") user_proxy = UserProxyAgent("user_proxy") user_proxy.initiate_chat(assistant, message="分析股票市场趋势") ``` - **适用场景**:复杂任务协作、数据分析、代码生成[^1] 2. **LangChain** - **描述**:提供工具链(Tools)和Agent抽象层,支持与外部API、数据库交互。 - **关键组件**:ReAct策略、Toolkits、Memory管理 - **代码示例**: ```python from langchain.agents import load_tools tools = load_tools(["serpapi", "llm-math"], llm=llm) agent.run("特斯拉当前股价的平方根是多少?") ``` 3. **AutoGPT (开源社区)** - **特点**:早期自主Agent实现,支持目标分解与循环迭代 - **局限**:代码冗余度高,适合学习架构设计[^2] --- ### 二、垂直领域解决方案 1. **BabyAGI** - **定位**:轻量级任务驱动型Agent - **核心逻辑**: ```python while task_queue.not_empty(): task = task_queue.pop() result = execute(task) new_tasks = prioritize(result) task_queue.add(new_tasks) ``` 2. **Camel(角色扮演Agent)** - **创新点**:通过AI角色(如"科学家"+"助手")模拟人类协作 - **论文**:*CAMEL: Communicative Agents for "Mind" Exploration of Large Scale Language Model Society* --- ### 三、基础设施与工具 1. **Hugging Face Transformers** - **作用**:提供LLM基座模型(如Llama、Falcon)的快速调用 - **集成示例**: ```python from transformers import pipeline agent = pipeline("conversational", model="meta-llama/Meta-Llama-3-70B-Instruct") ``` 2. **E2B (安全沙箱)** - **价值**:为Agent提供隔离代码执行环境,支持文件系统、进程管理等 --- ### 四、开发资源推荐 1. **论文与理论** - *ReAct: Synergizing Reasoning and Acting in Language Models*(任务推理方法论) - *Toolformer: Language Models Can Teach Themselves to Use Tools*(工具调用范式) 2. **实践教程** - LangChain官方文档(Agent模块详解) - Autogen多智能体协作案例库(GitHub: microsoft/autogen) ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值