【AI大模型】深入理解Agent:从0实现function call

一篇文章读懂大模型Function_call和Agent的联系与区别 function_call通常指的是模型调用特定函数的能力,这些函数可以是内置的,也可以是用户自定义的。在执行任务时,模型可能会通过分析问题来决定何时以及如何调用这些函数。例如,一个语言模型在回答数学问题时,可能会使用内部的计算函数来得出答案。function_call机制允许模型利用外部工具或内部功能来增强其处理特定任务的能力。 阅读详情

Function的调用时Agent实现很重要的一步,只有了解了这个原理才可以更好的创建Agent。

我将不使用任何langchain等框架或者coze等平台,从0开始构建一个可以调用function的Agent。

源代码已经上传github:github.com/astordu/age…

一、场景

Agent的目标:可以回答关于天气的问题。 用到的function:调用某地方的天气情况,并且反馈

流程: 1.思考: 用户输入问题,模型先对问题进行分析 2.行动: 如果问到了天气问题,则分析出需要调用的function以及function要传入的参数 3.响应:function返回后,将答案整理好回复给用户。

函数自定:

  1. 我们先定义一个获取天气的函数(属于Tools中的一个,这里用于演示,不做真实调用):

         def get_weather(location):
                 return "天气晴朗"
    
    
  2. 再定义一个大模型的发送信息的方法:

     def send_messages(messages):
             response = client.chat.completions.create(
             model="deepseek-chat",
             messages=messages
             )
             return response.choices[0].message
    
     client = OpenAI(
             api_key="<你的deepseek的key>",
             base_url="https://api.deepseek.com",
     )
    
    

二、设计思路

在这里插入图片描述

从“用户提出问题”到“思考”到“响应”其实是调用了多次LLM模型。

所以我们要求模型按照顺序去调用LLM:

你在运行一个“思考”,“工具调用”,“响应”循环。每次只运行一个阶段

1.“思考”阶段:你要仔细思考用户的问题
2.“工具调用阶段”:选择可以调用的工具,并且输出对应工具需要的参数
3.“响应”阶段:根据工具调用返回的影响,回复用户问题。

已有的工具如下:
get_weather:
e.g. get_weather:天津
返回天津的天气情况

Example:
question:天津的天气怎么样?
thought:我应该调用工具查询天津的天气情况
Action:
{
	"function_name":"get_response_time"
	"function_params":{
		"location":"天津"
	}
}
调用Action的结果:“天气晴朗”
Answer:天津的天气晴朗

上边的逻辑正好可以当作system的提示语:

system="""
	你在运行一个“思考”,“工具调用”,“响应”循环。每次只运行一个阶段
	
	1.“思考”阶段:你要仔细思考用户的问题
	2.“工具调用阶段”:选择可以调用的工具,并且输出对应工具需要的参数
	3.“响应”阶段:根据工具调用返回的影响,回复用户问题。
	
	已有的工具如下:
	get_weather:
	e.g. get_weather:天津
	返回天津的天气情况
	
	Example:
	question:天津的天气怎么样?
	thought:我应该调用工具查询天津的天气情况
	Action:
	{
		"function_name":"get_response_time"
		"function_params":{
			"location":"天津"
		}
	}
	调用Action的结果:“天气晴朗”
	Answer:天津的天气晴朗
"""

第一步,向模型提问一个问题

question="北京天气怎么样"

messages = [{"role": "system", "content": system_prompt},
{"role": "user", "content": question}]

message = send_messages(messages)
print(f"Model-1th>\n {message.content}")

返回值:

Model-1th>
 thought:我应该调用工具查询北京的天气情况
Action:
{
        "function_name":"get_weather",
        "function_params":{
                "location":"北京"
        }
}

可以看出模型已经进行了思考,并且返回了可以调用的工具了

第二步,如果从“第一步”的返回值中可以提取调用工具的json

第三步,调用真实工具,获取真实结果(这里是伪代码)

    invoke_function(**function_name,**function_params)

第四步,将工具调用的结果追加到message中,一起给到模型,让它总结回答:

messages.append({"role": "assistant", "content": f"调用Action的结果:{tianqi}"})
message = send_messages(messages)

print(f"Model-2th>\n {message.content}")

