Agent与大模型:从聊天到办事,手把手搭建最小智能体
最近一年多我几乎每天都要跟“Agent”这个词打交道。有人把它叫智能体有人直接喊AI助手但真正能说清楚Agent和大模型之间差在哪的人其实不多。大家都能感知到Chat类产品只能聊天Agent却能“办事”。同样是处理一句请求为什么Agent能做到查资料、调系统、填表单、发通知而普通对话框只能吐一段文字这篇长文我想一次性把Agent是什么、为什么被当作大模型的下一站、以及怎么从零搭一个能跑起来的最小Agent讲透。内容会比较长预计7000字上下但每一段都尽量说人话。已经有过大模型调用经验的读者可以直接跳到第4部分看代码和踩坑实录如果是刚接触这个概念建议从第1部分按顺序读五分钟就能把骨架搭起来。1. 先搞清楚Agent和大模型到底是什么关系1.1 大模型是大脑Agent是装上手脚的大脑很多人把Agent误当成“另一个大模型”这是最常见的认知误区。大模型本质上是一个概率函数给它一段文本它预测下一个token是什么然后不断重复生成一整段回复。它有很强的理解和推理能力但它的全部世界都局限在“文本输入-文本输出”这个闭环里。Agent则是一个系统。它把大模型当作核心决策部件再挂上记忆、工具、任务规划、结果校验这些模块让模型不仅能“思考”还能“干活”。用生活类比说大模型像个绝顶聪明的军师满腹经纶但手无缚鸡之力Agent是给军师配上手脚、地图和通信兵让他的计谋真正落地执行。这也是为什么很多人第一次用Agent工具时会产生“这玩意好像会自己工作”的错觉。那不是模型突然变聪明了而是外围系统帮模型补足了行动能力。1.2 从Chat到Agent交互模式从“聊天”变成“派活”传统对话系统的交互方式是用户提问系统回答。无论模型多强它始终处于被动响应状态。用户让它写一段文案它写了用户让它列个计划它列了。但没有人要求它去执行计划因为对话系统根本接触不到外部世界。Agent改变了这个交互逻辑。用户不再只“提问”而是“派活”。比如你告诉Agent“每天上午十点检查某个网页的内容如果有更新整理成摘要发到工作群里。”这句话不是一句能被模型单次回答的问题而是一个包含监控、触发、摘要、通知四个环节的任务。Agent会把这个任务拆解成步骤先确认当前网页状态再设置定时检查机制一旦检测到变化调用文本摘要能力处理内容最后调用消息发送工具完成通知。整个过程用户只需要下达一次指令。这个转变看似简单实际影响深远。Chat模式把模型当成“更聪明的搜索框”Agent模式把模型当成“能独立处理任务的工作流节点”。后者才是软件系统能大规模接入AI的正确姿势。1.3 Agent与“AI编程”“RPA”有什么本质差异很多人会问Agent跟自动化脚本、RPA流程机器人不是一回事吗都是自动执行任务区别在哪传统自动化是“人先把所有情况都想好脚本按预设路线走”。遇到边界情况脚本只会报错或停止因为它没有判断能力。Agent的核心差异在于它内置了一个大模型作为决策引擎。它能在运行时动态判断“当前情况是否符合预期”如果不符合它能自动调整策略、尝试新的工具组合。举个例子传统脚本让机器人从某个接口抓数据如果接口结构变了脚本立刻失效。Agent遇到同样情况时可以读取报错信息分析接口返回的结构变化再自动修改请求参数重新尝试。它不保证每次都能成功但它具备了“尝试、失败、复盘、再尝试”的能力。所以Agent不是替代RPA而是把RPA从“机械执行”升级成“具备一定自主判断能力”的执行体。2. 为什么Agent被看作大模型的下一站2.1 纯问答模式解决不了真实业务闭环大模型刚火起来的那段时间行业里几乎所有Demo都是“聊天机器人”客服问答、知识库问答、辅助写作。这类产品本质上只做了信息处理没有做信息落地。用户问完问题得到答案然后呢没有然后了。真正的业务系统需要的是“完成动作”请假需要提交审批流外卖需要下单支付数据分析需要生成图表并发送给指定人。大模型的文本生成能力再强也替代不了这些动作。Agent的价值在于把“理解”和“执行”焊接起来。模型负责理解用户意图、制定计划工具和API负责执行具体动作。这个差距不是靠继续增大模型参数就能抹平的必须从系统架构层面补上。这也是为什么大量团队在尝试“大模型API网关”“大模型工具链”“大模型RPA”的方向。大家发现模型本身遇到瓶颈之后真正的增量来自外围工程能力。Agent恰好就是这个增量系统的载体。2.2 上下文窗口有限Agent需要外部记忆来扩容大模型一次能处理的文本长度在持续增长但“能处理”不等于“能长期记住”。对话一旦变长早期信息就会被压缩、遗忘用户不得不一遍遍重复背景。对真正的项目型任务来说这完全不可用。Agent通过记忆模块解决这个问题。短期记忆保留当前任务状态长期记忆把关键信息向量化后存入外部存储。需要时再检索找回。这相当于给模型配了一个无限容量的便签本突破了上下文窗口的物理限制。我在实际项目里遇到过这样一个场景让模型协助处理一份跨五天的数据分析任务期间涉及多轮筛选条件变更。如果只靠上下文第三天之后模型就开始混淆条件。接上外部记忆后每次筛选条件、时间范围、关键结论都持久化存储后续每一轮都能准确读取效果完全不一样。这就是Agent架构的价值。2.3 模型学会调用工具才能链接真实世界大模型的知识截止日期是确定的训练数据里也不包含你的私有系统、实时库存、最新价格。要让模型能回答“今天下午会议室有没有空位”必须有一个机制把会议室系统的数据实时喂给模型要让模型能“帮我把会议邀请发给参会人”必须有工具让模型触发邮件系统。这个机制就是Function Calling或Tool Use。模型在生成回复时不再只生成自然语言还可以生成“调用某个工具并传入特定参数”的结构化指令。框架负责执行这个指令然后把返回结果再交回模型继续处理。Agent把工具调用能力放大成了核心能力底座。一个Agent可以同时挂几十个甚至上百个工具数据库查询工具、消息推送工具、地图服务工具、内容审核工具。模型根据用户指令动态决定调用谁、按什么顺序调用。这比“提前配置死流程”灵活得多。2.4 商业落地需要可靠性Agent提供工程化手段大模型的单次输出有随机性同一个问题每次回复可能都不一样。这种特性在娱乐场景没问题但在企业流程里是致命的。企业需要的是“可复现、可追踪、可干预”的执行过程。Agent通过工程手段大幅度提升可靠性任务步骤可以被观测工具返回可以被校验异常路径可以设置人工确认关键动作可以记录日志。模型依然有概率犯错但至少每个环节都能被定位、被回滚、被纠错。这也是我判断“Agent是大模型下一站”的根本原因它不只是把模型包装一下而是给模型盖了一套完整的工程脚手架。没有这套脚手架模型再聪明也进不了生产环境。3. Agent核心组件拆解规划、记忆、工具和循环3.1 规划模块把大目标拆成可执行的子任务一个成熟的Agent不会直接把整段任务塞给模型然后等待奇迹。它通常有单独的规划模块负责把目标拆解成步骤。规划方式有好几种。第一种是“一次性拆解”Agent收到请求后先生成一份完整的任务清单。清单里的每个步骤定义清楚后续按清单执行。适合步骤确定、依赖关系清晰的任务。第二种是“动态规划”Agent先执行当前一步根据结果再决定下一步怎么做。适合探索性任务。规划模块还可以包含反思机制。每执行完一轮Agent会把“预期结果”和“实际结果”对比找出偏差原因再调整下一轮计划。这个机制特别适合处理复杂的不确定任务。我自己做模拟项目X的时候让Agent负责从多个数据源采集信息、去重、汇总成报告。如果不加反思机制Agent经常会在第二步出错后一直沿错误方向执行。加上一轮“检查当前产出是否满足原始需求”的反思后很多低级错误在执行中途就被拦截了。3.2 记忆模块短期状态加长期知识记忆模块是Agent区别于普通模型调用的重要模块。短期记忆通常就是对话上下文。Agent把历史动作、工具返回结果、模型产出按顺序拼接作为下一轮决策的输入。这个上下文有长度上限所以需要做截断或摘要。长期记忆更适合用向量数据库承载。关键信息被编码成向量存入库中新任务到来时先做相似度检索找到最相关的历史信息。我遇到过的情况是用户上次交代过“报告格式统一用PDF”这次再发新任务时Agent不需要用户重新强调直接从长期记忆里检索到这条偏好并应用到新任务上。这个体验比普通对话系统友好太多。需要提醒的是长期记忆不是越多越好。检索出来的信息如果本身是错的反而会污染当前任务。所以在写入长期记忆前要做一次质量过滤只保存足够确定、足够重要的信息。3.3 工具模型与外部世界之间的门工具是Agent能够“做事”的关键。一个Agent平台上通常会预置若干工具每个工具以函数形式存在有明确的入参和返回值。模型本身并不真正写代码调用函数它只是生成“我想调用某个工具参数是什么”的指令由Agent框架去真正执行。工具也可以不是普通函数而是外部API、数据库查询、甚至另一个Agent。工具之间允许组合调用形成链路。例如搜索工具获取信息信息清洗工具做结构化HTTP工具把结果POST到某个业务系统。工具定义越清晰模型调用越准确。我在实践中的经验是每个工具的名称要直观描述要写清楚“何时该用”“参数含义”“返回格式”。工具描述写得差再聪明的模型也会乱调工具。3.4 执行循环观测-思考-行动-再观测Agent能持续工作的核心机制是“执行循环”。整个循环通常包含四步观测接收用户指令和当前环境状态。思考模型分析当前情况决定下一步动作。行动调用工具或生成回复。再观测把工具结果作为新信息回到第一步继续循环。这个循环通常由Agent运行时驱动允许执行多轮直到模型认为任务完成或达到预设的步骤上限。循环中每一步都会被记录便于日志追踪和问题排查。这个“观测-思考-行动”模式非常像人类处理工作事务先看情况再想对策然后动手做完再看结果不行就调整。这也是Agent让很多人感到“智能感”的来源。它不是一步到位地生成最终答案而是在与环境交互的过程中逐步逼近目标。3.5 一个日程管理Agent的完整推理路径示例为了把上面几块串起来用一个简单示例说明。假设用户说“帮我把本周三下午三点到四点的会议改成线上会议并通知所有参会人。”Agent的推理路径大致是规划识别任务包含“查询当前会议信息”“修改会议属性”“获取参会人列表”“发送通知”四个步骤。工具调用第一轮调用日历查询工具入参“本周三下午三点”返回会议ID和会议室信息。判断模型根据返回结果判断该会议当前状态可修改于是调用会议修改工具把地点字段改为线上会议链接。工具调用第二轮调用参会人查询工具获取所有参会人联系方式。工具调用第三轮调用消息通知工具逐个发送会议变更通知。总结生成一段结果描述告诉用户修改完成以及通知发送情况。整个过程看起来流畅实际上背后是模型多次决策、工具多次执行、状态多次流转。任何一个环节出错都可能需要回溯调整。这也解释了为什么Agent开发调试比普通后端接口复杂得多。4. 手把手搭建一个最小可用的Agent4.1 最简架构模型调用加上循环调度在引入任何重量级框架之前完全可以用几十行代码实现一个最小Agent。这样做的最大好处是你能清楚看到Agent运行的每一步而不是被框架魔法蒙住。我建议先理解透这个最小实现然后再去考虑是否引入框架。最小Agent的架构只有三个部分模型调用接口、工具注册表、执行循环。工具注册表是一个字典key是工具名value是函数对象。执行循环每轮做三件事调模型、解析输出、执行工具。这种方式也方便调试。每一步的输出都打印出来问题出在哪一步一目了然。4.2 准备环境和模型接口需要一台能运行Python3.8以上的机器安装requests库即可。模型接口这里用通用的HTTP格式描述读者可根据自己手上的模型服务替换地址和鉴权方式。import json import requests MODEL_ENDPOINT http://your-model-server/v1/chat/completions def call_model(messages): payload { model: your-model-name, messages: messages, temperature: 0.2, max_tokens: 1024 } resp requests.post(MODEL_ENDPOINT, jsonpayload, timeout30) resp.raise_for_status() data resp.json() return data[choices][0][message][content]这里把temperature设成0.2是为了让模型行为更专注、更可复现。如果做创意类任务可以调高到0.8但Agent场景我更倾向于低温度。4.3 定义两个实用工具我给最小Agent预置两个工具一个获取当前时间一个发送通知。这两个工具足以展示完整的工具调用闭环。import time def get_current_time(): return time.strftime(%Y-%m-%d %H:%M:%S) def send_message(receiver, content): print(f[通知] 发送给 {receiver}: {content}) return success TOOLS { get_current_time: get_current_time, send_message: send_message, }这里的send_message只是一个模拟实现实际项目中可以替换成HTTP请求、企业IM机器人、邮件接口等。工具函数的关键是“入参明确、返回值可被模型理解”。4.4 主循环让模型学会输出结构化指令Agent主循环的核心是让模型在需要调用工具时输出一段JSON而不是普通文字。我给模型规定如下格式{tool: 工具名, params: {参数1: 值1, 参数2: 值2}}模型输出这个JSON后执行循环解析它找到对应的工具函数并执行然后把结果拼接到消息序列中继续下一轮。import json SYSTEM_PROMPT 你是一个任务助手。你需要调用工具时只输出一个JSON对象格式如下 {tool: 工具名, params: {...}} 如果不需要调用工具直接用自然语言回答用户。 可选工具get_current_time, send_message def extract_action(text): try: return json.loads(text) except json.JSONDecodeError: start text.find({) end text.rfind(}) if start ! -1 and end ! -1: try: return json.loads(text[start:end1]) except json.JSONDecodeError: return None return None def run_agent(user_request, max_steps5): messages [ {role: system, content: SYSTEM_PROMPT}, {role: user, content: user_request}, ] for step in range(max_steps): print(f Step {step 1} ) model_reply call_model(messages) print(f模型回复: {model_reply}) action extract_action(model_reply) if action and tool in action: tool_name action.get(tool) params action.get(params, {}) if tool_name in TOOLS: try: result TOOLS[tool_name](**params) messages.append({role: user, content: f工具返回: {result}}) except Exception as e: messages.append({role: user, content: f工具执行出错: {e}}) else: messages.append({role: user, content: f工具 {tool_name} 不存在}) else: return model_reply return 达到最大轮数任务未完成这个循环看起来简陋但所有Agent框架的核心结构都逃不出这个模式。理解它之后再去读那些复杂框架的源码会轻松很多。4.5 跑一个例子看效果我们把Agent跑起来输入一个需要两次工具调用的请求“现在时间是多少然后把这句话‘会议改期’发送给某同事。”正常流程下模型会先调用get_current_time拿到时间然后把时间和通知内容组合再调用send_message发送通知最后输出完成提示。整个过程在两到三轮内完成。我建议第一次跑的时候把max_steps设置成5并在每一步打印消息序列。你会观察到一个很有意思的现象模型并不是一次就把所有事情做完而是根据上一轮工具返回结果动态决定下一步动作。这就是Agent与普通模型生成的本质区别。5. 常见问题与排查技巧实录5.1 模型输出的JSON永远解析失败这是新手最常遇到的问题。模型虽然被要求在需要工具时输出JSON但偶尔会输出前后带说明文字的文本或者干脆把JSON写错。我常用的办法是先直接尝试json.loads失败后提取字符串中第一对最外侧的花括号再做解析。如果还是失败就把提取到的文本转成字符串给到模型告诉它“上一次输出格式无法解析请重新输出一个合法JSON”。这个反馈机制非常有效。再狠一点的做法是在系统提示词里加入“只输出JSON不要输出任何其他内容”并把温度调到0。大部分模型会立刻变乖。5.2 工具名和参数是模型编造的模型存在幻觉有时会编造出一个我们根本没定义过的工具名或者给工具传一个不存在的参数。比如我们只定义了send_message模型却调用“send_email”。这往往是因为系统提示词里工具描述不够显眼模型没有记住可选列表。我的排查步骤第一步检查工具描述是否清晰第二步在工具调用入口做一道校验不在注册表里的工具直接拒绝第三步把真实工具列表在每一轮对话中携带一遍。第三种方式会消耗更多token但能显著降低乱调工具的概率。参数校验同样重要。比如send_message需要receiver和content两个参数执行前必须确认它们存在且非空。否则模型一旦漏参数工具函数就会直接报错中断整个流程。5.3 Agent进入死循环反复调用同一个工具这是Agent长期运行的常见隐患。模型在某个状态判定不准确导致它反复执行同一个工具每次都得到相同结果然后又做出同样决策陷入死循环。解决方式有三个层面。第一设置max_steps上限到达上限强制终止这是兜底方案。第二在每一轮循环前检查“上一次工具调用和当前要调用的工具是否完全一致且参数相同”如果是则判定重复终止或给模型一个警告。第三在提示词中让模型每轮先尝试总结“到目前为止的进展”出现重复动作时模型更容易意识到问题。我在实际项目里同时用了三层保障死循环基本消灭。但日志里仍然需要保留原始记录方便追溯是哪一环判断出了偏差。5.4 上下文越攒越长费用越烧越高Agent每执行一轮消息序列就会增加。超过一定轮数后上下文的token数量迅速膨胀模型响应变慢费用也成倍增长。几种常用策略一是滑动窗口只保留最近N轮对话二是摘要压缩超过长度限制后让模型把之前的关键状态浓缩成摘要三是关键信息外置把中间状态写入临时文件或内存存储只在上下文里保留最新状态和指针。我建议不要等到爆再处理每执行五轮左右就做一次压缩。对大部分Agent任务来说最近三轮的上下文加一份全局摘要足以支撑正确决策。5.5 并发调用导致限流和错误Agent在实际业务中不会只有一个用户。多用户并发调用模型接口时很可能触发限流。我经常用的处理手段是增加重试机制遇到429状态码时等待一段时间再试同时做请求合并和缓存对相同指令相同参数的调用直接复用历史结果。另外要注意不是所有任务都需要实时调用模型。先把确定性的规则逻辑写在代码里比如“参数校验”“黑白名单”“格式转换”这些根本不需要模型参与。模型只处理真正需要理解的部分这样可以大大降低模型调用频率和成本。6. 从最小Agent到可落地的系统6.1 先别让模型控制一切加入规则层最小Agent把决策权完全交给模型这在Demo中没问题但生产环境里不能这样。很多任务其实是确定性的比如“如果返回内容包含错误码就重试”这种事情用代码写比让模型判断更可靠。一个更合理的架构是规则优先模型兜底。第一步用代码过滤常见情况只有规则无法处理的部分才交给Agent。这样既省token又大幅提升整体可靠性。这个理念和微服务里的“网关”很像。网关承担鉴权、限流、协议转换业务逻辑再往后透传。Agent的规则层相当于这道网关把杂乱的外部请求先梳理一遍。6.2 单Agent能力有限多Agent协作才是趋势单个Agent面对复杂任务时上下文会越来越乱工具数量也会膨胀最终导致模型判断精度下降。一个常见的解决思路是按职责拆分多个Agent例如一个Agent负责收集信息一个Agent负责撰写内容一个Agent负责审核输出。每个Agent只专注于自己的领域配置的工具少而精决策质量反而大幅提升。多Agent之间通过消息队列或共享状态协同。A产出结果后写入消息队列B监听并消费完成自己的环节后再往下传。我在模拟项目X里尝试过这种模式最明显的好处是每个Agent的系统提示词都很短模型不需要了解全链路出错概率明显下降。需要注意的是多Agent不是越多越好。Agent之间的通信开销、状态一致性、错误传播都是成本。如果单Agent能完成就别硬拆。6.3 建立Agent的评测集和回归测试Agent有随机性所以上线前必须建立一套评测机制。我通常准备一个固定任务集包含几十个典型用户请求覆盖正常路径和边界情况。每次修改提示词或工具后跑一遍这套任务集记录三个指标任务完成率、平均轮数、平均消耗token数。任务完成率是最直观的质量指标。如果某个改动让完成率下降哪怕看起来更“智能”也必须回滚或调整。平均轮数反映效率轮数过多说明Agent在绕路平均token消耗直接关联成本后期优化空间很大。很多团队忽略这套评测机制结果Agent今天好用明天不好用。没有评测集你连“变好还是变坏”都说不清。6.4 个人体会和后续扩展思路做Agent这一年多我最深的感受是Agent真正的难点不在模型而在工程。模型能力一直在进步但能否稳定接入业务系统取决于记忆管理、工具设计、日志追踪、评测回归这些看似不性感的工程细节。如果打算继续深入建议从两个方向扩展一是给Agent加上多轮人工确认机制在关键操作前暂停并询问用户这是提高信任度最快的方式二是把Agent的每一步执行都转成结构化跟踪记录做到可回放、可审计这样才能在企业场景里真正推得开。最后分享一个实用的小技巧不管用多高级的框架日志里每条信息都要带时间戳和来源模块。Agent任务链路长定位问题靠的就是一份完整、有序、可检索的日志比任何花哨的监控面板都重要。

