【Day 01】从Chatbot到Agent:让AI从“只会说“到“能做事“
系列专栏AI Agent实战Day 01 / 18前置专栏AI办公自动化建议先读 Day 14-18署名梅雅达编程笔记摘要华泰证券研报指出2026年AI产业正从模型竞赛切入Agent商业化落地期国产大模型与海外差距缩至3-4个月。但多数开发者仍停留在调API问问题阶段。本篇从Chatbot与Agent的本质差异切入讲解Agent Loop五步循环用GLM-4.7-Flash从零搭建能自主决策的Agent框架骨架。① 场景痛点为什么直接问LLM不够华泰证券2026年7月发布的研报指出一个关键趋势AI产业正从大模型竞赛正式切入AI Agent商业化落地期。同一份报告还提到以Kimi K3、GLM 5.2为代表的国产大模型与海外顶尖模型的差距已缩小至3-4个月。大模型越来越强但你有没有发现一个尴尬的事实你让大模型帮你算个税它给你一堆公式和步骤但不会帮你算出最终数字你让它帮你整理文件它告诉你建议按日期排序但不会真的去动你的文件你让它帮你写周报它给你一个模板但不会去读取你的工作记录。LLM很聪明但它只会说不会做。这就是Chatbot和 Agent 的本质区别Chatbot聊天机器人Agent智能体核心能力理解问题 → 生成回答理解问题 → 自主决策 → 执行动作 → 观察结果 → 继续推进输出一段文本一个完成的任务能否调用工具不能能是否有记忆通常无有能记住之前的步骤终止条件生成完回答就结束任务完成才结束在前置专栏《AI Python办公自动化》的 Day 14我们用ReAct模式实现了一个简单的 Agent——让 LLM 输出Thought/Action/Observation文本来循环调用工具。那是一个很好的起点但离真正的 Agent 框架还有距离。本篇我们要做的是从零搭建一个结构化的 Agent 框架骨架包含工具系统、Agent Loop、记忆管理让 LLM 真正从回答者进化为执行者。② 传统写法写死if-else的困境面对用户可能问任何问题的场景传统做法是写死分支# 传统做法写死 if-else 分支处理不同请求defhandle_request(user_input):if几点inuser_inputor时间inuser_input:returnget_current_time()elif计算inuser_inputor算inuser_input:expressionextract_expression(user_input)returncalculate(expression)elif读文件inuser_input:filepathextract_filepath(user_input)returnread_file(filepath)else:return我无法处理这个请求这种做法的问题很明显新功能要改代码每加一个能力就要加一个if分支无法处理未知请求用户的表述千变万化关键词匹配太脆弱无法多步推理用户说先查时间再算一年有多少小时if-else 无法拆解多步任务维护噩梦分支越来越多代码越来越乱本质上if-else是在替 AI 做决策——你提前猜好了所有可能的情况然后写死规则。而 Agent 的思路完全不同让 AI 自己决策。你只需要告诉它有哪些工具可用它自己决定用哪个、怎么用、什么时候用。③ AI增强Agent Loop核心循环Agent 的核心是一个循环——Agent Loop┌──────────┐ │ 1. 感知 │ ← 接收任务和历史记忆 └────┬─────┘ ▼ ┌──────────┐ │ 2. 规划 │ ← LLM 决策做什么用什么工具 └────┬─────┘ ▼ ┌──────────┐ │ 3. 行动 │ ← 执行工具 └────┬─────┘ ▼ ┌──────────┐ │ 4. 观察 │ ← 获取工具返回结果 └────┬─────┘ ▼ ┌──────────┐ │ 5. 反思 │ ← 更新记忆判断是否完成 └────┬─────┘ │ ▼ 完成了吗 ──否──→ 回到第1步感知 │ 是 ▼ 返回最终结果五步循环的含义感知PerceiveAgent 接收用户的任务描述以及之前所有步骤的执行记录记忆规划PlanLLM 分析当前情况决定下一步做什么——调用哪个工具、传什么参数行动Act执行 LLM 选择的工具观察Observe获取工具的返回结果反思Reflect将结果存入记忆判断任务是否完成。未完成则回到第1步继续循环和前置专栏的ReAct模式相比这个框架有几个关键升级结构化输出不再用正则解析文本而是让 LLM 输出标准 JSON解析更可靠工具系统Tool基类统一管理新增工具只需注册不用改 Agent 逻辑记忆管理每一轮的思考、行动、观察都记录在 history 中Agent 能看到自己之前做了什么终止保护max_steps防止死循环和 Day 02 的关系本篇用 JSON 文本协议让 LLM 输出决策下一篇会升级为标准Function Calling让工具调用更规范。④ 完整代码从零搭建 Agent 框架代码结构整个 Agent 框架分为四层agent_skeleton.py ├── Tool 类 → 工具基类统一工具接口 ├── Agent 类 → Agent Loop 核心实现 ├── 内置工具函数 → calculate / get_time / read_file / write_file └── __main__ → 演示运行环境准备pipinstallopenai python-dotenv在项目目录下创建.env文件# GLM API Key永久免费注册地址https://open.bigmodel.cn/ GLM_API_KEY你的Key第一层Tool工具基类Tool类是所有工具的统一接口。每个工具需要四个属性名称、描述、参数说明、执行函数。classTool:def__init__(self,name,desc,params,func):self.name,self.desc,self.params,self.funcname,desc,params,funcdefexecute(self,**kw):try:returnstr(self.func(**kw))exceptExceptionase:returnfError:{e}设计要点execute方法永远返回字符串不抛异常。这样 Agent 不用处理工具报错只需要读取返回文本就能判断成功还是失败。第二层Agent类 -Agent Loop核心Agent类是整个框架的大脑。它的run方法实现了完整的Agent LoopclassAgent:PROMPTYou are an AI agent. Use tools to complete tasks. Tools: {tools} Respond JSON: {{thought:..., action:tool_name or final, action_input:{{...}}}} Done: actionfinal with {{answer:...}}def__init__(self,toolsNone,max_steps10):self.llmLLMClient(providerglm)self.tools{t.name:tfortin(toolsor[])}self.max_stepsmax_steps核心的run方法——这是Agent Loop的具体实现defrun(self,task):history[]forstepinrange(1,self.max_steps1):sys_msgself.PROMPT.format(toolsself._build_tools_desc())msgfTask:{task}\nifhistory:msgPrevious:\n\n.join(history)\nmsgNext?respself.llm.chat_json(msg,system_promptsys_msg,temperature0.3)try:decjson.loads(resp)except:returnresp thought,action,inpdec.get(thought,),dec.get(action,final),dec.get(action_input,{})ifactionfinal:returninp.get(answer,str(inp))ifisinstance(inp,dict)elsestr(inp)obsself._execute_tool(action,inp)print(f[Step{step}]{thought}→{action}→{obs})history.append(fStep{step}: Think「{thought}」→{action}({json.dumps(inp,ensure_asciiFalse)}) →{obs})returnTask incomplete上面只展示了核心逻辑完整代码包含错误处理、日志输出等细节见配套源码文件agent_skeleton.py。第三层内置工具四个内置工具覆盖计算、时间、文件读写defcalc(expression:str)-str:ifnotre.match(r^[\d\-*/.()\s]$,expression):returnError: invalidtry:returnstr(eval(expression,{__builtins__:{}},{}))exceptExceptionase:returnfError:{e}defget_time()-str:returndatetime.now().strftime(%Y-%m-%d %H:%M:%S)defread_file(path:str)-str:ifnotos.path.exists(path):returnfError: no file:{path}withopen(path,r,encodingutf-8)asf:returnf.read()defwrite_file(path:str,content:str)-str:dos.path.dirname(path)ifd:os.makedirs(d,exist_okTrue)withopen(path,w,encodingutf-8)asf:f.write(content)returnfWritten{len(content)}chars完整代码中包含安全检查如calculate限制字符、read_file截断超长内容和错误处理详见agent_skeleton.py。第四层演示运行if__name____main__:agentAgent(tools[Tool(calc,Calculate math,{expression:expr},calc),Tool(time,Get current time,{},get_time),Tool(read,Read file,{path:path},read_file),Tool(write,Write file,{path:path,content:text},write_file),])agent.run((1500500)*0.15 and write to result.txt)运行效果 任务: 现在几点了然后帮我算一下一年有多少小时 --- 步骤 1 --- 思考: 用户想知道当前时间我需要先调用 get_time 工具 行动: get_time 输入: {} ️ 观察: 当前时间: 2026年07月24日 15:30:00 周四 --- 步骤 2 --- 思考: 已获取时间接下来需要计算一年有多少小时即 365 * 24 行动: calculate 输入: {expression: 365 * 24} ️ 观察: 计算结果: 8760 --- 步骤 3 --- 思考: 已获取时间和计算结果可以汇总回答了 行动: final 输入: {answer: 现在是2026年7月24日15:30周四。一年有8760小时365×24} ✅ 完成: 现在是2026年7月24日15:30周四。一年有8760小时365×24Agent 自主完成了三步先查时间再算乘法最后汇总回答。整个过程没有一行if-else——LLM 自己决定了每一步该做什么。此套代码是核心代码想要完整代码的请评论区留言领取⑤ 成本透明项目费用GLM-4.7-Flash API永久免费上下文窗口200K Token最大输出128K TokenChromaDB后续篇用到开源免费本篇代码运行成本0 元GLM-4.7-Flash 是智谱AI提供的永久免费模型200K上下文窗口足够覆盖大多数 Agent 任务。注册地址https://open.bigmodel.cn/⑥ 练手改造学完本篇试试这些改造入门级添加天气查询工具写一个tool_weather(city: str)函数可以先返回假数据注册到tools列表让 Agent 回答北京今天天气怎么样调整max_steps把max_steps改成 3 或 15观察 Agent 行为变化修改系统提示词在SYSTEM_PROMPT中加一条规则如果任务需要多步计算先列出步骤再逐步执行进阶级添加工具使用限制给每个Tool加一个max_calls属性记录调用次数超过限制就返回该工具已达使用上限实现流式输出用LLMClient的流式接口替代chat_json让思考过程实时显示多任务管理让 Agent 支持同时接收多个任务按优先级排序执行本篇的 JSON 文本协议虽然能用但依赖 LLM 输出格式正确。Day 02 会用标准Function Calling替代让工具调用更可靠。⑦ 资源链接GLM 开发平台https://open.bigmodel.cn/注册免费获取 API Key前置专栏AI Python办公自动化Day 14 ReAct Agent 是本篇的前置内容ReAct 论文https://arxiv.org/abs/2210.03629 Reasoning Acting 的原始论文Reflexion 论文https://arxiv.org/abs/2303.11366 Agent 自我反思Day 11 会详细讲解本篇完整源码agent_skeleton.pyllm_client.py.env.example下篇预告Day 02 · Function Calling 精通——让AI主动调用你的函数。本篇用 JSON 文本协议让 Agent 决策但这种方式依赖 LLM 输出格式正确。下一篇我们用标准 Function Calling让工具调用从解析文本升级为原生支持。专栏持续更新中点个关注不迷路 ✨专栏推荐「AI Python 系列」第 05 栏 · AI Agent实战连载中「AI Python 系列」第 01 栏 · AI自动化办公连载中「AI Python 系列」第 02 栏 · AI数据可视化已完结「AI Python 系列」第 03 栏 · AIPython 爬虫实战已完结「AI Python 系列」第 04 栏 · AIWeb全栈连载中「AI Python 系列」第 06 栏 · AI多模态连载中资源领取关注作者获取本栏完整代码和数据集©️ 梅雅达编程笔记原创 · 首发 CSDN · 转载请注明出处