返回值:

Model-2th> 
北京今天的天气晴朗。

三、tools功能的演进

随着LLM调用工具的普及,这种调用方法集成在大模型api接口中就变得越重要。

大部分模型厂商已经支持了function call,下面是deepseek工具调用的一个例子[1]:

response = client.chat.completions.create(
	model="deepseek-chat",
	messages=messages,
	tools=tools
)

其中 tools是可以供模型选择的工具。

写在最后

从0开发写function的逻辑,需要让模型思考、观察、行动。其实这个流程的循环其实就是ReAct框架的原理。

程序员为什么要学大模型?

大模型时代,火爆出圈的LLM大模型让程序员们开始重新评估自己的本领。 “AI会取代那些行业?”“谁的饭碗又将不保了?”等问题热议不断。

事实上,抢你饭碗的不是AI,而是会利用AI的人。

继科大讯飞、阿里、华为等巨头公司发布AI产品后,很多中小企业也陆续进场!超高年薪,挖掘AI大模型人才! 如今大厂老板们,也更倾向于会AI的人,普通程序员,还有应对的机会吗?

与其焦虑……

不如成为「掌握AI工具的技术人」,毕竟AI时代,谁先尝试,谁就能占得先机!

但是LLM相关的内容很多,现在网上的老课程老教材关于LLM又太少。所以现在小白入门就只能靠自学,学习成本和门槛很高。

针对所有自学遇到困难的同学们,我帮大家系统梳理大模型学习脉络,将这份 LLM大模型资料 分享出来:包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程等, 😝有需要的小伙伴,可以 扫描下方二维码领取🆓↓↓↓

👉优快云大礼包🎁:全网最全《LLM大模型入门+进阶学习资源包》免费分享(安全链接,放心点击)👈

​

一、LLM大模型经典书籍

AI大模型已经成为了当今科技领域的一大热点,那以下这些大模型书籍就是非常不错的学习资源。

在这里插入图片描述

二、640套LLM大模型报告合集

这套包含640份报告的合集,涵盖了大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。(几乎涵盖所有行业)

在这里插入图片描述

三、LLM大模型系列视频教程

在这里插入图片描述

四、LLM大模型开源教程(LLaLA/Meta/chatglm/chatgpt)

在这里插入图片描述

LLM大模型学习路线 ↓

阶段1:AI大模型时代的基础理解

  • 目标:了解AI大模型的基本概念、发展历程和核心原理。

  • 内容:

    • L1.1 人工智能简述与大模型起源
    • L1.2 大模型与通用人工智能
    • L1.3 GPT模型的发展历程
    • L1.4 模型工程
    • L1.4.1 知识大模型
    • L1.4.2 生产大模型
    • L1.4.3 模型工程方法论
    • L1.4.4 模型工程实践
    • L1.5 GPT应用案例

阶段2:AI大模型API应用开发工程

  • 目标:掌握AI大模型API的使用和开发,以及相关的编程技能。

  • 内容:

    • L2.1 API接口
    • L2.1.1 OpenAI API接口
    • L2.1.2 Python接口接入
    • L2.1.3 BOT工具类框架
    • L2.1.4 代码示例
    • L2.2 Prompt框架
    • L2.3 流水线工程
    • L2.4 总结与展望

阶段3:AI大模型应用架构实践

  • 目标:深入理解AI大模型的应用架构,并能够进行私有化部署。

  • 内容:

    • L3.1 Agent模型框架
    • L3.2 MetaGPT
    • L3.3 ChatGLM
    • L3.4 LLAMA
    • L3.5 其他大模型介绍

阶段4:AI大模型私有化部署

  • 目标:掌握多种AI大模型的私有化部署,包括多模态和特定领域模型。

  • 内容:

    • L4.1 模型私有化部署概述
    • L4.2 模型私有化部署的关键技术
    • L4.3 模型私有化部署的实施步骤
    • L4.4 模型私有化部署的应用场景

这份 LLM大模型资料 包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程等, 😝有需要的小伙伴,可以 扫描下方二维码领取🆓↓↓↓

👉优快云大礼包🎁:全网最全《LLM大模型入门+进阶学习资源包》免费分享(安全链接,放心点击)👈

​

