查看原文
其他

Dify 发布 AI Agent 能力:基于不同的大型语言模型构建 GPTs 和 Assistants

Editor's Note

3月23日 18.3Kstar 的开源项目 Dify.AI,在上海举办的全球开发者先锋大会上首秀他们的Workflow 能力,借此顺便来学习下他们的 AI Agent功能。

The following article is from Dify Author Dify.AI

距离上次推出的 v0.4.0 大版本的三周后,我们又再次迎来了重大的更新 —  v0.5.0!在这个最新版本中,我们隆重推出了 AI Agent 能力。

人类在解决实际的复杂问题过程中,会通过理解信息、分析解决问题的步骤、做出决策、借助工具采取行动、观察变化、再接着做出下一个决策和动作,以此来完成复杂任务。大型语言模型具备强大的自然语言理解能力和推理能力,让人们对它可替代人类解决复杂问题的实际应用充满了期待。

此前,OpenAI 推出的 GPTs 和 Assistants API 为大家提供基于 OpenAI 系列模型探索 AI Agent 的能力,在 OpenAI 的生态中,产生了无限的创意和想象。现在,Dify 在应用编排中新增了 Agent 模式,可以基于不同的 LLMs 作为基础的自然语言理解和推理模型(目前 Dify 已支持市面上所有流行的 LLMs ),并提供一系列工具让 LLM 根据需要来调用,解决多步骤的复杂问题场景,帮助开发者构建更具想象力的 GPTs 和 Agent Assistants(智能助手)。

与 OpenAI Assistants API  有什么不同?

OpenAI Assistants API 为开发者提供了在 OpenAI 模型生态内构建更高级 AI Assistants 的潜力。而 Dify 作为一个强调开放性的 LLM 应用开发平台,我们支持了市面上所有的 LLMs ,包括所有的开源模型,而不是局限于 OpenAI 的模型,为你构建不同情景的 AI Agent 提供更多选择。其次,作为一个开源产品,你可以在本地部署完全属于你企业的 AI 应用开发平台,更方便将 AI 的能力集成到你现有的业务流程中,包括将企业内部 API 封装成为可调用的工具。这对于有严格数据保护策略要求的企业尤为重要。我们在《Dify.AI: Open-source Assistants API based on any LLM》一文中有过详细的讨论。

《Dify.AI: Open-source Assistants API based on any LLM》:

https://dify.ai/blog/openai-assistants-api-vs-dify-self-hosting-flexible-ai-solutions

什么是 AI Agent?

我们上面描述到人类是如何一步步解决复杂问题的,而 AI Agent 就是我们希望让 AI 能模仿人类独立一步步做出决策、使用工具解决问题并给出最终的结果。在 Dify 中,目前基于主流的 CoT(Chain-of-thought) 推理策略来实现 AI Agent 的逐步迭代解决问题能力,通过可视化的界面几分钟内即可构建出一个会思考、独立解决问题的 Agent Assistant 。

例如,我们问“特朗普的妻子今年几岁?”,LLM 本身的知识无法回答当前时间特朗普妻子的年纪,我们提供了两个工具 【 Wikipedia_search】【current_time】,它会将问题拆分思考并解决:

  1. 使用【Wikipedia_search】搜索特兰普妻子的出生年份:梅拉尼娅·特朗普出生于 1970 年 4 月 26 日;
  2. 使用【current_time】来确定当前提问的时间:2024 年 1 月 21 日;
  3. 计算特朗普妻子当前的年龄:53 岁。

如何基于不同的 LLMs 实现 Agent 推理?

构建带 AI Agent 能力的 Assistant 并达到理想的效果对于你所选择的基础推理模型能力有着较高的要求,CoT(思维链)推理能力是大参数量 LLM 涌现的能力,我们推荐使用 100B 或以上的 LLM 作为 Agent 推理的基础模型。

针对不同的模型厂商支持的推理框架不同,我们提供了 Function Calling(函数调用)和 ReAct 两种推理模式。已支持 Function Calling 的模型系列拥有效果更佳、更稳定的表现,尚未支持 Function Calling 的模型系列,我们提供通用的 ReAct 方式调用。

在 Dify 已支持的模型厂商中,已支持 Function Calling 的有:OpenAI、 ChatGLM、 Tongyi、MiniMax、文心一言。

目前可以调用哪些工具?

Agent 工作过程中,可供调用的工具是其中关键部分。工具为 LLM 提供了额外的知识来源和技能来完成推理过程。

