新闻详情

新闻详情

首页 / 资讯中心 / 详情

10万star AI Agent源码解剖:软件工程视角下的边界、可观测性与容错设计

发布时间:2026/9/29 18:33:35来源:尧图网络
10万star AI Agent源码解剖:软件工程视角下的边界、可观测性与容错设计
大概每个想认真做 AI Agent 的工程师都会在某一天忍不住打开那个 10 万 star 的仓库看两眼。我前阵子也干了这件事不过没急着跑 demo而是把核心源码从头到尾读了一遍。读完之后最大的感受是太多人把这个项目当成 API 手册来翻或者当成面试题来背可真正值钱的不是那些接口而是它作为一个大型软件系统在充满不确定性的 AI 场景里建立起的工程秩序。这篇文章不打算介绍某个具体产品的功能清单也不做使用教程。我想站在软件工程的视角把从这类顶级开源 Agent 项目里观察到的东西拆开讲清楚模块边界怎么划、抽象该做到什么程度、日志与 trace 怎么设计、模型不可靠时系统怎么兜底、测试怎么组织。如果你正准备从 0 到 1 搭建一个 AI Agent或者已经在维护一个被多个业务方接入的 Agent 平台这篇内容应该能帮你少走不少弯路。1. 为什么是 AI Agent 项目而不是普通的 CRUD 后端先说一个很多人没意识到的点10 万 star 的 AI Agent 项目本质上并不是一个“AI 项目”而是一个“在极端不确定性条件下运行的大型软件系统”。它和传统后端的差异比大多数人想象中大得多。1.1 这类项目的规模感拿我读的这个项目来说它并不是一个单体仓库塞满所有功能而是很典型的“内核 外围”结构。核心引擎只占源码总量的一小部分真正撑起整个生态的是多语言 SDK、CLI 工具、服务端、插件系统、文档站、示例仓库这六大部分。这本身就是一种工程决策核心保持精简外围通过明确接口扩展而不是把所有能力都堆进一个进程里。我大概数了一下核心代码量级通常在几万行以内但整个项目组织的代码规模会是这个数字的十倍甚至更多。这种“小核心、大外围”的布局和很多企业里“一个服务包打天下”的做法形成鲜明对比。后者看起来起步快但一旦业务复杂到某个程度修改成本会指数级上升。1.2 AI Agent 项目与传统后端的三个本质差异传统后端应用比如一个典型的订单系统输入输出是确定的参数校验失败就返回 400库存不足就返回错误码所有分支都在代码里写死。你可以通过单元测试覆盖绝大多数路径因为系统行为是确定的。但 AI Agent 项目面对的是完全不同的情况输入从“确定”变成“概率”。用户发给 Agent 的是一段自然语言模型返回的也是一个概率采样结果。同一个 prompt今天和明天可能给出不同答案温度参数稍微调一点输出走向完全不一样。依赖链从“可控”变成“黑盒”。你调用的是外部模型服务无法控制它的内部推理过程甚至无法复现一次历史调用。模型版本升级后行为可能悄然变化而你的系统还得保持稳定。副作用从“单点”变成“全链路”。传统后端一个请求最多写一次数据库但 Agent 一次任务规划可能触发三五个工具调用这些调用有真实世界副作用发消息、改配置、写文件、调外部 API。任何一个环节出错链条都会出问题。这三个差异决定了你不能用写 CRUD 的思路来写 Agent。你必须在每一个环节做防御而不是假设模型永远正确。1.3 什么人适合读这一篇如果你属于下面几类人这篇文章应该值得你读完正在从 0 到 1 搭建 AI Agent但不确定模块怎么拆分、接口怎么设计负责企业级 Agent 平台要处理多智能体协作、权限控制、可靠性问题本身是做后端的想了解传统软件工程方法论怎么迁移到 AI 场景准备面试高级工程师岗位想在系统设计环节拿出有深度的方案。2. 从 0 到 1 搭建 AI Agent最该先想清楚的边界设计很多 Agent 小项目一开始跑得很欢提示词堆得越来越多代码也越来越难维护。问题往往不在于“模型不够聪明”而在于边界没划清楚。2.1 模块边界核心引擎不能依赖任何具体模型供应商我在读这个 10 万 star 项目时印象最深刻的一点是它的依赖方向核心引擎层完全不依赖任何具体模型供应商的 SDK。OpenAI、Anthropic、本地模型全部通过同一个模型访问接口接入模型响应会被统一转换成项目自定义的消息类型。这个设计有什么好处好处在于核心引擎只关心“消息进来了、出去了、工具调用了”不关心这个消息是哪个模型生成的。于是模型的替换、升级、A/B 测试都变成了配置问题而不是代码问题。你今天想从闭源模型切换到开源模型只需要新增一个适配器不需要改动调度逻辑。反观很多从 0 到 1 的 Agent 项目直接在核心逻辑里调用某个模型的 SDK响应结构满天飞。等到想换模型、或者想同时支持多个模型时才发现所有代码都耦合死了改起来像一次重写。2.2 上下文边界记忆不是一个无穷大的袋子上下文管理是 Agent 项目里最容易出问题、也最容易被忽视的部分。很多人写 Agent 时把所有历史消息一股脑塞给模型美其名曰“让模型有完整上下文”。结果 token 消耗爆炸模型反而被无关信息干扰回答质量直线下降。成熟的 Agent 项目会把记忆拆成多层短期上下文就是当前对话窗口里的最近若干轮消息直接参与模型推理。工作记忆当前任务执行过程中的中间状态比如任务拆解出来的子任务列表、已经收集到的信息、还没执行完的工具调用。长期记忆跨会话的用户偏好、历史总结、向量库检索结果只在需要时按需注入。这三层记忆的生命周期完全不同。短期上下文随会话结束就丢弃工作记忆在任务完成后归档长期记忆则要做增量更新和数据清理。如果你在设计 Agent 时把这三层混在一起很快会发现要么上下文膨胀到不可控要么关键信息在任务中途丢失。我当时的做法是先为每一层记忆定义清楚读写接口再分别实现存储层。短期上下文用内存队列工作记忆用结构化对象挂在任务节点上长期记忆用向量库加标签索引。接口先定具体实现后面慢慢填。2.3 工具边界Agent 能做什么必须由系统说了算工具调用是 Agent 最具价值的能力也是最危险的能力。你把一个“执行 shell 命令”的工具交给模型模型真的可能会在某个不确定的时刻执行一条破坏性命令。这不是模型坏而是你的边界设计有漏洞。一个合格的 Agent 项目工具层一定是严格受控的工具清单明确Agent 只能调用注册过的工具不存在“动态发明工具”这回事。参数 schema 校验模型返回的工具调用参数必须通过 JSON Schema 校验才能执行。敏感操作人工确认涉及写操作、外部副作用、高权限操作的在执行前必须经用户确认。权限模型清晰多智能体场景下每个 Agent 实例只能调用自己权限范围内的工具不能越权。这个思路可以类比成把工具当成操作系统的系统调用。用户态程序不能直接访问硬件必须通过内核提供的受控接口。Agent 也一样模型是用户态工具执行是内核态中间必须有一道明确的校验层。我在自己项目里踩过的坑是一开始觉得工具调用越灵活越好结果某次测试中模型连续触发了三次外部 API 调用把测试环境的积分数据改了。从那以后我再也没放开过工具权限所有敏感操作一律走人工确认。3. 抽象是这门课的核心什么时候该抽象什么时候不该软件工程里最难的问题不是“要不要抽象”而是“什么时候抽象、抽象到什么程度”。这个 10 万 star 项目里可以看到非常鲜活的答案。3.1 这个项目里真正值得学的几层抽象第一层是模型适配层。它把不同模型供应商的响应统一成内部消息结构屏蔽了各家 API 的差异。这一层值得抽象因为模型是外部依赖外部依赖必须有适配边界。第二层是事件模型。项目里没有把 Agent 的运行过程设计成一连串嵌套的函数调用而是把每个关键步骤消息收到、规划完成、工具调用、结果返回都做成事件。上层可以订阅这些事件做日志、监控、回调核心引擎不关心谁在监听。这是典型的观察者模式但在 Agent 场景下尤其重要因为 Agent 的每一步都是不确定的必须让外部系统能看见过程。第三层是规划与执行分离。规划器生成任务计划执行器负责执行。这两个角色不混在一个对象里。好处是你可以替换不同的规划策略也可以为不同任务选择不同执行器。在项目里这种“计划是一等公民”的思想贯穿始终。3.2 过度抽象的代价为什么很多 Agent 项目死在“抽象太早”和这个项目形成鲜明对比的是很多自研 Agent 项目死在“抽象太早”上。项目才写了三天就开始设计插件系统、配置中心、多租户架构。结果业务需求一变这些抽象层全部成了摆设不仅不能加速开发反而成了重写的负担。有个经典工程原则叫 Rule of Three同一个需求出现三次之前不要为它做通用抽象。用更接地气的话说就是“写到第三个重复代码的时候再考虑提取公共逻辑”。这个原则在 Agent 项目里同样适用。你还没搞清自己的 Agent 核心路径是什么就急着做插件体系大概率写到一半就发现抽象方向错了。读这个 10 万 star 项目时我注意到它很多地方反而很“守拙”能写 if-else 就不引入策略模式能用简单字典就不建配置中心能在函数里写完的就不封装成类。这不是代码质量差而是刻意控制抽象规模。核心逻辑保持在一个人能读完的体量反而让整个系统更容易维护。3.3 协议先行把接口定义当产品设计这个项目给我的另一个重要启发是先定义协议再写实现。它的 Tool 接口有明确的输入输出 schema消息类型有明确的字段定义Agent 状态流转有明确的状态机。这些协议定义是整个项目最重要的“产品文档”比任何架构图都管用。怎么理解这件事想象你在一支团队里开发一个多智能体系统。Agent A 需要调用 Agent B 的能力如果两个人同时写代码A 不知道 B 的输入格式B 不知道 A 希望返回什么联调的时候必然一地鸡毛。但如果先把协议定下来输入是什么、输出是什么、错误怎么表达、超时怎么办那两边就可以完全并行开发各自做自己的测试。我在团队里推过一个习惯写 Agent 功能前先花半天时间把消息协议、工具 schema、异常类型定义成文档评审通过后再动手。实践证明这半天省下来的联调时间远超想象。4. 在非确定性系统里做可观测性从日志到 trace 再到回放AI Agent 项目的调试难度比传统后端高一个量级。传统后端出 bug你翻日志看到“哪个接口报错”就基本定位了Agent 出问题你往往需要知道“模型为什么选了这个分支”“工具调用为什么传了那个参数”。没有合适的可观测性设计排查问题全靠猜。4.1 传统日志为什么不够用我在项目里见过最典型的日志是“收到用户消息”和“返回模型回复”两条。中间发生了什么不知道。模型怎么规划的没记录。工具调用参数是什么没记录。结果用户反馈说“它帮我查天气的时候把城市搞错了”你连当时模型到底传了什么参数都看不到根本无法排查。Agent 项目要记录的关键字段至少包括用户的原始输入与预处理后的输入上下文窗口的组成包括系统提示词、历史消息、检索结果模型的完整输出包括推理内容、回复文本、工具调用参数工具调用的入参、出参、耗时、错误信息每一步的 token 消耗、模型名称、模型版本、温度参数。这些字段缺一不可。否则你面对的就是一个黑盒出了问题只能让用户复现而 Agent 问题往往很难复现。4.2 用 trace 串联一次完整的 Agent 执行链路分布式系统里有链路追踪的概念每次请求会生成一个 trace id贯穿所有服务调用。Agent 项目完全可以把这套思想搬过来一次用户会话生成一个 trace id会话中的每个步骤规划、工具调用、回复生成都挂在这个 trace id 下自成父子关系。举个例子。用户说“帮我写一封周报邮件并发给团队”系统会经历意图识别 → 任务规划 → 生成周报草稿 → 调用邮件工具 → 确认发送。这五个步骤如果在日志里是五条独立的记录排查问题时很难拼出完整过程但如果它们挂在同一个 trace id 下按时间顺序排列一眼就能看清整条链路。实现方式并不复杂在核心引擎的事件模型里带上 trace context每个子任务生成自己的 span id记录 parent span id。落地到存储上可以按 JSON Lines 格式写文件也可以存到数据库。无论哪种能按 trace id 查询出来是关键。4.3 把调试从“猜”变成“回放”可观测性的终极形态是“可回放”。也就是你能拿到一个历史会话的完整 trace然后重新执行一遍逐步观察每个环节的状态变化。在这个项目里我发现它实际上把“会话状态”当成了一种可序列化对象。记录下来的不只是日志而是完整的执行状态快照。于是调试的时候可以加载一个历史会话一条消息一条消息地重放观察模型在哪里开始跑偏、工具在哪里调错参数。这个设计思路值得借鉴。哪怕你的项目做不到完整快照至少可以做到把每次模型调用的入参出参完整记录下来出问题时能构造同样的请求去重放。图片上传失败可以“复现”Agent 回答错误就不行不对只要你有完整的上下文记录一样可以复现。“复现 bug 的能力”是软件工程的老手艺在 Agent 时代不仅没过时反而更重要了。5. 容错与降级当模型不可靠时软件工程就是兜底艺术模型会失败而且是会以各种想象不到的方式失败。输出 JSON 解析失败、上下文超限、工具参数幻觉、模型服务超时、限流……你的系统必须为这些失败做好准备而且要把失败当成正常状态来设计。5.1 传统可靠性手段在 Agent 项目里依然有效很多人一提到 AI Agent 就觉得“新 paradigm 来了老一套没用了”。实际上超时控制、重试、幂等、熔断这些传统手段在 Agent 项目里不仅有用而且必不可少。超时控制模型调用普遍需要几秒到几十秒必须为每一次调用设置超时不能让请求无限挂起。重试策略LLM 服务经常因为瞬时高负载返回 5xx。用指数退避加重试上限能解决很大一部分不稳定问题。幂等设计工具调用可能因为网络超时被重复执行。设计工具接口时要保证同一请求重复执行不会产生重复副作用。熔断当模型服务连续报错达到阈值时自动切换备用方案而不是继续向一个不稳定的服务发请求。这些手段听起来很基础但我确实见过不少 Agent 项目完全没有超时控制模型一卡整个线程池就耗尽了。5.2 Agent 特有的降级链路LLM 规划 → 规则引擎 → 人工兜底传统系统的降级一般是“主备切换”或“抛异常”。Agent 系统则有更丰富的降级路径当 LLM 规划不可用或者连续失败时可以降级到规则引擎。这也是我在这个 10 万 star 项目里学到的很有价值的思路它不是只有“都用 LLM”一种模式。对很多确定性强的子任务比如格式转换、数据提取、固定流程审批可以完全用规则引擎实现。只有需要理解语义、生成内容、动态决策时才调用 LLM。一个典型的降级链是这样设计的任务进来先判断是否触发规则引擎的匹配模式。能匹配直接走规则不经过 LLM。LLM 可用时优先使用 LLM 规划但如果模型返回内容无法解析且重试 N 次仍失败降级到预设的兜底流程。连规则引擎都覆盖不了的开放式任务进入人工队列由人工处理后再把结果反馈回系统。这条链路的核心思想是把不确定的任务尽量收敛到确定的分支里只有真正需要智能的地方才交给模型。系统稳定性就是这样一点点提升上来的。5.3 把失败当成正常输入让 Agent 自己看见错误并重试新手写 Agent通常会假设模型一定会返回合法 JSON。而真实世界的模型返回千奇百怪可能带着 Markdown 代码块标记可能 JSON 截断了一半可能字段名被“发挥”成了别的名字甚至可能直接输出一段人类友好的文本而不是结构化数据。成熟的 Agent 项目不会在解析失败时直接崩溃而是把解析错误作为输入重新反馈给模型让模型自行修正。比如提示“你上次返回的 JSON 缺少必需的 endTime 字段请补齐后重新输出”。这就是所谓的“错误即输入”循环。在实现上可以在解析层做多重容错先尝试 JSON 解析失败后用正则抽取代码块再不行就用宽松模式提取关键字段最后把原始输出和解析错误一并交回模型自修正。设计上每一层都“尽最大努力”而不是模型一错就直接宣判任务失败。6. 测试 AI Agent 的正确姿势单测、模拟回归与黄金数据集测试可能是 Agent 项目里最让人头疼的部分。模型的输出是概率性的你怎么可能像测试一个订单接口那样测试 Agent 的行为但顶级项目给了很清晰的答案把系统切成两部分确定的部分用常规测试方法覆盖不确定的部分用模拟与评估来覆盖。6.1 确定性单元要单独做好测试Agent 系统里有一大块逻辑是确定性的任务状态机的流转、工具调用结果的聚合、上下文窗口的裁剪策略、JSON 解析器、权限校验。这些模块和普通后端代码没有本质区别完全可以做严格的单元测试。让这些逻辑可测试的前提是依赖注入。核心引擎不能直接连接真实模型而是通过接口访问模型客户端。测试时注入一个 FakeModel返回预设的响应序列这样就能精确验证引擎在“模型返回 A 然后返回 B”的情况下行为是否正确。我在读这个项目时注意到它的测试目录里占比最大的不是端到端测试反而是这些“模型无关”的单元测试。这就是聪明的做法确定性逻辑的测试是稳定可靠的它们构成了整个系统的回归防线。6.2 用模拟模型响应做全链路回归比单元测试更进一步的是“模拟回归测试”把历史会话中真实模型的输入输出录制下来做成固定 fixture然后在测试环境重放整个链路。这样做的好处是测试是确定性的CI 里可以安全跑不会因为模型服务波动导致测试失败。任何一次代码改动只要导致链路行为与录制的基线不一致测试立刻报警。这个思路的局限性也要清楚模型升级后同样的输入可能产生完全不同的输出录制的内容会逐渐过期。因此需要定期更新 fixture或者当一个 fixture 对应的行为被人工确认是“更好”的时候手动更新基线。这相当于给系统建立了一条“行为基线”让每一次改动都有明确的参照。6.3 用黄金数据集守住质量底线模拟回归解决的是“是不是和以前一样”的问题但没有解决“是不是做得好”的问题。要评估 Agent 的真实质量还是得回到真实模型上做端到端评估。成熟项目一般会维护一个黄金数据集一批能代表核心使用场景的任务样本每一条都带预期结果和评分标准。每次更换模型版本、调整提示词后把黄金数据集跑一遍记录任务完成率、平均轮数、失败类型等指标对比前后差异。这就是“评估驱动开发”的思想先用数据集定义质量再谈优化。没有数据集的 Agent 优化基本靠感觉有了数据集每一次改动都有了可量化的反馈。我在自己的项目里建了一个最小版二十个典型任务样本加三个评分维度结果正确性、过程合理性、资源消耗。规模不大但每次迭代都能告诉我“这次改动是变好了还是变坏了”。7. 10 万 star 背后的软工程版本、文档与协作规范最后这部分说说代码之外的东西。一个项目能到 10 万 star靠的不只是技术设计还有一整套工程组织方式。7.1 版本演进与兼容性是如何维护的观察这个项目的版本历史会发现它非常严格地遵守语义化版本规范。功能新增进 minor 版本破坏性变更进 major 版本bug 修复进 patch 版本。每个版本都有 changelog标注了所有变更项和迁移说明。兼容性在 Agent 项目里尤其重要因为它的工具 schema 和消息协议一旦变化所有下游插件、集成方、SDK 使用者都会受影响。如果每个小版本都随意破坏兼容性生态根本长不起来。很多企业内部的 Agent 平台最终陷入“谁都不敢升级”的窘境就是因为从一开始就没有建立版本纪律。7.2 文档先行先写设计文档再写代码读这个项目的过程让我意识到它的文档建设投入巨大。每个核心模块都有设计说明重大架构决策有 ADRAPI 文档与代码同步更新。更关键的是文档里不仅写“是什么”还写“为什么”——为什么选择这个方案为什么放弃另一个方案。这种文档驱动的开发方式让后来者能直接站在前人的思考肩膀上而不是从一堆代码里艰难逆推设计意图。我在团队里也养成了一个习惯重要模块动工前先写一页设计文档列出候选方案、取舍理由、预期成本。页面不长但作用很大。7.3 工程品味从命名、注释到 PR 规范最后一个观察点更“软”工程品味。你会发现这类顶级项目的代码命名极其克制动词开头、领域名词准确没有人发明新概念尽量复用既有软件工程词汇。注释只写“为什么”不写“是什么”因为代码本身已经在表达“是什么”。这一点其实很有启发。很多 AI Agent 项目的代码喜欢自创一堆概念什么“AgentMetaFlow”“IntelligentDecider”之类。看起来很酷实际上增加了认知负担。真正好的工程是让代码读起来像一篇简洁的说明文而不是猜谜游戏。协作规范同样不可忽视严格的 PR review 流程、清晰的 issue 模板、贡献者指南、行为准则。这些“软工程”不直接生成功能但它们决定了项目能够在长时间、多贡献者、高频迭代的情况下保持稳定而不是越改越乱。如果你也在写自己的 Agent 项目我建议你先把代码库的贡献规范立起来即使团队只有两三个人。这是成本最低、收益最持久的一项投资。最后聊一点个人体会把整个项目读完之后我最强烈的感受是这个项目里真正厉害的部分恰恰是那些不依赖任何“AI 魔法”的部分。模型适配层的接口设计、记忆分层、trace 记录、降级链路、黄金数据集、版本纪律——这些全是传统软件工程里的老手艺只是被用在了新的场景里。很多人以为从 0 到 1 搭建 AI Agent难点在提示词、在模型选型、在“怎么让模型更聪明”。但实际上模型能力是水涨船高的今天不够聪明的部分明天可能就变聪明了而你系统的稳定性、可观测性、边界设计才是决定它能不能扛住真实业务的关键。我自己踩过的最深一个坑就是一开始把所有注意力放在“怎么把任务完成得更花哨”上结果模型一升级、输入一复杂系统就各种失序。后来老老实实补课理清边界、定义协议、做好 trace、设计降级系统才真正像一个“产品”而不是“实验代码”。如果你正在做 Agent 项目我的建议是别急着给模型堆提示词先画清边界定好协议把 trace 和降级做扎实再建立一套最小评估数据集。剩下的交给时间就行。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