相关新闻

AI桌面应用开发指南:云端与本地混合架构实战解析

AI桌面应用开发指南:云端与本地混合架构实战解析

最近很多开发者都在讨论一个看似简单,却越来越让人困惑的问题:我做的这个带AI功能的东西,到底算不算一个“桌面应用”?你可能也遇到过类似场景:用Python写了个脚本,调用OpenAI API处理本地文档,…

2026/8/21 7:34:46 阅读更多 →
MyBatis核心原理与高频面试题解析

MyBatis核心原理与高频面试题解析

1. MyBatis面试题解析:核心概念与高频考点MyBatis作为Java生态中最受欢迎的ORM框架之一,其设计理念和实现机制一直是面试中的重点考察领域。根据近三年一线大厂面试统计数据显示,MyBatis相关问题的出现频率高达78%,主要集中在配置…

2026/8/21 7:34:46 阅读更多 →
1270万应届毕业生or450万行业急需缺口之间的那些事!

1270万应届毕业生or450万行业急需缺口之间的那些事!

2026年夏天,1270万高校毕业生走出校门。比去年多了48万,连续八年突破千万大关。叠加往届未就业、考研考公落榜、海归回流,全年求职大军超1500万。 面向应届生的有效校招岗位仅567万个,整体供需比接近2比1。6月份,16至2…