除了已被关联的知识库会作为被调用的工具之外,在该版本中首发提供了 11 个第一方实用工具,并将持续增加:

  1. Google 搜索:用于执行 Google SERP 搜索并提取片段和网页的工具,实现联网搜索;

  2. DALL·E 绘画:OpenAI 提供的根据文本生成图像的模型,可以在对话中让 AI 根据你的描述生成图像;

  3. Vectorizer.AI:一个将 PNG 和 JPG 图像快速轻松地转换为 SVG 矢量图的工具;

  4. ChartGenerator:用于生成可视化图表的工具,你可以通过它来生成柱状图、折线图、饼图等各类图表;

  5. Web Scraper:一款网页抓取工具,以便捷、自动化的方式从网页中提取文本、图片、链接等信息;

  6. WolframAlpha:一款强大的计算知识引擎,你可以向它提出具体问题,如数学方程的解答、统计数据的分析、历史事件的信息等,它会利用其庞大的数据库和计算能力给出答案;

  7. Youtube 视频统计:获取 YouTube 视频统计数据工具;

  8. Stable Diffusion:根据用户提供的文本描述(如关键词或详细叙述)来生成对应的图像;

  9. 雅虎财经:可以获取实时的新闻、股票等财经信息和数据;

  10. 维基百科:用于执行维基百科搜索并提取片段和网页的工具;

  11. Time:一个帮助你获取当前时间的工具。

在 Agent 模式下,你可以为你的 Agent Assistants 开启这些工具以供 LLM 选择调用。我们为工具之间的相互协同做了良好的适配,包括一个共享变量池,使得不同工具可以轻松获取其他工具的调用结果。例如,当你使用 DALL·E 生成一张图片结果,理论上另一个视频生成的工具可以利用图片结果作为视频的素材。

在下方视频的演示例子中,我们开启了包含 DALL·E 和 Vectorizer.AI 在内的工具,让 Agent 为你设计 Logo 并且导出矢量图。

在这个例子中,AI Agent 通过多轮问答的方式一步步了解用户的需求,比如说用户的风格、想传达的信息和偏好。在了解用户需求之后,他会按照你的要求使用 DALL·E 生成你的设计,用户可以提供修改反馈,并让它根据你的反馈迭代,随后调用 Vectorizer.AI 转换成 SVG 格式的 Logo,方便你随时将这个 Logo 投入使用。

自定义你需要的工具以供 LLM 调用

在企业现实业务流程中,我们希望智能助手能实时获取企业的数据、知识库,或者调用企业内的其他工具来解决业务问题。所以,除了前面提到的内置工具外,同时支持开发者使用自定义的 API 接入工具(目前支持从 OpenAPI / Swagger 和 OpenAI Plugin 规范文件导入)。这意味着你可以通过调整外部工具的 API 以符合这一标准,将它们集成到 Dify 中。一旦你制作了一个自定义工具,你的团队也可以使用它。

此外,我们还很欢迎开发者通过代码的方式贡献实用的工具,以实现 AI Agent 更强大的功能,如果你有兴趣,查看我们的贡献文档。

贡献文档:

https://github.com/langgenius/dify/blob/48d5628fd4e4045ce39e978d4fd4c522c34f8ec1/api/core/tools/README.md

其它你需要关注的变更

为了适应这次大的能力升级和更好地传达 Dify 的产品设计理念,我们在产品功能的入口上作了一些调整,但这不会改变你已经创建的应用表现:

  1. 我们将【构建应用】入口更名为【工作室】,同时【对话型应用】变为【助手】,这样,你可以在助手类型里构建基于 LLM 的【基础助手】或者【智能助手】。
  2. 原来基于 LLM 构建的对话型应用中支持的【API 扩展】能力,我们将转移到【变量】模块下,它将以变量的形式体现在 prompt 中,如果你此前开启并关联了 API 扩展变量,它将持续保持可用。

  1. 为了方便管理丰富多样的工具可供 AI Agent 调用,我们将【工具】选项移至产品主菜单。用以管理所有的工具,自定义工具、工具的授权等操作都在这里进行。

现在开始尝试构建 AI Agent

尝试构建一个 AI Agent,你可以在 Dify 创建一个全新的 Assistant 开始,并切换到 Agent 模式,或者从已有的聊天应用的提示词编排页面中将它切换到 Agent 模式。可以阅读我们的文档开始你的旅程。

帮助文档:

https://docs.dify.ai/v/zh-hans/guides/application-design/prompt-engineering/agent-assistant

我们欢迎你使用 Dify 将你独一无二的想法变为现实。无论是构建自己的 AI Agent,还是给我们贡献新的工具,我们都迫不及待地想看到你的创造。


🥳

如果你喜欢 Dify,欢迎:

  • 在 GitHub 上贡献代码,与我们一同共建更好的 Dify;

  • 通过线上线下活动、社交媒体向你的朋友们分享 Dify,以及你的使用经验;

  • 在 GitHub 上给我们点亮⭐️

  • https://github.com/langgenius/dify

你也可以联系 Dify 小助手,加入我们的好友群聊,相互分享使用经验:

继续滑动看下一个
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存