深入理解蒸馏、Function Call、React、Prompt 与 Agent 在知识传授或模型训练等场景中,可类比为师傅带徒弟的过程。由于人的能力有限,即便师傅能力很强,也难以将所有本领毫无保留地传授给徒弟,而且徒弟也未必能全盘接收。所以,师傅往往会将一部分技能传授给第一个徒弟,另一部分传授给第二个徒弟等。在这个过程中,徒弟学习技能的阶段就被称为蒸馏。在蒸馏过程里,存在硬标签和软标签两个重要概念。师傅传授给徒弟的是一种思维方式,从技术层面讲,是向徒弟传递一些概率分布,即针对每个类别的概率分布,这一专业术语叫做软标签。而徒弟在学习过程中,基于自身理解所形成的思维方式,被称为硬标签。 阅读详情

相关推荐

DeepSeek + Function Call:基于 Eino 的“计划——执行”多智能体范式实战

本文介绍如何借助 Eino 框架来实现基于 DeepSeek 的‘计划 —— 执行’多智能体,最后通过一个有趣且靠谱的主题乐园行程规划助手的实战案例,带大家从 0 到 1 搭建一个完整的应用。

weixin_44186218的博客 3939

深入理解Agent:从0实现function call

Function的调用时Agent实现很重要的一步,只有理解了function call这个原理才可以更好的创建Agent。

雷哥AI工程化 3021

从API调用到AI Agent:大模型应用开发实战指南

随着生成式AI发展,大模型API成为构建AI应用的基石。然而真实业务中,Prompt设计、上下文管理、工具调用等工程问题决定了模型输出的稳定性与实用性。理解Token机制能平衡成本与质量;掌握Function Calling可让模型连接外部系统;RAG则有效补充私有知识。这些技术共同构成AI Agent的核心能力,广泛应用于智能客服、知识问答等场景。本文从基础调用出发,结合完整案例演示如何实现一个支持多轮对话和工具调用的AI问答Agent,为AI应用开发者提供可落地的工程参考。

weixin_34054866的博客 318

一文讲清楚Agent、MCP、Function Call附实操代码示例

用户提问:"帮我总结知乎上关于AI的最新讨论LLM解析需求,调用Function Call检测平台类型Function Call返回"知乎",LLM通过MCP协议请求爬虫服务MCP Server抓取网页数据后返回给LLMLLM生成摘要报告并返回给用户。

kaka0722ww的博客 2356

Nemotron 3.5 Lightning与Perplexity Agent API:低成本构建AI Agent应用实战

大语言模型(LLM)通过API接口提供服务已成为AI应用开发的主流范式,其核心原理是将复杂的自然语言理解与生成能力封装为可编程的服务。这种模式的技术价值在于,它极大地降低了开发者集成先进AI能力的门槛,使得构建智能对话、内容生成等应用变得高效。然而,在实际工程实践中,开发者仍需面对模型选择、成本控制、工具调用(Function Calling)与任务编排(Task Planning)等挑战。应用场景广泛,从智能客服到数据分析助手,都需要模型不仅能理解指令,还能主动调用外部工具(如计算器、搜索API)来完成任

weixin_34221073的博客 502

2.4G/4G天线共存方案:Air8101多频段隔离设计实战(附波长计算表)

本文深入探讨了物联网设备中Wi-Fi 2.4GHz与4G LTE天线共存设计的实战方案。针对B40与2.4G频段紧邻带来的干扰挑战,文章系统性地提出了空间隔离、PCB布局优化、结构设计三重防线,并提供了关键的波长计算工具与系统级验证Checklist,旨在帮助工程师将多频段隔离设计从“玄学”变为可执行的工程规范。

weixin_29197051的博客 389

《深入理解 AI Agent》

《深入理解 AI Agent》是一本428页的开源书籍,系统讲解AI Agent从原理到工程实践。全书分为10章,包含88个可运行实验,围绕"Agent=LLM+上下文+工具"的核心公式展开,强调Harness工程(模型之外的工程能力)的重要性。作者李博杰是前华为"天才少年",现Pine AI首席科学家。 书籍特点: 系统性强,逻辑清晰 70+实验可独立运行 涵盖从基础到多Agent协作的全景内容 免费开源(Apache 2.0协议) 适合人群: 想从调API升级到搭建Agent系统的开发者 技术选型的产品

