首页 > 其他分享 >从0手搓4种Agentic模式,主打去框架化!

从0手搓4种Agentic模式,主打去框架化!

时间:2024-10-11 11:17:55浏览次数:11  
标签:主打 function name 框架 模式 user LLM Agentic arguments

Agentic Patterns项目:包含Andrew Ng在其 DeepLearning.AI博客文章系列中定义的4种Agentic模式的从头实现,主打去框架化:没有 LangChain,没有 LangGraph,没有 LlamaIndex,没有 CrewAI。对LLM API 调用纯粹而简单。

图片

反思模式:Reflection Pattern

这是一个非常基本的模式,但尽管它很简单,它却为LLM响应带来了令人惊讶的性能提升。

它允许大模型反思其结果,建议修改、添加、改进写作风格等。

图片

BASE_GENERATION_SYSTEM_PROMPT = """Your task is to Generate the best content possible for the user's request.If the user provides critique, respond with a revised version of your previous attempt.You must always output the revised content."""
BASE_REFLECTION_SYSTEM_PROMPT = """You are tasked with generating critique and recommendations to the user's generated content.If the user content has something wrong or something to be improved, output a list of recommendationsand critiques. If the user content is ok and there's nothing to change, output this: <OK>"""

工具模式(Tool Pattern)

LLM 权重中存储的信息(通常)不足以对我们的问题提供准确而有见地的答案

这就是为什么我们需要为大模型提供接触外部世界的途径

实际上,可以构建任何你想要的工具(归根结底,它们只是 LLM 可以使用的功能),一个工具可以让你访问维基百科,另一个工具可以分析 YouTube 视频的内容或计算 Wolfram Alpha 中的困难积分。

图片

TOOL_SYSTEM_PROMPT = """You are a function calling AI model. You are provided with function signatures within <tools></tools> XML tags.You may call one or more functions to assist with the user query. Don't make assumptions about what values to pluginto functions. Pay special attention to the properties 'types'. You should use those types as in a Python dict.For each function call return a json object with function name and arguments within <tool_call></tool_call>XML tags as follows:
<tool_call>{"name": <function-name>,"arguments": <args-dict>,  "id": <monotonically-increasing-id>}</tool_call>
Here are the available tools:
<tools>%s</tools>"""

规划模式(Planning Pattern)

经过上述两步,已经看到了能够反思和使用工具来访问外部世界的智能体。但是......规划呢,即决定按照什么步骤顺序来完成一项大任务?

这正是规划模式所提供的:让 LLM 将任务分解为更小、更容易实现的子目标,而不会忘记最终目标。

规划模式最典型的例子是ReAct技术:

图片

REACT_SYSTEM_PROMPT = """You are a function calling AI model. You operate by running a loop with the following steps: Thought, Action, Observation.You are provided with function signatures within <tools></tools> XML tags.You may call one or more functions to assist with the user query. Don' make assumptions about what values to pluginto functions. Pay special attention to the properties 'types'. You should use those types as in a Python dict.
For each function call return a json object with function name and arguments within <tool_call></tool_call> XML tags as follows:
<tool_call>{"name": <function-name>,"arguments": <args-dict>, "id": <monotonically-increasing-id>}</tool_call>
Here are the available tools / actions:
<tools>%s</tools>
Example session:
<question>What's the current temperature in Madrid?</question><thought>I need to get the current weather in Madrid</thought><tool_call>{"name": "get_current_weather","arguments": {"location": "Madrid", "unit": "celsius"}, "id": 0}</tool_call>
You will be called again with this:
<observation>{0: {"temperature": 25, "unit": "celsius"}}</observation>
You then output:
<response>The current temperature in Madrid is 25 degrees Celsius</response>
Additional constraints:
- If the user asks you something unrelated to any of the tools above, answer freely enclosing your answer with <response></response> tags."""

多智能体模式(Multiagent Pattern)

相信不少小伙伴都听过crewAI 或 AutoGen 等框架,它们允许您创建多智能体应用程序。

这些框架实现了多智能体模式的不同变体,其中任务被划分为由不同角色执行的较小子任务(例如,一个Agent可以是软件工程师,另一个Agent可以是项目经理等)。

这一模式的实际效果开发ing......

图片

文末讨论:真正的AGI?