2026/8/21 7:34:46 阅读更多 →

最新新闻

手机存储扩容新思路|四款主流云盘工具功能实测与对比

手机存储扩容新思路|四款主流云盘工具功能实测与对比

一、前言当下手机高清影像、原创素材、办公文档与社交缓存数据持续增长,设备自带的本地存储空间很容易出现容量不足的情况,影响日常存储与使用体验。更换大容量设备、硬件拆机扩容存在成本高、硬件改动风险大的问题,云端软件扩容凭借无需改动…

2026/8/21 9:01:48 阅读更多 →
AI视频生成技术拆解:Seedance类模型在企业内容生产中的工程化实践

AI视频生成技术拆解:Seedance类模型在企业内容生产中的工程化实践

作为长期做AIGC应用落地的工程师,这一年被业务方问得最多的问题是:"AI视频生成能不能接进我们的内容生产流程?"答案是能,但坑不少。这篇文章从工程视角拆解Seedance类视频生成模型在企业场景下的落地实践。 一、Seedanc…

2026/8/21 9:01:48 阅读更多 →
国内外标准文献免费查询及下载攻略——国标 行标 团体标,国际标准 国外标准,全搞定,建议收藏

国内外标准文献免费查询及下载攻略——国标 行标 团体标,国际标准 国外标准,全搞定,建议收藏

