MultiAgentSystem
Key Takeaway
- Agent是AI智能体的核心,用于自动化执行任务,其搭建关键在于明确需求和工作流设计。
- Multi-Agent System通过角色分工协作,解决复杂任务,例如Researcher、Editor和Note Taker的组合。
- Agent除了大模型作为“大脑”,还需要工具作为“手脚”,如搜索工具(Tavily)和笔记工具(Obsidian)。
- 搭建Agent系统需要Python脚本,即使编程能力不高,也能通过现有脚本进行修改和拼装。
- RAG和Agent是AI原生应用的关键技术,理解并实践它们能提升AI使用效率。
Full Content
我对自己的笔记系统做了一点小升级。
之前的系统只是“离线版”,只能根据已有的内容去生成新内容。
升级之后的系统就是“联机版”:增加了AI搜索、报告生成的功能。而且,全都搞定之后,还会自动生成一条笔记,省得我还要手动贴进Obsidian。
这些功能的背后,是Agent / AI智能体的能力。
我在上期视频介绍了Agent的基本概念。有些小伙伴说,想看看具体的案例。所以这期也算是一个简单的演示,让你知道Agent是怎么搭建的、怎么工作的。
现在虽然有不少工具,比如difi.ai之类的,能让你点几下鼠标就完成搭建。但是,要完全实现自己的需求,完全按照自己的心意来,还是得靠代码。
不过也不用担心,一是网上有很多现成的Python脚本,你稍微改一改、拼装一下,完全可以用;二是它也不要求你有多高的编程能力,看得懂就行。甚至你把它当成英语四级的阅读理解都OK。像我这种小学生水平都能上手,你肯定没问题。
OK,咱们进入正题。
Agent是用来干活儿的。所以,一切的出发点肯定是需求,越明确越好。
我的需求很简单,来自于我日常经常遇到的情况:
当我在Obsidian里整理笔记或者写东西的时候,经常会需要去查点资料。搜到好多个网页之后,我需要创建一条新笔记,把里边有用的内容提取出来,规整一下,变成一个比较有逻辑的东西,存在笔记里边,方便下一步处理。
这些繁琐的、技术含量不高的工作,我希望能交给几个Agent合作完成。
就像我在知识星球newtype里说的,搭建一套Multi-Agent System,最重要的是,你想让它怎么做。
所以,为了满足这个需求,需要三个角色,分别完成三个任务:
Researcher:负责上网查资料,然后把找到的内容汇总成一份报告。 Editor:它的内容能力强、文笔好,负责根据Researcher提供的报告,撰写一篇笔记。 Note Taker:它的任务很简单,就是在Obsidian里创建一条新笔记,然后把Editor写好的东西贴进去。
这是一个非常简单的分工,很好理解。难点在于给Agent配什么工具。
你可以把大模型看作是一个单独的大脑,就像科幻电影里的那种。它只有“思考”能力,没有行为能力。所以,Agent除了装上大模型这个大脑之外,还得拿上工具——咱不能人家不能空手去干,对吧?
根据分工内容,Agent需要用到两个工具:
搜索工具:有了这个,Agent才能联网搜索。 笔记工具:Agent需要知道,笔记放在哪个位置,什么格式,以及新笔记的标题该叫啥。
关于搜索工具,今天已经有很多现成的了。比如Google、DuckduckGO,都可以直接用。我这边选择的是Tavily。他们提供的搜索API,专门为大模型和RAG优化过,效果挺好的。直接加两行代码就可以用。
关于笔记工具,这边需要动点脑子,因为Obsidian并没有提供一个接口让其它程序能够接入去创建笔记。不过,解法还是有的:
Obsidian的所有笔记都是md格式的。那么,咱们就直接在笔记所在的文件夹创建一个md格式的文件。也就是说,通过在外部创建笔记的方式,绕开在软件内创建的这一步。
所以,基于这个解法,就有了CustomTools这几行代码,指明了笔记文件夹的位置,以及文件名的规则——按照笔记创建的时间来命名。
当把这些组合在一起之后,就形成了这样一份脚本,包含这几部分:
基础设置,包括API Key是什么,具体的模型用哪个,以及工具的设置。 刚才介绍过的那三个Agent,它们分别负责干什么,以及允许它们使用什么工具。 分几个子任务完成,以及每一个子任务都由哪些Agent参与。
当把这些拼装完毕之后,运行脚本,等个十几秒,任务就完成了。
以后每次使用,我只需要把这一行修改了,也就是告诉Agent,让它帮我搜什么。
其实我也可以用Gradio添加一个可视化的界面。不过我自己使用就不讲究那么多了。
按照同样的逻辑,我们可以对这个脚本做一些修改。比如,输入一个公众号文章的链接,让Agent读取它,然后把内容全扒下来,做提炼和总结,最后存进笔记里,都可以。
我这边介绍的都是最简单的Workflow,主要是想让大家有个概念。真要是搞大一些的项目,整套系统设计会麻烦得多,会用到更多的工具和大模型,Agent之间以及Agent和用户之间的协作也会复杂起来。
OK以上就是本期内容。希望通过这期和上一期视频,大家能对Agent有一个基本的认知。还是那句话:RAG和Agent是用好AI的关键。大家有什么问题就来知识星球newtype找我。咱们下期见!
Key Takeaway
- Agent平台分为生态流派(如钉钉)和工具流程流派(如dify),dify通过提供知识库和工具来创建Multi-Agent System。
- 学习Agent应从dify入手,因为它将代码逻辑以直观的流程图形式呈现,便于理解和实践。
- dify的工作流设计强调逻辑和流程的整体性,大模型仅在需要时介入,而非主导一切。
- 工作流可以根据用户输入进行条件判断和分支处理,实现更精细化的任务执行。
- dify的工作流示例(如文本总结)展示了如何结合知识库和Prompt来提升大模型的专业能力。
- 通过dify实践Agent,有助于建立对Multi-Agent System的基本认知,并为学习其他Agent框架打下基础。
Full Content
Agent平台有两大流派:
一是生态。比如钉钉这种。
在钉钉上边,已经承载了大量企业的部分业务,沉淀了很多内部数据。这时候你在原有生态基础上添加Agent,让企业能调用大模型的能力,并且围绕这个能力去构建智能化的工作流,是非常顺理成章的事儿。
二是工具流程。比如dify这种。
dify提供了创建Multi-Agent System需要的两个基础:
知识库和工具。其中,工具你可以用现成的,也可以自己创建。在这两个基础上,你再去搭建Chatbot、Agent,或者一大套工作流。
很多小伙伴看了我前几期视频,跑来私信问我该怎么学习Agent。我的建议是,通过擅长工具和流程的dify来上手。两个原因:
第一,之前在知识星球newtype里反复讲的——Agent最核心的,不是技术,而是工作流,是你想让它们具体怎么做。
dify在这方面做得特别直观——它把代码的逻辑,用流程的方式,在画板上呈现出来。你一用就明白。我待会儿会演示。
第二,也是我之前总强调的,Learning by Doing,边做边学。
对咱们来说,AI不是一个理论问题,而是一个实操问题。而dify特别适合拿来拆卸和组装。你就把它当作玩具、当作积木。当你把一个Workflow跑通了,不仅能学到点东西,而且还挺有成就感的。
那么,具体该怎么上手好呢?很简单:
先看看人家是怎么做的。dify官方提供了好多现成的工作流,你随便挑一个感兴趣的,拆开研究研究。然后再自己亲自动手,搭建一个简单的试试。
我带大家过一遍官方提供的工作流Sample,这个叫“文本总结工作流”。
一般来说,一套工作流是以用户的输入作为起点的。在这个文本总结工作流里,它要求用户输入需要总结的文本,并且选择总结之后是个概述,还是技术摘要:
如果只是概述的话,那很简单,直接让大模型搞就好;如果是技术摘要的话,就会涉及到很多专业的概念和表述,这就需要用到知识库,毕竟大模型的预训练资料中不包含这些Domain Knowledge。
第一步让用户二选一,那么在第二步,就需要根据用户的选择,做一个条件判断,用到if、else——这个对有编程经验的小伙伴来说,应该非常亲切。
因为有了条件判断,所以在第三步出现分叉,就像前边说的:
如果用户要的东西会涉及到专业内容,那么就去知识库里检索一下。然后把用户要总结的文本,以及从知识库里找到的相关内容一起给到GPT-3.5。
如果用户单纯只是要一个文本的概述,那就直接把需要总结的文本给到GPT-3.5,省掉知识库检索的步骤,速度会快一些。
当分叉的第四步完成之后,第五步就是把两个分支进行合并。不管是哪种情况,反正把结果拿过来,给到第六步,套进一个模板,最后全部完成。
这就是一个典型的工作流。我之所以拿出来介绍,是希望大家能理解人家的思路:
第一,大模型并不是全部,而是在一些需要它发挥作用的环节才出手。最重要的还是逻辑、流程,是一个整体性的东西,需要你有全局观。
就像刚才那个分叉,你如果在一开始没有特意让用户帮你做一个选择,以及后边不加条件判断环节的话,那你只能不管三七二十一都去知识库里做检索,这样速度会慢很多。
第二,如果涉及到知识库的话,需要给大模型提供两个东西:知识库里检索到的信息,和最初用户的需求。这一步跟RAG里的流程是一样的。
这两个输入,可以在大模型的Prompt里交代清楚。你愿意的话,可以在这边把你期望的格式也告诉大模型,其实也就是CrewAI里的expected output。
除了我刚演示的官方Sample,其它的也建议大家看看,就知道一般都有哪些玩法了。举个例子:
如果需要根据用户的输入来判断后边怎么执行的话,除了刚才那个if、else的条件判断,还可以用“问题分类条件”——根据不同的内容,去对应的知识库里找参考资料,然后再给大模型回答。
当你把这些现成的工作流都吃透了,就可以自己上手组装一个了。一旦跑通了,你对Multi-Agent System的基本认知就有了。
假如你之后学了某个Agent框架(比如AutoGen)就会发现,逻辑都是一样的。而有了在dify上建立起来的理解,你再用Agent框架应该会顺手得多。
OK,以上就是本期内容。有什么想聊的,来知识星球newtype找我,我都在。咱们下期见!
Key Takeaway
- 降低Multi-Agent System的设计门槛是实现AI私人助理Agent普及的关键。
- Agent AutoBuild项目旨在让AI自动生成Agent,简化Agent系统的搭建过程。
- Agent AutoBuild通过不到20行代码的配置,能让AI根据任务自动生成并协调多个Agent角色(如Research Analyst、Content Writer等)。
- AutoBuild支持为Builder和Agent指定不同的LLM,并可保存和调用Agent配置。
- 文章强调AutoGen和AutoBuild的出现,使得Multi-Agent System的搭建不再是难题,并期待LLM在成本、速度和稳定性方面的进一步提升。
Full Content
比尔·盖茨说,五年内,每个人都将拥有AI私人助理Agent。
要实现这个目标,有个门槛必须跨过:
降低Multi-Agent System的设计门槛。
微软之前推出的AutoGen很强大、很好用,但对开发者的要求其实挺高的——懂AI,懂业务流。而且一旦换了新场景,又得再搞一套。
既然都让AI代处理问题了,为什么不干脆让AI把Agent也一并生成了?
于是,Agent AutoBuild项目诞生了。
就像我在视频中演示的那样,不到20行代码就完成配置。启动之后,AI根据任务,自动生成一批Agents,并让它们分工协作。
比如针对写稿需求,Research Analyst、Content Writer、Editor和SEO Specialist四个角色诞生了。
在没调教的情况下,它们所完成的稿件,质量超出我的预期。
AutoBuild可以分别针对Builder和Agent指定LLM。目前我都是用GPT4-Turbo。理论上可以根据需要配不同的LLM,比如开源的,不一定非得是GPT4-Turbo——毕竟现在又贵又不稳定。
最后,如果对生成的Agents满意,可以保存config。后续使用的时候,AutoBuild可以直接调用,不必又去prompting the build manager。如果不满意,或者之后会有新任务,也可以删除。
有了AutoGen和AutoBuild,Multi-Agent System已经不是难事了。就等LLM下一轮更新了:更便宜,反馈更快,运行更稳定。