m0_72796578的博客 670

CoppeliaSim学习笔记(1):建立Python脚本与CoppeliaSim的连接

CoppeliaSim学习笔记,建立python和CoppeliaSim的连接,实现联调。

qq_22487889的博客 1万+

AI Agent协议栈解析:从Function Calling到多Agent通信的技术演进

在人工智能领域,协议作为系统组件间交互的标准化约定,是实现高效协同与互操作性的技术基石。其核心原理在于定义统一的通信语法与数据格式,解决组件间的信息交换问题。从技术价值看,协议能够提升系统可组合性、降低集成成本,并促进生态繁荣。在AI Agent应用场景中,协议尤其关键,它支撑着从工具调用到多智能体协作的复杂交互。本文聚焦于AI Agent生态中的协议栈,深入剖析了以Function Calling为代表的工具调用协议,以及多Agent通信中的标准化挑战与实践方案,为开发者构建可扩展的智能体系统提供技术参考

weixin_33754065的博客 427

避坑指南:雅特力AT32F403A在Keil5中的V2库配置常见问题解析

本文详细解析了国产MCU雅特力AT32F403A在Keil5中配置V2库的常见问题,包括工程创建、库文件配置、编译错误和外设设置等关键环节。针对项目文件夹结构混乱、芯片型号选择错误、头文件路径设置不当等典型问题提供实用解决方案,帮助开发者高效避坑,提升开发效率。

weixin_30335575的博客 376

死区补偿---学习笔记

最近调试中发现,死区补偿对电流谐波和电流带宽影响挺大,于是对死区补偿产生浓厚兴趣,找来几篇文章粗读并做一下笔记。 传统做法 无非就是根据电流方向补偿,假如svpwm计算出的A相理论导通实践为T1,死区时间是Td,则实际导通时间T = T1-Td(when ia >0 ),于是在svpwm计算出的导通时间T1的基础上加上Td。这样经过PWM模块后,实际的导通时间即为T1. 但存在两个难点(个人总结): 1,受电流检测精度影响,尤其是在过零点检测困难。 2,真实的二极管导通需要一定电压,并非..

圆桌骑士的博客 2万+

从零手搓 ReAct 智能体:用 Python 实现 AI Agent 核心闭环(附完整代码)

这一行是用 Python 的。

python12345_的博客 1758

【测开求职】面试题:JAVA 吐血整理

本篇文章包含本次测开工程师秋招过程中遇到的所有JAVA面试题,全文两万字,亲测应对各个大厂的面试毫无压力👉

vector的博客 1211

飞书学AI Agent!3-4个月速成,打破信息差,从0到实战!

真心建议大家都去飞书学AI Agent!真的能打破信息差!! 本路线专为希望快速掌握 **AI Agent(智能体)** 构建能力的开发者打造。我们摒弃冗长的理论堆砌,坚持 **“理解原理、动手实践、项目驱动”** 三大核心原则,助您在最短时间内打通从入门到实战的关键路径。

Trb701012的博客 1771

在Windows10上安装WSL2

WSL2是微软提供的Windows子系统,允许在Windows 10和11上运行Linux环境,提供更好的性能和兼容性。安装WSL2需要启用WSL功能、更新系统、安装WSL2内核,并设置为默认版本。之后,可以通过Microsoft Store安装Linux发行版,并使用WSL命令启动和管理它们。

howard2005的专栏 5942

英飞凌TC3xx之一起认识GTM系列(一)先来认识GTM架构

本文讲述英飞凌TC3xx的通用计时器GTM的架构。

无所适从的我的博客 4598

【agent应用开发】| 深入理解Function Call

agent、Fcuntion call

m0_75075450的博客 237

uniapp - 强力解决H5网页浏览器跨域问题,如何解决uniapp请求接口在浏览器跨域问题,UniApp H5 跨域代理配置详细教程完美解决所有uniapp跨域(调用第三方接口或服务器api跨域)

