第一章function call

function call是llm决定调用工具,不是agent决定调用工具

1.1概念

llm根据用户的query和返回的工具列表决定使用哪些工具,agent在这里只是体现了只会使用顺序的作用

1.2工作原理

chatsever把工具返回给llm,用户输入的query通过chatsever传给llm,llm根据prompt返回工具调用的json信息(function call),chatsever处理信息并调用工具,返回结果给llm,llm处理返回结果后,把最终生成的答案返回给chatsever,chatsever把答案返回给用户

如果没有function call:

1.3优势

数据实时性:rag可能也无法做到数据库实时更新,可以通过function call 联网搜索实时检索

数据局限性:可以把rag封装成包,使用api实现对rag的调用检索

功能拓展性

1.4代码实现

from langchain.agents import initialize_agent,AgentType
from langchain_openai import ChatOpenAI
from langchain_core.tools import tool

from agent_learn.config import Config


conf=Config()

@tool
def add(a:int,b:int):
    """
    将数字a与数字b相加
    Args:
        a: 第一个数字
        b: 第二个数字
    """
    return a+b

@tool
def multiply(a:int,b:int):
    """
    将数字a与数字b相乘
    Args:
        a: 第一个数字
        b: 第二个数字
    """
    return a*b

tool = [add,multiply]

llm=ChatOpenAI(
    base_url=conf.base_url,
    api_key=conf.api_key,
    model = conf.model_name,
    temperature = 0.1
)

agent = initialize_agent(tool,llm,AgentType.STRUCTURED_CHAT_ZERO_SHOT_REACT_DESCRIPTION,verbose=True)

query = '1+2等于多少'
result = agent.invoke(query)
print(f'result{result}')

llm能够实现function call功能是训练的结果,输入query和函数功能描述,输出调用结果

第二章MCP协议

2.1概念

实现llm和外部工具以数据源直接建立安全的双向连接,通俗的讲,是把这些外部数据源和工具进行统一管理,方便大模型的调用.

2.2MCP调用流程

MCP调用流程和function call流程很像,多了客户端和服务端,主机指的就是Chatsever

启动客户端,客户端连接MCP sever,,MCPsever把工具列表返回给MCPClient,MCPClient把列表返回给llm

2.3MCP通讯传输方式

  • stdio:本地进程通信,延迟低,不能跨网络使用
  • SSE:基于HTTP协议,单向传输,只能服务端传输信息到客户端,传输格式必须是json格式,
  • streamable:基于HTTP协议,支持双向传输和流式传输,支持任意格式数据传输

2.4协议介绍

  • MCP:大模型调用外部工具的统一的标准化协议
  • A2A:agent直接沟通协作的规范化协议
  • nlp2sql:自然语言转sql,直接在数据库检索

第三章Agentic

3.1概念

agent基于大模型 拥有记忆并自主决定调用那些工具,规划使用工具的顺序

agentic rag:agent只能程度,agentic程度越高,agent自主决定能力越强

3.2Agentic的五种模式

3.2.1工具使用模式

react(思考行动观察循环)的前身

作用:支持Agent调用外部模型

缺陷:缺乏推理能力,只适合单步调用的任务.

3.2.2ReAct模式

思考(行动规划)+行动(调用工具并执行)+观察结果(是否达到目标,多个任务逐个执行,第一个执行完以后思考第二个问题,或者只有一个任务但是第一次的答案在思考后发现不完善,再次调用工具完善)+思考+行动...循环
 

3.2.3反思模式

在完成一步或者整个任务后,agent对结果进行反思或者评估

反思模式相较于react模式,在思考上做了优化

反思模式在思考上主要有两种评估方式来完成优化:

  • 用户反馈
  • 系统反馈(训练评估模型答案是否合规)

或者使用一个大模型生成不同答案,最后在交给大模型反思为什么会错误,最后生成最终结果

3.2.4规划模式

拆解问题,逐个完成.每个任务的完成可能就是一个react的循环

3.2.5多代理模式(能力最强)(A2A协议)

使用一个agent作为主管,把不同的任务分配给不同的agent处理,不同的agent返回响应

多代理模式和规划模式有些像,但是多代理模式更复杂,规划模式类似于顺序执行,多代理模式是agent之间的反复交互

3.3模式演变流程

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