Agent工程栈从演示到生产:编排、可观测性与成本控制实战
1. 从五条动态里读出的信号Agent 工程栈不再是概念演示10 月 7 日那天我刷到五条动态来自不同背景的开发者有做基础设施的有做应用层的也有偏研究的。五条内容表面上各说各的但放在一起看指向非常一致Agent 这件事正在从演示能跑进入工程要稳的阶段。这个转折点比任何单点技术突破都重要因为它意味着围绕 Agent 的一整套工程栈开始成形了。所谓 Agent 工程栈我自己的理解是让一个智能体从能对话变成能持续完成真实任务所需要的全部工程支撑。它至少包括任务编排、工具调用、状态管理、记忆机制、可观测性、评测体系这几层。过去一年大家聊得最多的是模型能力但真正把 Agent 用起来的人都知道模型只是其中一环剩下的全是工程问题。这篇内容适合两类人看一类是正在把 Agent 往生产环境推的工程师另一类是还在观望、想知道这个方向到底成熟到什么程度的技术负责人。我会把五条动态背后的共性拆开讲补上我自己的实操经验和踩过的坑尽量让每个环节都能落地而不是停留在概念层面。先说结论这五条动态里反复出现的词不是更强更大而是编排可观测可复现成本可控。这四个词恰好就是工程栈成形的标志。当一个领域开始关心这些说明它已经过了炫技期进入拼交付的阶段了。2. 五条动态背后的三条主线编排、观测、成本2.1 主线一编排从写死流程转向动态决策第一条和第三条动态都在讲编排。有意思的是它们讲的不是怎么让模型更聪明地规划而是怎么让编排本身可控。这是个很关键的转变。早期做 Agent很多人的做法是把流程写死第一步调搜索第二步调总结第三步输出。这种硬编码流程在演示里很好用但一遇到真实任务就崩因为真实任务的步骤数和分支数是不确定的。于是大家开始让模型自己决定下一步做什么也就是所谓的动态编排。但动态编排带来一个新问题不可预测。模型可能陷入循环可能调用不存在的工具可能在中途丢失上下文。所以第三条动态里提到的编排层要能约束模型的行为边界其实是在说动态决策必须配一套约束机制否则工程上没法交付。我自己的经验是编排层至少要管三件事任务分解的粒度、工具调用的合法性校验、失败后的重试与回退策略。这三件事缺一个Agent 在生产环境里就会出问题。粒度太粗模型一步做不完粒度太细调用次数爆炸成本失控。工具调用不做校验模型会编造参数。没有回退策略一次失败整个任务就废了。2.2 主线二可观测性从可选变成必需第二条和第五条动态都在讲观测。第二条提到Agent 跑起来之后你根本不知道它为什么做了这个决定第五条提到没有 trace调试 Agent 就是盲人摸象。这两句话我太有共鸣了。传统软件的调试你可以打断点、看日志、复现路径。但 Agent 的决策过程是概率性的同样的输入可能走出不同的路径。如果没有完整的执行轨迹记录你连它为什么调了这个工具都说不清楚更别提优化了。可观测性这块我建议至少记录四类信息每一步的输入输出、工具调用的参数与返回、模型的推理摘要、整体的耗时与 token 消耗。这四类信息合起来才能还原一次完整的执行过程。缺了推理摘要你不知道模型的意图缺了 token 消耗你算不清成本。提示可观测性不是加个日志就完事。日志是给人看的trace 是给系统用的。两者要分开设计日志可以粗trace 必须细到每一步。2.3 主线三成本从事后算账变成实时约束第四条动态讲的是成本。这条最实在因为前面三条讲的能力最终都要落到跑一次多少钱上。动态里提到一个观点Agent 的成本不是线性的它会因为重试、循环、上下文膨胀而指数级上升。这个我深有体会。一个任务如果正常三步完成成本是基准值。但如果模型在第二步判断失误触发重试重试又带着更长的上下文成本可能翻三倍。如果陷入循环成本就没有上限了。所以成本控制必须前置不能等月底看账单。我的做法是给每个任务设一个 token 预算和调用次数上限超了就强制中断并上报。这个上限不是拍脑袋定的而是根据历史任务的 P95 消耗来设。设得太松没意义设得太紧会误杀正常任务。控制维度早期做法工程化做法我的建议阈值单任务 token不限制设预算上限按 P95 的 1.5 倍工具调用次数不限制设次数上限按正常步数的 3 倍重试次数无限重试有限重试回退单步最多 2 次上下文长度全量拼接滑动窗口摘要不超过模型窗口的 60%这张表里的阈值不是标准答案是我在几个项目里试出来的经验值。你可以根据自己的任务复杂度调整但核心思路是任何可能失控的维度都要有硬上限。3. 编排层的核心设计让模型做决策让工程兜底3.1 为什么不能让模型管所有事很多人一开始的想法是既然模型能规划那就让它全权负责从任务分解到工具选择到结果判断全交给它。这个想法听起来很美但实操下来问题很大。模型擅长的是语义理解和模糊决策不擅长的是精确的状态管理和边界判断。比如这个任务该不该继续这种判断模型可能会因为上下文里的一句话就改变主意但工程上你需要一个确定的规则。再比如这个工具调用参数是否合法模型可能编造一个看起来合理但实际不存在的参数工程上必须校验。所以我的设计原则是决策交给模型约束交给工程。模型负责做什么工程负责能不能做和做完之后怎么办。这个分工听起来简单但落地时需要仔细设计接口。3.2 编排器的三个核心模块一个能用的编排器我通常会拆成三个模块规划器、执行器、状态机。规划器负责把用户的任务拆成可执行的步骤。这里的关键是拆解的粒度。太粗一步做不完太细调用次数太多。我的经验是每个步骤应该对应一次工具调用或一次模型生成这样粒度刚好。执行器负责实际调用工具和模型并处理返回结果。这里要做参数校验、超时处理、错误捕获。参数校验尤其重要因为模型生成的参数经常有格式问题比如该传数字传了字符串该传数组传了单个值。状态机负责维护任务的执行状态。每个步骤执行完状态机要更新状态并决定下一步是继续、重试还是终止。状态机的状态要持久化否则任务中断后没法恢复。# 一个简化的编排器骨架展示三个模块的协作 class Orchestrator: def __init__(self, planner, executor, state_machine): self.planner planner self.executor executor self.state state_machine def run(self, task): plan self.planner.decompose(task) self.state.init(plan) while not self.state.is_done(): step self.state.current_step() try: result self.executor.execute(step) self.state.mark_success(step, result) except ToolError as e: if self.state.can_retry(step): self.state.mark_retry(step) else: self.state.mark_failed(step, e) return self.state.final_result()这段代码是骨架实际用的时候每个模块都要复杂得多。但它体现了核心思路规划、执行、状态三者分离各管各的通过状态机串联。3.3 动态编排的约束机制动态编排最大的风险是失控。模型可能一直循环可能调用不该调的工具可能在中途改变目标。所以约束机制必须到位。我常用的约束有三层。第一层是步数上限超过就强制终止。第二层是工具白名单模型只能调用预先注册的工具不能凭空造。第三层是目标一致性检查每隔几步让模型确认当前步骤是否还在服务原始目标如果偏离就纠正。这三层约束里第三层最容易被忽略但实际最有用。因为模型在长任务里很容易跑偏做着做着就忘了最初要干什么。定期做目标一致性检查能有效防止这种偏离。注意目标一致性检查本身也要消耗 token所以频率不能太高。我的做法是每 3 到 5 步检查一次任务简单就少查任务复杂就多查。4. 可观测性落地从日志到 trace 的完整链路4.1 为什么普通日志不够用普通日志是线性的一行一行往下记。但 Agent 的执行是树状的一个任务分出多个步骤步骤里又有工具调用和模型生成。用线性日志记录树状执行结果就是一团乱麻根本理不清。所以 Agent 的可观测性需要 trace 结构。每个任务是一个 trace每个步骤是一个 spanspan 之间可以有父子关系。这样你就能看到完整的执行树知道哪一步耗时最长哪一步消耗 token 最多哪一步失败了。trace 的另一个好处是能跨任务对比。同一个任务跑十次你可以对比十次 trace看哪次路径最短、成本最低。这种对比是优化的基础没有 trace 就没法做。4.2 trace 里必须记录的字段我设计 trace 结构时会确保每个 span 至少记录这些字段span_id、parent_id、类型模型调用/工具调用/决策、开始时间、结束时间、输入、输出、token 消耗、状态。这些字段里parent_id 是关键它决定了 trace 的树状结构。类型字段决定了你能按类型聚合分析比如所有工具调用的平均耗时。token 消耗字段决定了你能算成本。输入输出字段要注意脱敏。Agent 处理的任务可能包含敏感信息trace 里不能明文记录。我的做法是对输入输出做哈希或摘要需要详情时再通过其他安全渠道查。4.3 从 trace 到优化的闭环trace 记录只是第一步关键是从 trace 里读出优化点。我通常会看三个指标路径长度、失败率、token 分布。路径长度反映编排效率。如果同一个任务有的跑 3 步有的跑 10 步说明编排不稳定需要优化规划器。失败率反映鲁棒性。如果某类工具调用经常失败说明要么工具本身有问题要么模型生成的参数有问题。token 分布反映成本结构。如果大部分 token 花在上下文拼接上说明记忆机制需要优化。这三个指标合起来就能指导你往哪个方向优化。没有 trace这些优化就是拍脑袋有了 trace优化就有了依据。指标反映的问题优化方向路径长度方差大编排不稳定优化规划器固定常见任务的路径某工具失败率高工具或参数问题校验参数或换更稳定的工具上下文 token 占比高记忆机制低效引入摘要减少全量拼接重试次数多单步成功率低拆分步骤降低单步难度这张表是我在实际项目里总结的每次做优化前先看这几个指标基本能定位到问题所在。5. 成本控制的实操把预算管在任务级别5.1 成本为什么会失控Agent 的成本失控通常有三个原因。第一个是上下文膨胀每轮对话都把历史全量拼进去轮次一多token 就爆炸。第二个是重试放大一次失败触发重试重试又带着更长的上下文成本翻倍。第三个是循环模型陷入死循环成本没有上限。这三个原因里循环最危险因为它没有自然终止。上下文膨胀和重试放大至少还有上限循环是真的能把预算烧穿。所以成本控制的第一优先级是防循环。5.2 任务级预算的设计我的做法是给每个任务设一个预算包括 token 预算和调用次数预算。预算不是全局的是任务级的因为不同任务的复杂度差异很大。简单任务给少点复杂任务给多点。预算的设定依据是历史数据。我会统计同类任务的 P50 和 P95 消耗然后把预算设在 P95 的 1.5 倍左右。这样正常任务不会超预算异常任务会被及时拦截。预算超了之后怎么办我的做法是优雅降级而不是直接报错。比如把任务状态保存下来返回一个部分完成的结果并提示用户可以继续。这样用户体验比直接失败好得多。5.3 上下文管理的省钱技巧上下文管理是省钱的关键。我的经验是不要全量拼接历史而是用滑动窗口加摘要。最近几轮对话保留原文更早的对话压缩成摘要。这样既能保留关键信息又能控制 token。摘要的生成也有技巧。不要每轮都重新生成摘要那样反而费 token。我的做法是每积累一定轮次才更新一次摘要中间轮次直接用旧摘要。这样摘要的生成成本被摊薄了。还有一个技巧是工具返回结果的裁剪。工具返回的内容经常很长但模型只需要其中一部分。所以在把工具结果拼进上下文之前先做一次裁剪只保留相关字段。这个裁剪可以用规则做也可以用模型做规则做更省钱。提示裁剪工具结果时宁可多留一点不要裁过头。裁过头导致模型缺信息反而会触发重试得不偿失。6. 评测体系没有评测工程栈就是空中楼阁6.1 为什么 Agent 的评测这么难传统软件的评测很直接给定输入看输出是否符合预期。但 Agent 的评测难得多因为它的输出是开放的路径是不确定的同一个任务可能有多种正确的完成方式。这就导致两个问题。第一没有标准答案。你不能像单元测试那样断言输出等于某个值。第二路径不可复现。同样的输入两次执行可能走不同的路径你没法用固定路径做评测。所以 Agent 的评测需要新的方法。我常用的有两种结果评测和过程评测。结果评测看最终输出是否满足要求过程评测看执行路径是否合理。两者结合才能全面评估。6.2 结果评测的设计结果评测的关键是定义满足要求。对于有明确输出的任务可以用规则判断比如是否包含某个关键词数值是否在范围内。对于开放任务只能用模型判断也就是让另一个模型来打分。用模型打分要注意两点。第一评分标准要明确不能只说好不好要说是否完成了 X、是否避免了 Y。第二要有校准定期用人工标注的样本检查模型打分是否准确。模型打分不校准时间长了会漂移。6.3 过程评测的设计过程评测看的是执行路径。我通常关注三个点步数是否合理、工具选择是否正确、是否有冗余调用。步数合理性的判断可以和历史均值比。如果某次执行步数远超均值说明可能有问题。工具选择正确性可以看是否用了最合适的工具而不是绕远路。冗余调用可以看是否有重复调用同一个工具、传相同参数的情况。过程评测比结果评测更难做但价值更大。因为结果对了不代表过程对过程有问题迟早会在结果上暴露。早发现过程问题就能早优化。评测类型评什么怎么评难点结果评测最终输出规则模型打分开放任务无标准答案过程评测执行路径和历史对比路径不确定难复现成本评测token 消耗直接统计需要任务级归因稳定性评测多次执行一致性跑多次看方差成本高样本要够这张表里的四类评测我建议至少做结果和成本两类过程评测和稳定性评测看资源情况。资源够就全做资源紧就做最关键的。7. 我在实操中踩过的坑和总结的经验7.1 编排器不要一开始就做太复杂我最早做编排器的时候想一步到位把规划、执行、状态、重试、回退全做进去。结果代码复杂度爆炸调试极其困难一个小问题要查半天。后来我改成增量迭代先做最简单的线性编排跑通之后再加重试再加动态规划再加约束。每加一个功能都确保前面的功能是稳的。这样虽然慢但每一步都可控出问题也好定位。这个经验我想强调一下Agent 工程栈是长出来的不是设计出来的。你不可能一开始就设计出完美的架构因为很多问题只有跑起来才会暴露。所以增量迭代比一步到位更靠谱。7.2 可观测性要早做不要等出问题才补我吃过这个亏。早期项目没做 trace出了问题只能靠猜。后来补 trace发现很多历史问题根本没法回溯因为数据没记录。所以可观测性一定要早做最好在第一个版本就加上。哪怕一开始只记录最基本的字段也比不记录强。因为 trace 数据是越积越有价值的早期的数据能帮你建立基线后期的数据能帮你发现异常。7.3 成本控制要设硬上限不能靠自觉我见过太多项目成本控制靠大家注意点结果就是没人注意。Agent 的成本是隐性的不设硬上限很容易在不知不觉中烧穿预算。所以成本控制一定要设硬上限而且是系统级的不依赖人的自觉。超了就是超了系统自动拦截。这样虽然可能误杀一些正常任务但总比预算失控好。误杀的任务可以事后分析调整阈值预算失控的损失是实打实的。7.4 评测要持续做不能做一次就完事Agent 的行为会随着模型更新、工具变化、任务分布变化而漂移。所以评测不是一次性的要持续做。我通常每周跑一次评测看指标有没有异常波动。有波动就查原因是模型变了还是任务变了。持续评测的另一个好处是能发现慢性的退化。有些问题不是突然出现的而是慢慢累积的。比如某类任务的失败率从 2% 慢慢涨到 8%单看某一次评测可能不明显但看趋势就很清楚。8. 从这五条动态看 Agent 工程栈的下一步回到 10 月 7 日那五条动态。它们讲的编排、观测、成本、评测其实构成了 Agent 工程栈的四个支柱。这四个支柱立起来Agent 才算真正能用于生产。我个人的判断是接下来一段时间Agent 工程栈的竞争会集中在两个方向。一个是标准化也就是编排、观测、评测这些环节会不会形成通用的规范和工具。另一个是自动化也就是这些环节能不能自动优化而不是靠人工调。标准化和自动化都是工程成熟的标志。当一个领域开始做标准说明大家已经认可了基本范式当一个领域开始做自动化说明人工已经成了瓶颈。Agent 工程栈现在正处在这个转折点上。最后分享一个我自己的小习惯每次做完一个 Agent 项目我都会把编排、观测、成本、评测这四个环节的实践整理成一份清单下次做新项目时直接对照。这份清单越积越厚但每次都能帮我少踩几个坑。工程这件事经验就是这么一点点攒出来的。