uni-app 跨域,uniApp解决h5跨域问题,解决uni-app请求接口在浏览器跨域问题,uni.request请求跨域问题解决方案,uni-app-跨域解决方法,彻底解决uniapp发布为H5的跨域问题,uniapp H5页面设置跨域请求_uniapp h5跨域配置,uniapp开发 H5 解决跨域问题,uniApp请求解决跨域问题,uniapp request如何实现前端请求跨域,解决uniapp调试过程中的请求跨域和环境配置,Uniapp调用外部api接口跨域请求,uni-app发布H5页面跨域

🏆 前端领域优质创作者 5354

大模型书籍丨AI Agent这本书无敌,Agent框架+7个实例助你拿捏Agent!大模型入门到精通,收藏这篇就足够了!

Agent 作为一种新兴的人工智能技术,正在受到越来越多的关注。要说清楚什么是 Agent,先得看看人工智能的本质是什么。

瓦罗兰特顶级C位的博客 640

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

【干货】24张图详解AI大模型应用架构设计,从入门到精通!

本文通过24张图全面解析AI大模型应用架构设计,涵盖技术全景视图、企业级开发知识体系、智能体架构设计、RAG架构、Fine-tuning、上下文工程、LLM OS及ChatBI等核心内容。文章从基础概念到具体应用,构建完整技术链路,帮助读者建立对AI大模型应用架构的系统认知,适合小白入门和程序员深入学习。

2401_84204413的博客 1025

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

2025AI Agent落地宝典!《AI Agent开发实战》从小白到高手的全链路能力培养!

本书是2025年AI Agent开发的实战指南,由联通云专家撰写,聚焦工程落地。内容涵盖AI Agent理论基础、大模型部署与微调、Function Calling机制、多Agent协同等关键技术,并提供求职、教育、编程、金融四大领域实战项目。适合各类技术人员,帮助读者掌握从模型部署到多Agent协同的全链路能力,开发企业级AI应用,提升AI时代核心竞争力。

m0_65555479的博客 902

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

AI Agent落地开发实践手册(文末赠送)

《AI Agent开发实战》是一本系统指导AI Agent开发的实用指南,涵盖从理论到项目实战的全流程。本书首先讲解AI Agent基础概念和关键技术,包括大模型私有化部署、微调蒸馏、Function Calling机制等核心内容。随后通过求职助手、智能教育、编程辅助、金融分析4个实战项目,帮助读者掌握跨领域开发能力。书中提供丰富的配套资源(代码、视频、图表),并特别介绍MCP、A2A、LangGraph等前沿技术,是适应AI时代工作需求的必备技能手册。随书附赠大模型学习资料包,助力开发者快速提升AI应用能

m0_59485658的博客 527

从Function Calling到自动化任务链:手把手构建AI Agent核心架构

Function Calling(函数调用)是大语言模型与外部世界交互的核心机制,它通过将自然语言指令转化为结构化的、可编程的操作指令,为AI模型装上了标准化的“插槽”。其原理在于一个精巧的“请求-响应-执行”循环:模型根据工具描述决策并输出结构化调用指令,本地执行后再将结果反馈给模型。这一技术的核心价值在于突破了模型纯文本生成的局限,使其能够操作API、数据库等外部资源,是实现AI应用自动化和智能化的基石。在工程实践中,围绕Function Calling构建统一、安全的工具执行层是迈向复杂AI系统的关键

weixin_30861797的博客 320

大模型实战训练(4)AI Agent智能体开发:从工具调用到自主规划

《大模型实战训练:AI Agent智能体开发》课程摘要 本课程系统讲解AI Agent开发全流程,重点覆盖三大核心能力:工具调用、任务规划和自主执行。课程从原理到实践,手把手指导学员构建真正的智能助手,内容包含: 1️⃣ 核心架构:详解Agent工作原理及主流框架(ReAct、ReWOO) 2️⃣ 关键能力:实现函数调用、多轮对话记忆、任务分解 3️⃣ 实战项目:开发多Agent协作系统,部署生产级应用 4️⃣ 技术栈:集成OpenAI/国产大模型API,结合向量数据库等工具链。

成大事的博客 587
上一篇: AI 实战:手把手教你使用「扣子/coze」来搭建个人blog知识库
下一篇: 大话AI模型:无需数学知识,掌握LLM原理
Llama-Turbo
博客等级 码龄4年 9901粉丝 2022原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值