文章目录前言一、国内官方免费标准平台1. 国家标准信息公共服务平台2. 全国标准信息公共服务平台3. 分行业专属免费标准网站二、国际 / 国外标准官方渠道1. ISO 国际标准化组织官网2. IEC 国际电工委员会3. 欧美常用行业标准官网三、第三方网站1. 国内常用的第三方网站2. 国外的…

2026/8/21 9:01:48 阅读更多 →
线性规划实战:从模型构建到求解分析,掌握数学建模核心优化方法

线性规划实战:从模型构建到求解分析,掌握数学建模核心优化方法

1. 从“拍脑袋”到“算出来”:线性规划在数学建模中的核心价值如果你参加过数学建模比赛,或者在工作中处理过资源分配、生产计划这类问题,大概率听过“线性规划”这个词。很多人的第一印象是:一堆数学公式,看着就头疼。…

2026/8/21 9:01:48 阅读更多 →
2026求职趋势:微证书化与人机协同面试解析

2026求职趋势:微证书化与人机协同面试解析

1. 求职市场变局:从"金三银四"到"全年备战" 2026年的求职市场早已不是我们熟悉的模样。记得五年前,每到春节后,"金三银四"的招聘旺季总会如期而至,求职者们摩拳擦掌准备简历,HR们忙着筛…

2026/8/21 9:01:48 阅读更多 →
PFTrack 2017 Windows版下载与详细安装指南(含图文步骤+实操视频教程)

PFTrack 2017 Windows版下载与详细安装指南(含图文步骤+实操视频教程)

温馨提示:文末有联系方式 PFTrack 2017 Windows专业版全面介绍 PFTrack 2017是业界公认的高精度三维摄像机反求与动态物体跟踪解决方案,专为影视后期、VFX特效合成及动态匹配需求深度优化,支持Windows平台稳定运行。 一键直达:高…

2026/8/21 9:00:48 阅读更多 →

日新闻

机场边检旅客定位系统国产化白皮书:算法、硬件、底座平台全程自主

机场边检旅客定位系统国产化白皮书:算法、硬件、底座平台全程自主

前言随着国家数字基础设施信创替代、关键技术自主可控战略持续深化,口岸智慧安防、边检智能管控领域正全面进入国产化、自主化、安全可控升级周期。当前国内机场边检旅客识别与定位体系长期依赖国外商用视觉算法、进口成像硬件、闭源通用计算平台,存在核…

2026/8/21 0:00:42 阅读更多 →
别再把“数字孪生”当空间智能了!镜像视界揭开四维时空的真正面纱

别再把“数字孪生”当空间智能了!镜像视界揭开四维时空的真正面纱

别再把“数字孪生”当空间智能了!镜像视界揭开四维时空的真正面纱当下数字化建设浪潮中,很多项目将三维可视化、视频贴图叠加的数字孪生等同于空间智能。传统数字孪生更多停留在三维场景复刻,擅长把物理世界“画出来、展示出来”,…

2026/8/21 0:00:42 阅读更多 →
105、车载温度范围-40°C到85°C的影像质量一致性——ISP参数温漂补偿与产线标定策略

105、车载温度范围-40°C到85°C的影像质量一致性——ISP参数温漂补偿与产线标定策略

105、车载温度范围-40C到85C的影像质量一致性——ISP参数温漂补偿与产线标定策略 去年冬天在北方某车厂做A样评审,凌晨四点的黑河试验场,零下三十三度。客户拿了一台冷启动的车,中控屏上倒车影像全是雪花噪点,暗部细节直接糊成一片。我第一反应是sensor温度没上来,暗电流…

2026/8/21 0:00:42 阅读更多 →

周新闻

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

如果你是一名开发者,最近可能已经感受到了AI大模型正在从“玩具”变成“生产力工具”的强烈信号。从代码补全到智能Agent,从本地部署到云端API,我们正处在一个技术栈快速重构的节点。然而,面对层出不穷的模型、框架和工具&#xf…

2026/8/21 3:21:33 阅读更多 →
工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/21 0:02:09 阅读更多 →
【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

2026/8/21 6:07:56 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/20 6:11:08 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/20 21:46:49 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/21 0:14:22 阅读更多 →