相关新闻

从零搭建RAG本地知识库:用检索增强生成根治大模型幻觉

从零搭建RAG本地知识库:用检索增强生成根治大模型幻觉

前段时间我拿一份几十页的内部运维规范文档去问通用大模型:“某个告警的处理时限是多少?”它给了我一个完全合理、语气笃定,但文档里根本不存在的数字,还附带了一段有模有样的流程说明。我翻了半天原文,愣是没找到这一…

2026/10/18 11:23:03 阅读更多 →
电容层析成像图像重建:inversecgls.m 三种算法解析与调参指南

电容层析成像图像重建:inversecgls.m 三种算法解析与调参指南

简介:面向电容层析成像(ECT)研究者的MATLAB算法文件包,聚焦两相流场景下的图像重建逆问题求解。压缩包共1个文件,为inversecgls.m脚本,大小仅1KB,适合快速部署与二次开发。该脚本涵盖最小二乘、…

2026/10/18 11:23:03 阅读更多 →
EasyX图形编程入门:用C语言实现植物大战僵尸课设

EasyX图形编程入门:用C语言实现植物大战僵尸课设

简介:这是一份基于EasyX图形库与标准C语言实现的《植物大战僵尸》简化版游戏源码,专为计算机类专业学生课程设计、大作业及项目入门实践打造,适用于计科、人工智能、物联网等方向的学习者,兼顾零基础入门与进阶二次开发需求。资源…