WorkBuddy Skill搭建指南:财税场景自动化实操与避坑要点 2026/9/29 19:30:17

WorkBuddy Skill搭建指南:财税场景自动化实操与避坑要点

财务人每天被发票核对、报销审核、结账检查、报表说明这些重复性事务占掉的时间,远比你想象的多。我见过很多同行,Excel玩得溜、公式背得熟,但依然逃不过月底那几天加班到深夜的宿命。问题不是你不努力,而是这些工作的“套路”太固…

阅读更多 →
基于OpenCV与SVM的麻将识别系统设计与实现 2026/9/29 19:30:11

基于OpenCV与SVM的麻将识别系统设计与实现

简介:面向希望学习计算机视觉与SVM应用的开发者,这份基于C的云飞针图像麻将识别项目,将每张麻将牌从图像中分离并完成分类。项目采用颜色直方图和25维像素占比两种特征,搭配SVM分类器,完整覆盖图像预处理、牌面分割、特…

阅读更多 →
反射率因子图判读实战:柱状回波、三体散射与超级单体识别 2026/9/29 19:30:11

反射率因子图判读实战:柱状回波、三体散射与超级单体识别

1. 从反射率因子图里“读”出强对流:为什么这张图值得死磕很多人刚接触雷达气象学的时候,最容易犯的一个错误,就是把反射率因子图当成一张“降水分布图”来看——哪里颜色深,哪里雨就大。这个理解不能说错,但放在强对流…