真正的AGI的秘密不在于一个万能的模型......而在于一系列针对特定问题空间的明确定义的本体,其中包含许多 AI 模型 + 代码,以在直觉+逻辑护栏之间取得适当的平衡,从而实现Agent推理、规划和决策???

图片

https://www.deeplearning.ai/the-batch/how-agents-can-improve-llm-performance/?ref=dl-staging-website.ghost.iohttps://github.com/neural-maze/agentic_patterns

来源 | PaperAgent

标签:主打,function,name,框架,模式,user,LLM,Agentic,arguments
From: https://blog.csdn.net/AIBigModel/article/details/142823482

相关文章

  • .Net桌面程序开发框架汇总
    框架使用的图形库不一定准确,如发现有错误请在评论区指出,看到了会及时更正。.NET桌面程序开发框框架/技术WindowsLinuxmacOSAndroidiOSGitHub地址WinFormsGDI+WinFormsGitHubWPFDirectXWPFGitHubUWPDirectXUWPGitHub.NETMAUID......
  • 如何使用MyBatis框架?
    MyBatis的基本信息     MyBatis本是apache的一个开源项目iBatis,后在2010年迁移到了googlecode,并且改名为MyBatis。后面迁移到Github。MyBatis是一个基于Java的数据持久层(ORM)框架。把实体类和SQL语句之间建立了映射关系,是一种半自动化的ORM实现。ORM对象关系映射,是......
  • C#/.NET/.NET Core优秀项目和框架2024年9月简报
    前言公众号每月定期推广和分享的C#/.NET/.NETCore优秀项目和框架(每周至少会推荐两个优秀的项目和框架当然节假日除外),公众号推文中有项目和框架的介绍、功能特点、使用方式以及部分功能截图等(打不开或者打开GitHub很慢的同学可以优先查看公众号推文,文末一定会附带项目和框架源码......
  • 百度低代码平台框架
    介绍(baidu.com)什么是amisamis是一个低代码前端框架,它使用JSON配置来生成页面,可以减少页面开发工作量,极大提升效率。为什么要做amis?在经历了十几年的发展后,前端开发变得越来越复杂,门槛也越来越高,要使用当下流行的UI组件库,你必须懂 npm、webpack、react/vue,必须熟悉......
  • 第二十二章 编译WebRTC框架
    源代码地址:https://webrtc.googlesource.com/src.git下载后放到src目录下gitclone https://chromium.googlesource.com/chromium/src/buildtools下载后放到src目录下gitclone https://chromium.googlesource.com/chromium/src/build需要https://chromium.googlesource.co......
  • .NET云原生应用实践(一):从搭建项目框架结构开始
    开篇很早之前就想做一套案例,介绍.NET下如何从零开始搭建一个云原生的应用程序。不过这个话题有点大,会要包含很多内容。我本打算从新建一个ASP.NETCoreWebAPI应用程序开始介绍,但又觉得即便是从零开始,也无法完全涵盖每一个步骤细节,而且很多基础性的东西其实并没有太大的介绍价值......
  • 一个适用于 ASP.NET Core 的轻量级插件框架
    前言今天大姚给大家分享一个适用于ASP.NETCore的轻量级插件框架,简单配置,开箱即用:PluginCore。项目概述PluginCore是一个基于ASP.NETCore的轻量级插件框架,旨在简化插件的集成与管理。通过最少的配置,开发者可以快速集成并专注于业务逻辑的开发。它支持动态WebAPI、插件隔......
  • 【笔记篇】一篇文章搞定Spring Boot框架
    文章目录概述一、概述接口协议:RESTFUL二维码直接输出定时任务基本用法Cron表达式拦截器缓存技术模板引擎基本使用自定义标签异常处理常用异常捕获多环境配置公共的配置可放在主配置文件中,其它依赖特殊环境的配置放在对应环境的文件中即可。工程打成jar包后,可以在运行的......
  • (开题)flask框架基于MVVM架构家政服务平台(程序+论文+python)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着城市化进程的加快和居民生活水平的提高,家政服务已成为现代家庭生活中不可或缺的一部分。然而,传统的家政服务市场存在信息不对称、服务......
  • (开题)flask框架基于OCR的健康随行小程序(程序+论文+python)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景在数字化生活日益普及的今天,人们对于健康生活的追求已不仅限于传统的医疗服务和健身锻炼,而是更加注重日常生活的细节管理和个性化健康指导......