相关新闻

VectorCAST覆盖率分析实战:从MC/DC到集成覆盖的完整流程

VectorCAST覆盖率分析实战:从MC/DC到集成覆盖的完整流程

做嵌入式软件测试的同行大概都清楚,覆盖率分析是个绕不开的话题。平时单元测试、集成测试里,大家都习惯看“测了多少”,但真正到安全关键领域——比如汽车电子、医疗设备、航空航天——客户或者认证机构可不只看你有没有执行测试用例&#xf…

2026/10/14 4:59:00 阅读更多 →
嵌入式选型效率翻倍:MiBee‘s百宝箱工具全解析

嵌入式选型效率翻倍:MiBee‘s百宝箱工具全解析

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

2026/10/14 4:57:59 阅读更多 →
运动健康管理系统开发:Django与Flask混合架构实践

运动健康管理系统开发:Django与Flask混合架构实践

1. 项目背景与核心价值去年帮朋友健身房做会员管理系统时,发现很多健身爱好者对运动营养知识存在严重误区。有人每天吃10个鸡蛋白导致胆固醇超标,也有人完全戒碳水的极端案例。这促使我开发了这个结合运动健康与饮食管理的科普小程序。这个项目的独特之处…

2026/10/14 4:57:59 阅读更多 →

最新新闻

