2_Agent_Langchain代理入门
1 工具 Tool
1.1 设置
需要设定如下内容,以便和 LLM 交互,名称、描述和 JSON
都在提示中使用。
名称(必需)
描述(可选)
输入的结构(可选)
函数的具体实现(需要在 langchain 中定义)
其它参数,如:是否将工具结果直接返回给用户
1.2 自定义工具
创建实现具体功能的函数。
12345678910from langchain.tools import tool@tooldef search(query: str) -> str: """Look up things online.""" return "LangChain"print(search.name) print(search.description) print(search.args)
用 tool
装饰器,能自动生成名字描述等内容。这是最简单的一种方法,其它方法见:参考文档的自定义工具链接。
建议开始用 tool 装饰器,后面复杂了再切换到 BaseTool 方法。
2 Agent 原理
A ...
AutoGenStudio
1 引言
在产品级开发时,开发人员必须为这些系统配置大量参数。这些参数包括定义代理(如:要使用的模型、提示、代理可用的工具或技能、代理可以采取的行动步骤数、任务终止条件等)以及通信和编排机制(即代理在协作完成任务时的行为顺序)。
相较于 Coze 和 Dify,AutoGen
仍处于实验阶段,功能相对简单且不够完善。其主要展示的是自动生成程序和执行程序的过程。
2 相关论文
12345678英文名称: AUTOGEN STUDIO: A No-Code Developer Tool for Building and Debugging Multi-Agent Systems中文名称: AUTOGEN STUDIO:一个用于构建和调试多代理系统的无代码开发者工具链接: http://arxiv.org/abs/2408.15247v1代码: https://github.com/microsoft/autogen/tree/autogenstudio/samples/apps/autogen-studio帮助文档:https://microsoft.github.io/autogen/d ...
大模型代理框架AutoGen_实战篇
这文讲解了如何安装和使用 Microsoft 的 Autogen
工具。它能让多个“代理”协作完成任务,比如对话管理、调用工具等。文中还介绍了关键组件
ConversableAgent 和
GroupChat,以及一些实用的示例程序,比如绘制股票走势图、执行代码等,帮助用户轻松上手并解决复杂问题。
1 安装
1pip install pyautogen
2 源码
1git clone https://github.com/microsoft/autogen
下载了 2.2G,其中 2.1G 在.git 文件夹下,其余约
60M。只需关注主分支即可。
核心代码位于 autogen/agentchat 目录,核心组件包括:conversable_agent
和 groupchat。
conversable_agent:用于管理每个角色的行为。
agent ->
ConversableAgent:会话的基类,一般不直接使用,而是作为其他类的父类。它能保持对话状态、历史记录,并调用其他工具。
Agent 可以指定自己在什么情况下被调用,比 Tool 或 function
更强大。
...
大规模监控人工智能修改内容:以ChatGPT对人工智能会议同行评审的影响为例
ReAct 论文
12345678910英文名称: REACT: SYNERGIZING REASONING AND ACTING IN LANGUAGE MODELS中文名称: ReAct:在语言模型中协同推理与行动链接: https://arxiv.org/abs/2210.03629简版文档(推荐):https://react-lm.github.io/代码: langchain中包含React实现作者: Shunyu Yao∗*, Jeffrey Zhao , Dian Yu , Nan Du , Izhak Shafran , Karthik Narasimhan, Yuan Cao机构: 谷歌研究院,普林斯顿大学日期: 2023-03-10引用次数: 1300
读后感
正文 9 页,全文 33 页,后面都是具体例子的展示。
之前的方法通常是先思考,将大问题拆解成小步骤(step-by-step)后再执行。然后,当其中一步出错时,可能会导致接连的错误。ReAct
方法在每步执行后,将观察到的结果和最初问题一起交给大模型,以修正下一步动作,从而获得更好的效果。也就是说,在每个时 ...
AutoGen:通过多 Agent 对话实现下一代 LLM 应用
12345678英文名称: AutoGen: Enabling Next-Gen LLM Applications via Multi-Agent Conversation中文名称: AutoGen:通过多 Agent 对话实现下一代 LLM 应用链接: http://arxiv.org/abs/2308.08155v2代码: https://github.com/microsoft/autogen作者: Qingyun Wu, Gagan Bansal, Jieyu Zhang, Yiran Wu, Beibin Li, Erkang Zhu, Li Jiang, Xiaoyun Zhang, Shaokun Zhang, Jiale Liu, Ahmed Awadallah, Ryen W. White, Doug Burger, Chi Wang机构: 微软研究, 宾夕法尼亚州立大学, 华盛顿大学, 西安电子科技大学日期: 2023-08-16引用次数: 363
1 摘要
目标:介绍 AutoGen 的设计和功能。
方法:利用多个代理进行对话,实现任务完成。
结论:AutoGe ...
8_Agent讨论
1 Agent 怎么选
1.1 引言
可以说,agent
是一种解决问题的思路(道),具体的工具(术)并不重要。但在程序中,它仍需要一个具体的形态。由于时间有限,我只调研了目前
GitHub 上最热门的 agent 工具,也查看了一些项目中自行实现的 agent
代码。最终选择了 autogen。
1.2 目标
首先,明确选型的目的是什么:
支持我需要的所有功能,减少自定义开发。
易于理解和使用,学习成本低,安装和打包方便。
高稳定性和灵活性。
便于未来扩展。
具体选择还要根据所需功能来决定。如果只是做一个以闲聊为主、偶尔调用现有工具的聊天机器人,可以使用
langchain。如果涉及较多功能、偏重于 Agent
应用、工具之间有复杂逻辑,或者觉得 langchain
无法满足需求,可以尝试 autogen。
1.3 选择工具
langchain
就像一家初创公司,只有几个员工,扁平化管理。在事务简单人也少的时候还能应付,但一旦人多事杂,就会变得混乱。即使没有一个主管,也至少一套制度规则,满足常用功能。Langchain
的 agent
主要在结构上较弱,而不是功能性差。其它一些更 ...
RAG综述
12345678英文名称: Retrieval-Augmented Generation for Large Language Models: A Survey中文名称: 大型语言模型的检索增强生成:一项调查链接: http://arxiv.org/abs/2312.10997v5作者: Yunfan Gaoa, Yun Xiongb, Xinyu Gaob, Kangxiang Jiab, Jinliu Panb, Yuxi Bic, Yi Daia, Jiawei Suna, Meng Wangc, and Haofen Wang a,c机构: 上海智能自主系统研究所, 同济大学, 上海数据科学重点实验室, 复旦大学, 创意设计学院, 同济大学日期: 2023-12-18引用:499
1 摘要
目标:探讨检索增强生成(RAG)作为解决大型语言模型(LLMs)遇到的挑战的有效方法,以提高生成的准确性和可信度,特别是对于知识密集型任务。
方法:综合评述了 RAG 范式的发展,包括单纯 RAG,先进 RAG 和模块化
RAG,并详细审查了 RAG
框架的三方基础:检索、生成和增强技术。 ...
Django 测试带用户登录的 api
1 方法一
通过 http server 调用 api,优点是与真实调时环境一致。
1234567891011121314151617from rest_framework.test import APITestCase, APIClientfrom django.contrib.auth.models import User class MyAPIViewTestCase(APITestCase): def setUp(self): self.user = User.objects.create_user(username='testuser', password='testpassword') self.client = APIClient() if True: # 登录具体用户 self.token = AuthToken.objects.create(self.user)[1] self.client.credentials(HTTP_AUTHORIZATION='Token ' + self.toke ...
训练智能体vs养娃
1 引言
这周我做了一些关于智能体的实现,也参加了幼儿园的家长会,有一些碰撞和感想。
2 什么重要什么不重要
2.1 不重要
数学学不好没关系,我们有推理工具。
语文学不好也没关系,工具可以帮助架构、润色和总结。
英语学不好也无所谓,现在英文文档和中文几乎没有区别。
副科只需要大概了解一点就行了。
音体美多数人都没有那个天赋。
记性不好,有第二大脑的加持。
2.2 重要
体力:身体是一切的本钱;具有自我保护的能力。
心力:乐观,可以敏感,但不要太脆弱。
自主力:拥有主体感和好奇心。
平常心:虽然有智力和体力超人存在,但我们是普通人。
3 自发学习
前两天去幼儿园开家长会时,看到了一张图片。以前,这种图片可能被视为反面教材,但现在老师们鼓励这种行为。说:“小朋友自己发现了一个游戏,叫爬树。”
从幼儿园开始,他们就锻炼孩子的自主性。
|200
在训练智能体时,有一个很高级的阶段叫自我进化。这是指智能体自己设计一系列活动,以提升某种技能。
不能说给孩子买了个益智玩具,他玩这个就算学习。而如果他自己接了杯水,在几个容器里倒来倒去,弄得到处都是水,这就是捣乱吗?这可能反而是一种更为 ...
VSCode调试
1 基本调试
打开 Python 文件。
在行号左侧设置断点(红色圆点)。
在左侧栏打开调试视图(Ctrl+Shift+D)。
创建配置调试文件 launch.json。
如果需要调试第三方库,在 configurations
中添加:"justMyCode": false,
开始调试:点击视图上方的运行按钮(F5)。
在断点界面可以删除所有断点。
2 调试 vscode 程序
修改 launch.json 如下:
12345678910111213141516171819202122{ "version": "0.2.0", "configurations": [ { "name": "Django", "type": "python", "request": "launch", ...