2026/10/18 11:23:03 阅读更多 →

最新新闻

GitHub热榜风向突变:AI工程化项目集体占位,可观测性与网关成焦点

GitHub热榜风向突变:AI工程化项目集体占位,可观测性与网关成焦点

这几天的 GitHub 热榜有点意思,一眼扫过去,明显感觉到风向在变。今天的榜单来了个“四进三出”,新晋的项目几乎都压在 AI 工程化那一层,不是大模型本身,而是围绕大模型做落地、做治理、做可靠性、做成本控制的基础设施…

2026/10/18 12:35:29 阅读更多 →
H5网页扫码实战:三库分层组合实现95%安卓机型稳定识别

H5网页扫码实战:三库分层组合实现95%安卓机型稳定识别

简介:本资源是一套面向前端开发者与H5移动端应用实践者的二维码/条形码识别技术集成方案,聚焦于在纯Web环境中实现免App扫码功能,适用于电商核销、物流追溯、信息共享等轻量级业务场景。资源包含7个核心文件(6个JS库1个HTML入口页…

2026/10/18 12:35:29 阅读更多 →
JSON工具类设计与AI输出解析:SpringBoot与Uniapp前后端统一实践

JSON工具类设计与AI输出解析:SpringBoot与Uniapp前后端统一实践

“第九讲:JSON工具类”,这一讲不做推荐算法,也不写页面样式,而是解决整个项目中一个很容易被忽视、但几乎每个接口都会碰到的底层问题:怎么把 Java 对象、AI 返回的大段文本、小程序端接收到的响应数据,统一…

2026/10/18 12:35:29 阅读更多 →
华三三层端口聚合配置详解:静态与动态模式实战指南

华三三层端口聚合配置详解:静态与动态模式实战指南

简介:本资源是一份面向网络工程师、运维人员及备考H3C认证的技术人员的实操型配置指南,聚焦华三交换机三层端口聚合的核心场景——静态与动态两种模式的完整部署方案。内容覆盖聚合口创建、三层路由模式启用、物理端口加入、动态协商配置及关键验证命令&…

2026/10/18 12:35:29 阅读更多 →
Honeywell DCS交换机更换:FTE冗余网络零中断实施指南

Honeywell DCS交换机更换:FTE冗余网络零中断实施指南

简介:本资源是一份面向工业自动化工程师、DCS系统运维人员及Honeywell平台实施技术人员的实操型技术文档,聚焦Honeywell DCS系统中交换机更换这一关键维护任务,解决现场因设备老化、故障或升级引发的网络组件替换难题。文档严格依据Honeywell…

2026/10/18 12:35:29 阅读更多 →
WindRunnerMax:风电SCADA数据清洗、特征工程与功率预测实战

WindRunnerMax:风电SCADA数据清洗、特征工程与功率预测实战

1. 项目概述与设计思路1.1 核心需求解析:风速数据到底卡在哪做风电相关数据工作的人应该都有过这种体验:SCADA系统导出来的风速数据,看似整整齐齐一行行时间戳加数值,真正拿去做分析时却处处是坑。我这次做的这个WindRunnerMax项目…

2026/10/18 12:34:29 阅读更多 →

日新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 0:55:02 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 12:16:16 阅读更多 →