多智能体协作总失控?Agent编排从设计到落地的实战指南
1. 为什么“Agent 编排”突然成了绕不开的话题过去大半年我几乎每周都会被问到同一个问题手上有三四个能跑通的小型智能体单独用都挺顺可一旦让它们协同完成一件稍微复杂的事就开始互相打架、状态丢失、循环调用最后输出一坨谁也看不懂的东西。这个现象特别普遍因为大多数人是从“写一个能对话的智能体”入门的而真正让系统产生价值的是多个智能体之间的编排——谁先动、谁后动、数据怎么传、失败了怎么办、什么时候该停。所谓 Agent 编排说白了就是给一群各有专长的智能体安排一套“工作流”和“协作规则”。它解决的不是单个智能体聪不聪明的问题而是整体能不能稳定交付结果的问题。你可以把它理解成一家餐厅厨师、配菜、传菜、收银各司其职但如果没有人规定出菜顺序和交接方式再好的厨师也会把厨房搞乱。编排就是那套看不见的出菜流程。这篇内容适合三类人看一是已经写过单智能体、想往多智能体方向走的开发者二是被“智能体互相调用失控”折磨过的工程同学三是想搞清楚编排到底值不值得投入的技术负责人。我会从设计思路、核心细节、实操落地到问题排查把这一整套东西讲透尽量让你看完就能照着搭一个能跑、能维护、能扩展的编排骨架。2. 编排的整体设计与思路拆解2.1 先想清楚你到底需要哪种编排形态很多人一上来就问“用哪个框架”这其实是本末倒置。编排形态决定了框架选型而不是反过来。我一般把编排分成四种基本形态你可以对照自己的场景先做个判断。编排形态典型特征适用场景复杂度顺序链式A 的输出直接喂给 BB 给 C流程固定、步骤明确的流水线低路由分发一个调度者判断该交给谁任务类型多样、需要分类处理中并行聚合多个智能体同时干活最后汇总需要多视角、多来源信息中高循环反思执行后自检不达标就重来对质量要求高、可迭代优化高顺序链式最容易上手但它的死穴是没有容错——中间任何一环输出跑偏后面全崩。路由分发适合“一个问题有多种处理路径”的场景比如客服系统里先判断是咨询、投诉还是退款。并行聚合的价值在于降低单点偏差三个智能体分别给方案再让一个汇总者挑最优。循环反思最像人干活写完检查、检查完改但它的成本也最高因为每一轮反思都是一次完整的模型调用。我的建议是新手从顺序链式起步但一定要在每一环之间加校验有一定经验后再引入路由和并行。别一上来就搞循环反思那个调试成本会让你怀疑人生。2.2 状态传递编排里最容易翻车的地方编排的本质是状态的流转。单个智能体自己维护上下文就行但多个智能体协同时状态放在哪、怎么传、传多少直接决定系统稳不稳。我见过最常见的错误是“把所有历史都塞给下一个智能体”。表面上看信息很全实际上会带来三个问题一是上下文窗口被迅速撑爆二是无关信息干扰判断三是成本飙升。正确的做法是显式定义每个环节需要的最小状态我通常用一个结构化的状态对象来承载类似这样state { task: 原始任务描述, current_step: 当前执行到哪一步, intermediate_results: {}, # 各环节的产出按 key 存 errors: [], # 累积的错误信息 retry_count: 0, # 重试计数防止死循环 final_output: None }这个结构看起来朴素但它解决了编排里 80% 的混乱。每个智能体只读它需要的字段只写它负责的字段职责边界清清楚楚。retry_count这个字段尤其重要后面讲死循环排查时会重点说。提示状态对象一定要可序列化。我踩过的坑是早期把模型对象、数据库连接直接塞进状态里结果想做个断点续跑或者日志回放时完全没法落地。状态里只放纯数据资源类的东西通过依赖注入传。2.3 控制流与数据流要分开设计这是很多教程不会讲、但实际项目里极其关键的一点。控制流决定“下一步走哪个智能体”数据流决定“数据怎么在智能体之间流动”。这两者如果混在一起系统会变得极难维护。举个具体例子一个内容生产流程控制流是“选题 → 撰写 → 审核 → 发布”但数据流可能是“审核环节需要同时拿到原始选题和撰写稿”。如果你把控制流和数据流绑死审核智能体就只能拿到撰写稿还得回头去问选题智能体要数据这就产生了不必要的耦合。我的做法是让控制流只负责“调度决策”数据流通过共享状态对象按需读取。调度者不需要知道数据长什么样它只需要知道“当前步骤完成了下一个该谁”。这样即使你后面把撰写智能体换成两个并行版本控制流几乎不用改。3. 核心细节解析与实操要点3.1 调度者的三种实现方式与取舍调度者是编排的大脑它的实现方式直接决定系统的灵活性和可控性。我实际用过三种各有各的适用面。第一种是硬编码流程用代码把步骤写死。优点是可控、可调试、性能好缺点是改流程要改代码。适合流程极其稳定、几乎不变的生产系统。第二种是规则驱动用配置或规则表决定下一步。比如“如果任务类型是 A走路径 1否则走路径 2”。它比硬编码灵活改流程改配置就行但规则一多就会变成一团乱麻维护成本陡增。第三种是模型驱动让一个调度智能体自己判断下一步。这是最灵活的能处理事先没预料到的情况但也是最不可控的——模型可能做出你完全没想到的调度决策甚至陷入循环。我的实战经验是混合使用主干流程用硬编码或规则驱动保证稳定在少数需要灵活判断的分支点上引入模型驱动。比如一个数据分析流程主干“取数 → 清洗 → 分析 → 出报告”写死但“分析”这一步该用哪种分析方法交给模型判断。这样既稳又灵活。3.2 智能体之间的“接口约定”比什么都重要多智能体协作最容易出问题的地方不是智能体本身不够强而是它们之间的接口没约定清楚。A 智能体输出的是一段自然语言B 智能体期望的是结构化 JSON这种错配会让整个流程崩掉。我的做法是给每个智能体定义明确的输入输出契约用类似下面的方式约束class AgentContract: input_schema { task: str, 必填, 任务描述, context: dict, 可选, 上游产出 } output_schema { result: str, 必填, 处理结果, confidence: float, 0-1, 置信度, need_review: bool, 是否需要人工介入 }有了这个契约每个智能体就像一个标准零件可以随时替换、组合。confidence和need_review这两个字段是我强烈建议加的它们让编排系统具备了“知道自己不确定”的能力后面做质量门禁时非常有用。注意契约里的字段类型要严格校验。我吃过亏某个智能体偶尔返回字符串 true 而不是布尔值 true下游判断直接失效。加一层类型校验和自动修正能省掉大量排查时间。3.3 超时、重试与熔断让系统能“优雅地失败”编排系统里失败是常态而不是例外。某个智能体调用超时、返回格式错误、陷入死循环这些都会发生。关键不是避免失败而是失败时系统怎么表现。超时控制要分层设置。单次模型调用设一个超时比如 30 秒单个智能体执行设一个更长的超时比如 90 秒整个编排流程设一个总超时比如 5 分钟。任何一层超时都要有明确的处理策略而不是让请求无限挂起。重试要区分错误类型。网络抖动、临时限流这类瞬时错误值得重试通常重试 2-3 次、每次间隔递增比如 1 秒、2 秒、4 秒。但如果是逻辑错误比如输出格式不对、任务本身无法完成重试再多次也没用应该直接走降级或人工介入路径。熔断是防止雪崩的关键。如果某个智能体连续失败超过阈值比如 5 次里失败 3 次就暂时把它“熔断”后续请求直接走备用路径过一段时间再试探性恢复。这个机制在多智能体系统里特别重要因为一个坏掉的智能体会拖垮整条链路。机制触发条件处理策略恢复方式超时超过设定时长中断并记录下次正常调用重试瞬时错误间隔递增重试成功即恢复熔断连续失败超阈值走备用路径定时试探恢复降级关键环节不可用返回简化结果人工确认后恢复4. 实操过程与核心环节实现4.1 从零搭一个可运行的最小编排骨架光讲概念没意思我带你搭一个能跑的最小骨架。这个骨架包含三个智能体一个负责拆解任务一个负责执行一个负责校验。流程是“拆解 → 执行 → 校验 → 不通过则回到执行”。先定义状态和契约这是地基from dataclasses import dataclass, field from typing import Any dataclass class OrchestrationState: task: str plan: list field(default_factorylist) current_index: int 0 results: list field(default_factorylist) errors: list field(default_factorylist) retry_count: int 0 max_retry: int 3 final_output: Any None然后是调度主循环。这里的关键是每一步都要检查终止条件否则很容易死循环def run_orchestration(state, agents, max_steps20): steps 0 while steps max_steps: steps 1 if state.current_index len(state.plan): break step state.plan[state.current_index] agent agents[step[type]] try: output agent.execute(step, state) state.results.append(output) state.current_index 1 except Exception as e: state.errors.append(str(e)) state.retry_count 1 if state.retry_count state.max_retry: state.final_output {status: failed, reason: str(e)} return state state.final_output {status: success, data: state.results} return state这段代码不长但包含了编排的几个核心要素步骤上限防止死循环、异常捕获防止崩溃、重试计数防止无限重试、明确的终止状态。你可以直接拿去改。4.2 校验环节怎么设计才有效校验智能体是编排里的质量门禁但很多人把它做成了摆设——校验智能体永远说“通过”因为它没有明确的判断标准。有效的校验需要可量化的检查项。我通常把校验分成三层。第一层是格式校验纯代码就能做检查输出是否符合契约、字段是否齐全、类型是否正确。第二层是规则校验用预设规则检查内容比如字数是否达标、是否包含敏感词、数值是否在合理范围。第三层才是模型校验让模型判断内容质量、逻辑一致性这些主观维度。三层校验的顺序不能乱一定是先便宜后昂贵。格式校验几乎零成本规则校验成本极低模型校验最贵。如果格式都不对根本没必要浪费一次模型调用去判断质量。def validate(output, contract): # 第一层格式 if not check_schema(output, contract.output_schema): return {pass: False, reason: 格式不符, layer: 1} # 第二层规则 rule_result check_rules(output) if not rule_result[pass]: return {pass: False, reason: rule_result[reason], layer: 2} # 第三层模型 return model_judge(output)实操心得模型校验的提示词里一定要给出具体的判断维度和评分标准比如“从准确性、完整性、可读性三个维度打分每项 1-5 分总分低于 10 分判定不通过”。模糊的“请判断质量”会让模型输出极不稳定。4.3 参数选择并发度、批大小与成本平衡当编排里出现并行环节时并发度是个必须认真对待的参数。并发太高会触发限流、增加失败率并发太低则浪费等待时间。我的经验值是从并发 3 开始试观察失败率和响应时间逐步调整。批大小batch size在需要处理大量同类任务时很关键。比如要处理 100 条数据每条都要走一遍智能体你可以选择逐条处理稳但慢或批量处理快但单条失败会影响整批。我的做法是小批量分组比如每 10 条一组组内并行、组间串行。这样既利用了并发又限制了单次失败的影响范围。成本这块要算清楚。假设一次编排平均调用模型 8 次每次平均消耗 2000 token一天跑 1000 次任务那一天的 token 消耗就是 1600 万。这个量级下缓存和去重能省下大量成本。相同或相似的子任务结果可以缓存复用尤其是那些确定性强、不依赖实时数据的环节。5. 常见问题与排查技巧实录5.1 死循环编排系统最经典的病死循环的表现是任务永远跑不完或者反复在两个智能体之间来回。根因通常有三个终止条件缺失、重试逻辑没有上限、模型调度决策不稳定。排查时我一般先看日志里的步骤序列如果发现 A→B→A→B 这种规律性循环基本就是调度逻辑问题。如果是 A→A→A 这种原地打转多半是某个智能体一直返回“需要重做”但重做条件永远不满足。解决死循环的三板斧全局步骤上限、单环节重试上限、状态指纹去重。前两个前面讲过第三个稍微解释下——给每一步的状态算个哈希如果发现相同状态重复出现说明陷入了循环直接中断。这个技巧在处理模型驱动的调度时特别管用。5.2 输出格式不稳定结构化输出的实战技巧模型输出格式飘忽是编排里的高频问题。今天返回标准 JSON明天给你包一层 markdown 代码块后天字段名还变了。我的应对策略是三重保险。第一重是在提示词里明确要求并给出完整的输出示例。第二重是在解析时做容错比如自动剥离 markdown 代码块标记、自动修正常见字段名拼写。第三重是解析失败时触发一次“格式修复”调用让模型把错误输出转成正确格式。def parse_output(raw, schema): cleaned strip_markdown(raw) try: data json.loads(cleaned) except json.JSONDecodeError: data repair_format(raw, schema) # 触发修复调用 return normalize_fields(data, schema)注意格式修复调用本身也可能失败所以它也要有超时和重试上限别让修复逻辑变成新的死循环源头。5.3 常见问题速查表问题现象可能原因排查方向解决手段任务跑不完终止条件缺失检查循环退出逻辑加步骤上限反复来回调用调度决策不稳定看步骤序列日志状态指纹去重输出格式错乱提示词不明确检查输出示例三重解析保险成本异常高上下文过大/重复调用统计 token 消耗缓存状态精简某环节频繁失败该智能体本身有问题单独测试该智能体熔断备用路径结果质量不稳定校验太弱检查校验层三层校验量化标准5.4 几个只有踩过才知道的坑第一个坑是日志记太粗。早期我只记最终结果出问题时完全不知道中间发生了什么。后来改成每一步都记录输入、输出、耗时、token 消耗排查效率提升了一个数量级。日志不是负担是编排系统的黑匣子。第二个坑是状态对象被意外修改。多个智能体共享一个状态对象时如果某个智能体不小心改了不该改的字段会引发极其隐蔽的 bug。我的做法是给状态对象加只读约束或者每个智能体拿到的是状态的深拷贝改完再合并回去。第三个坑是过度依赖模型调度。我一度让模型决定所有调度决策结果发现它在简单场景下也会做出莫名其妙的判断而且每次调用都增加成本和延迟。后来把 90% 的调度改成规则驱动只在真正需要灵活判断的地方用模型系统立刻稳定了。6. 编排系统的扩展与演进方向6.1 从固定流程到动态规划当你把基础编排跑顺之后下一步自然是让它更“聪明”——不是执行预设流程而是根据任务动态生成流程。这就是动态规划式编排先让一个规划智能体分析任务生成一个执行计划再按计划调度。这个方向很诱人但我要泼盆冷水动态规划的可控性远低于固定流程。计划可能不合理、可能遗漏关键步骤、可能生成无法执行的步骤。我的建议是动态规划只用在探索性任务上比如研究、创意生成这类没有标准答案的场景。生产环境里的核心流程还是老老实实用固定编排。6.2 人工介入点的设计再智能的编排也需要人工兜底。关键是在哪里设介入点。设太多人工成本高设太少错误会流到最终用户那里。我的经验是把介入点设在三个位置置信度低的环节、涉及不可逆操作的环节、校验连续失败的环节。置信度低说明系统自己都不确定不可逆操作比如发送、删除、支付出错代价大连续失败说明自动处理已经无能为力。这三个位置设人工介入性价比最高。6.3 可观测性让编排系统“透明”编排系统最怕的是变成黑盒。你只知道输入和输出中间发生了什么一无所知。可观测性建设包括三个层面指标每步耗时、成功率、token 消耗、日志每步的输入输出、追踪一次任务完整链路。我习惯给每次编排任务生成一个唯一 trace_id所有环节的日志都带上这个 id。这样排查问题时一个 id 就能拉出完整链路。这个习惯在系统复杂之后会救你无数次。7. 我个人的一些实战体会编排这件事技术选型其实不是最难的难的是克制。新手容易犯的错是把系统设计得太复杂——又是动态规划又是多轮反思又是模型驱动调度结果调试成本高到无法维护。我现在的原则是能用规则解决的绝不用模型能用固定流程的绝不做动态规划能串行的绝不并行。只有在明确需要灵活性的地方才引入更复杂的机制。另一个体会是编排系统的质量不取决于最聪明的那个智能体而取决于最弱的那一环和环节之间的衔接。所以与其花时间优化单个智能体的提示词不如先把接口契约、状态管理、错误处理这些“管道工程”做扎实。管道通了智能体稍微弱一点系统也能跑管道不通智能体再强也白搭。最后分享一个我一直在用的小技巧给编排系统做一个回放功能。把每次任务的完整状态序列存下来出问题时可以逐步回放看是哪一步开始跑偏的。这个功能开发成本不高但排查效率的提升是巨大的。很多时候你盯着日志看不出问题一回放就一目了然了。

相关新闻

Meta-Harness:让模型训练配置变成可学习的端到端优化

Meta-Harness:让模型训练配置变成可学习的端到端优化

前段时间我认真读了一篇关于模型 Harness 端到端优化的论文,并且按照它的思路在几个任务上做了复现实验。标题里三个词——Meta、Harness、端到端——单独看都认识,组合在一起却经常把人绕晕。其实这篇论文想解决一个非常具体的痛点:我们在训…

2026/10/13 16:53:41 阅读更多 →
光伏波动下主动配电网有功无功协调优化:二阶锥松弛与源程序实战

光伏波动下主动配电网有功无功协调优化:二阶锥松弛与源程序实战

简介:这份资源面向电气工程、新能源方向的毕业设计与科研入门者,围绕分布式光伏接入配电网后潮流方向不确定、节点电压越限等问题,提供有功无功协调优化的完整程序实现。核心思路是让光伏无功出力与静止无功发生器(SVG&#xff09…

2026/10/13 16:53:40 阅读更多 →
‘rea’技术含义解析:常见缩写、歧义场景与工程识别方法

‘rea’技术含义解析:常见缩写、歧义场景与工程识别方法

项目标题为“rea”,当前无有效上下文(项目正文、关键词、摘要描述均为空),且提供的相关热搜词与网络搜索内容也为占位符空值(仅显示 ),未提供任何实质信息。 根据任务定义,我的全…

2026/10/13 16:52:40 阅读更多 →

最新新闻

PL/SQL智能补全插件实战:解决Oracle开发命名、跳转与上下文感知难题

PL/SQL智能补全插件实战:解决Oracle开发命名、跳转与上下文感知难题

/* 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 17:29:40 阅读更多 →
Grbl_ESP32:基于 ESP32 的 Grbl CNC 控制固件——功能全景、机器配置与编译部署实战

Grbl_ESP32:基于 ESP32 的 Grbl CNC 控制固件——功能全景、机器配置与编译部署实战

嵌入式硬件开发物联网工业制造 【免费下载链接】Grbl_Esp32 A port of Grbl CNC Firmware for ESP32 项目地址: https://gitcode.com/gh_mirrors/gr/Grbl_Esp32 点击查看 免费下载 Grbl_ESP32 是将经典 CNC 控制固件 Grbl 移植到 ESP32 平台的开源实现,…

2026/10/13 17:29:40 阅读更多 →
AIPD 2026会议全攻略:人工智能+产品设计交叉学科投稿与参会指南

AIPD 2026会议全攻略:人工智能+产品设计交叉学科投稿与参会指南

1. 核心价值拆解:为什么这场人工智能与产品设计会议值得关注每年这个时候,学术圈的朋友都在四处物色合适的国际会议,尤其是艺术设计类、交叉学科方向的老师和研究生。大家心里那杆秤其实就三个衡量标准:会议是否正规、出版检索是否…

2026/10/13 17:29:40 阅读更多 →
NSGA-Ⅲ求解梯级水电火电联合调度的Matlab实现解析

NSGA-Ⅲ求解梯级水电火电联合调度的Matlab实现解析

梯级水电和火电联调这种话题,做优化的人应该不陌生。水电机组启动快、调节灵活,但受来水和库容约束;火电机组出力稳定,但煤耗和排放都是大头。两者放一起做联合调度,本质上是个多目标、强约束、非线性的高维优化问题。…

2026/10/13 17:29:40 阅读更多 →
AIPD 2026:人工智能与产品设计交叉国际会议投稿全攻略

AIPD 2026:人工智能与产品设计交叉国际会议投稿全攻略

去年有个做智能硬件的朋友跟我聊,说想找一个“既认AI技术、又愿意谈产品落地”的会议,翻了一圈发现大多会议要么偏纯算法,要么偏纯商科管理。第二届人工智能与产品设计国际学术会议(AIPD 2026)这几年的定位恰好卡在这个…

2026/10/13 17:29:40 阅读更多 →
优卡CAD自动化原理:打版逻辑、放码引擎与COM接口实战

优卡CAD自动化原理:打版逻辑、放码引擎与COM接口实战

/* 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 17:28:39 阅读更多 →

日新闻

物联网系统集成避坑指南:从选型到验收的关键要点

物联网系统集成避坑指南:从选型到验收的关键要点

做了这么多年物联网系统集成的项目,我最大的感受是,大部分坑不是出在技术前沿,而是出在一些看起来很平常的地方。设备选了便宜的、协议没问清楚、现场没摸透、验收标准写得含糊——这些细枝末节,最后都会变成延期、超支和扯皮的大…

2026/10/13 0:00:57 阅读更多 →
ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

如果你玩ESP32有一阵子了,很难不碰到舵机控制这道坎。做智能小车要转方向,做机械臂要抬关节,做云台要偏航俯仰,背后都是同一个东西在干活:舵机。而我见过太多人卡在“代码能编译、舵机就是不听话”这个阶段&#xff0c…

2026/10/13 0:00:57 阅读更多 →
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

1. 为什么CAN总线至今仍是工业现场的“硬通货”?——从汽车底盘到智能温室的真实需求你有没有拆过一辆老款燃油车的中控台?或者调试过某高校实验室里那台跑着Modbus协议却频频丢帧的PLC控制柜?又或者,在某个农业物联网项目里&…

2026/10/13 0:00:57 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 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/12 21:05:09 阅读更多 →
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/12 18:11:17 阅读更多 →