IntelliJ IDEA 的Qoder CN 插件报错“暂时无法同步代码库索引选择”怎么解决?完整排查与修复指南

IntelliJ IDEA 的Qoder CN 插件报错“暂时无法同步代码库索引选择”怎么解决?完整排查与修复指南

摘要 本文针对在IDEA中使用Qoder CN时出现的报错,给出官方说明与实战解决步骤。官方指出需启用代码库索引:可点击“创建”手动启用,或切换“自动索引”。实战中,先登录Qoder CN且不要输入提示词,再进入设置—>Qode…

2026/10/14 17:36:00 阅读更多 →
PTZ-C8T6.zip 云台控制 C 工程解析:编译、协议与避坑指南

PTZ-C8T6.zip 云台控制 C 工程解析:编译、协议与避坑指南

简介:PTZ-C8T6.zip 是一份面向嵌入式开发初学者与 STM32 学习者的云台控制项目工程源码,基于 STM32F103 系列芯片与 HAL 库构建,适合用于课程设计、毕业设计或电赛类云台控制方案的参考与二次开发。压缩包共 98 个文件,约 675KB&a…

2026/10/14 17:36:00 阅读更多 →
Python 读取 Excel 并写入 zip:自动化报表打包实战

Python 读取 Excel 并写入 zip:自动化报表打包实战