阅读更多 →
EtherCAT运动控制器数据存储:掉电保护与Flash选型避坑指南 2026/9/29 19:30:11

EtherCAT运动控制器数据存储:掉电保护与Flash选型避坑指南

做运动控制器这些年,我越来越觉得一个项目最后能不能稳定交付,往往不取决于总线跑得多快、算法调得多顺,而是取决于掉电之后那几百毫秒里,系统到底把什么东西留住了。这篇继续聊经济型EtherCAT运动控制器系列里最容易被低估的一环…

阅读更多 →
模型优化器实战指南:从SGD到AdamW的选型、调参与避坑 2026/9/29 19:30:11

模型优化器实战指南:从SGD到AdamW的选型、调参与避坑

1. 模型优化器到底在优化什么第一次看到“Model-Optimizer”这个词,很多人会下意识觉得它又是一个调参工具,或者某个深度学习框架里附带的小模块。但真正在训练一线待过的人都知道,模型优化器远不止“调个学习率”这么简单。它更像是整个训练…

阅读更多 →
从零搭建AI工程链路:数据管道、模型部署与监控实践 2026/9/29 19:30:11

从零搭建AI工程链路:数据管道、模型部署与监控实践

先讲一个真实经历。一年多前我接了一个内部需求,用AI做工业设备的异常检测。当时团队里算法背景的同学不少,模型层面几乎没有障碍,调参两周,离线指标做到97%。结果上线第一个月就翻车了——线上召回率掉了15个百分点,数…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