大模型中的概念: LLM Agent FunctionCall Tool MCP Skill区别和说明
首先 LLM和Agent是一个大类,FunctionCall Tool MCP Skill是另一个大类.
LLM 和Agent
LLM是大语言模型,是基于大量数据进行预训练的超大型深度学习模型.
各个大厂都发布了自己的LLM,如:Google genimi, OpenAI的gpt,Anthropic的Claude Opus/Sonnet等.
如果只是提供大模型,那用户怎么用呢?所以说提供了基于网页(WEB)的问答模式的服务,
慢慢的,基于编码以衍生出了一系列的TUI 和IDE,如google的 Antigravity,OpenAI 的 Codex,Anthropic的 Claude Code,这些工具一般都是提供自家的模型(付费)使用
Agent是智能代理,能够主动的感知上下文信息,做决策并采取行动的计算实体
Agent 基于LLM,结合一些记忆,规划,以及工具模块,主动完成多步骤任务的自动化实体。
Agent 是基于LLM的编排系统,他属于工程范围。所以当下也有好多开源的构建智能Agent的开源工具,如Langchain/LangGraph,crewAI,Google ADK
对应的Python和Java版本的实现如下:
- langchain Python
- langchain Java
- langgraph Python
- langgraph Java
- Google ADK Doc
- Google ADK Java
- Google ADK Python
- Crew AI Python
当然还有 AutoGPT, Microsoft autogen等等。
其中 CrewAI 是由João Moura 开发的开源多智能体编排框架,建立在LangChain 基础之上,它通过协调多个AI 智能体的协作来完成复杂任务.
从目前的趋势来看,对应Python版本的社区活跃度要高很多。
以上是构建Agent的框架,还有一种是基于TUI的Agent,如专门用于编程的opencode,可以参考Oh My Opencode各个agent的作用以及常用的命令,这种非常适合于极客。
还有一种是个人Agent,如OpenClaw,是一个开源的个人AI 助手平台,支持通过多种消息渠道与AI 交互,它能通过微信、Telegram、Slack等通讯工具进行交互,不仅能对话,还能执行shell命令、控制浏览器、管理文件和邮件。
FunctionCall Tool MCP Skill
FunctionCall 是 LLM 的原生能力
通过训练,LLM 能够理解 JSON Schema 定义的工具,判断何时需要调用工具,并生成结构化的调用请求,它允许模型在无法直接回答问题时,返回一个函数调用请求,而不是生成文本,开发者需要手动解析这个请求,执行对应的函数,并将结果传回给模型,以生成最终答案,FunctionCall使智能体能够与外部 API、数据库、服务交互,甚至执行代码.
Tool是 Agent 层对函数调用的封装
Tool既可以是传统函数,也可以是复杂的 API 端点、数据库查询请求,甚至是向其他专业智能体发出的指令,不同的 Agent 框架(如 LangChain、CrewAI、Google ADK 等)对工具有不同的封装方式和抽象接口,
如:LangChain
from langchain_core.tools import tool as langchain_tool
@langchain_tool
def search_information(query: str) -> str:
"""提供有关给定主题的事实信息。使用此工具查找诸如"法国首都"或"伦敦的天气?"等短语的答案。"""
提供有关给定主题的事实信息。使用此工具查找诸如"法国首都"或"伦敦的天气?"等短语的答案。
"""
simulated_results = {
"weather in london": "伦敦目前多云,温度为 15°C。",
"capital of france": "法国的首都是巴黎。",
"population of earth": "地球的估计人口约为 80 亿人。",
"tallest mountain": "珠穆朗玛峰是海拔最高的山峰。",
"default": f"'{query}' 的模拟搜索结果:未找到特定信息,但该主题似乎很有趣。"
}
result = simulated_results.get(query.lower(), simulated_results["default"])
print(f"--- 工具结果:{result} ---")
return result
tools = [search_information]
# 创建智能体,将 LLM、工具和提示词绑定在一起。
agent = create_tool_calling_agent(llm, tools, agent_prompt)
如CrewAI:
from crewai.tools import tool
@tool("Stock Price Lookup Tool")
def get_stock_price(ticker: str) -> float:
"""
获取给定股票代码符号的最新模拟股票价格。
以浮点数形式返回价格。如果未找到代码,则引发 ValueError。
"""
logging.info(f"工具调用:get_stock_price,代码为 '{ticker}'")
simulated_prices = {
"AAPL": 178.15,
"GOOGL": 1750.30,
"MSFT": 425.50,
}
price = simulated_prices.get(ticker.upper())
if price is not None:
return price
else:
raise ValueError(f"未找到代码 '{ticker.upper()}' 的模拟价格。")
financial_analyst_agent = Agent(
role='高级财务分析师',
goal='使用提供的工具分析股票数据并报告关键价格。',
backstory="你是一位经验丰富的财务分析师,擅长使用数据源查找股票信息。你提供清晰、直接的答案。",
verbose=True,
tools=[get_stock_price],
# 允许委托可能很有用,但对于这个简单任务不是必需的。
allow_delegation=False,
)
Google ADK如下:
from google.adk.tools import google_search
## 使用搜索工具定义智能体
root_agent = Agent(
name="basic_search_agent",
model="gemini-2.0-flash-exp",
description="使用 Google 搜索回答问题的智能体。",
instruction="我可以通过搜索互联网回答您的问题。随便问我什么!",
tools=[google_search] # Google 搜索是执行 Google 搜索的预构建工具。
)
每个框架对Tool的使用都不一样
MCP 是标准化协议
MCP是模型上下文协议(Model Context Protocol),是 Agent 层的标准化协议,这是为了解决 Tool 在不同 Agent 框架中不通用的问题,MCP 定义了统一的工具描述和调用标准。一次开发的 MCP 服务可以被任何支持 MCP 的 Agent 框架使用。
MCP是需要进行编程的,关于Coding这块可以参考MCP编程极速入门
MCP 的传输层支持了 2 种协议的实现:stdio(标准输入/输出)和 SSE(服务器发送事件):
Stdio 用于本地通信(如AI编辑器调用本地脚本),速度快、安全性高。
SSE (Server-Sent Events) 用于远程通信(如客户端连接云端服务),基于 HTTP 长连接,支持网络部署。
Skill是能力包
SKILL是一套由指令,脚本,以及资源组成的可以指导大模型 怎么完成一项特定任务的任务流的详细说明,它可以保证完成该任务的稳定性。SKILL是告诉AGNET去怎么做的一套行为准则或者SOP(标准流程)。
关于Skill的创建可以参考怎么创建高质量的 AI SKILL
更多推荐



所有评论(0)