简介:这份资源面向需要处理表格数据的Python学习者与开发者,聚焦Excel文件的读取与写入这一常见任务,帮助解决数据分析、数据清洗与自动化报告中的表格操作问题。压缩包共4个文件,全部为py脚本,整体约6KB,涵…

2026/10/14 17:36:00 阅读更多 →
Terminus(Olares)RabbitMQ 中间件集成实战:用 OlaresManifest.yaml 声明式接入消息队列

Terminus(Olares)RabbitMQ 中间件集成实战:用 OlaresManifest.yaml 声明式接入消息队列

云原生后端运维 【免费下载链接】Terminus Open-Source Personal Cloud OS for Always-On Agents 项目地址: https://gitcode.com/gh_mirrors/terminus2/Terminus 点击查看 免费下载 本篇技术指南基于 Terminus 仓库中 RabbitMQ 集成文档 展开,讲解如何…

2026/10/14 17:36:00 阅读更多 →
九轴姿态解算实战:C语言实现Mahony互补滤波与四元数融合

九轴姿态解算实战:C语言实现Mahony互补滤波与四元数融合

简介:九轴姿态解算源代码是一套面向嵌入式开发、无人机及机器人等场景的C语言实现,融合加速度计、磁力计与陀螺仪数据,用于实时估计物体的横滚、俯仰与偏航角。资源包含4个文件,全部为2个C源文件和2个头文件,压缩包仅5…

2026/10/14 17:36:00 阅读更多 →
C#工业级图形面积周长计算:精度、鲁棒性与性能平衡

C#工业级图形面积周长计算:精度、鲁棒性与性能平衡

1. 项目概述:为什么一个“图形周长、面积计算”功能值得花时间深挖? 你可能第一眼看到“C# 图形周长、面积计算”这个标题,会下意识觉得:“不就是几个数学公式封装成方法吗?勾股定理、πr、底高2……抄一遍就完事。”我…

2026/10/14 17:34:59 阅读更多 →

日新闻

AnyPS5通用适配层设计:兼容性与性能的工程取舍

AnyPS5通用适配层设计:兼容性与性能的工程取舍

1. 从"AnyPS5"这个名字说起:它到底想解决什么问题第一次看到"AnyPS5"这个标题,我脑子里冒出来的第一个念头是:这大概率是一个围绕"跨平台运行"或者"通用适配"做文章的项目。名字里的"Any"…

2026/10/14 0:00:41 阅读更多 →
Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

1. 项目概述:Flutter跨平台二手交易应用开发作为一名长期从事移动应用开发的工程师,我最近完成了一个基于Flutter框架的二手物品交易平台项目。这个项目最吸引我的地方在于它完美结合了Flutter的跨平台优势与HarmonyOS的生态特性,实现了"…

2026/10/14 0:00:41 阅读更多 →
DFS算法解决飞机降落调度问题实战

DFS算法解决飞机降落调度问题实战

1. 项目背景与核心思路飞机降落问题是一个经典的调度优化场景,也是算法竞赛和面试中的高频题目。这个题目要求我们合理安排多架飞机的降落顺序和时间,确保所有飞机都能安全着陆而不发生冲突。在实际航空管制中,这类问题直接关系到飞行安全和机…

2026/10/14 0:00:41 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/14 3:30:28 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/14 16:30:29 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 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/13 22:01:27 阅读更多 →
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/13 14:57:39 阅读更多 →
黑夜航拍船只数据集训练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/14 7:53:34 阅读更多 →