Agent动作验证实战:不改模型,成功率提升18%的工程化方案
1. 动作验证到底在验证什么从Agent执行链路说起大语言模型驱动的Agent在终端环境里干活最让人头疼的不是模型不够聪明而是它经常看起来做对了实际上没做对。你让它改一个配置文件它输出了修改后的内容但文件根本没写进去你让它跑一个构建命令它说构建成功但实际编译报错被它忽略了。这类问题在业界有个统一的称呼——执行幻觉模型在文本层面完成了推理但在物理层面没有真正改变环境状态。动作验证Action Verification要解决的就是这个断层。它的核心思路非常朴素在Agent声称完成某个动作之后不信任它的自我报告而是通过独立的手段去检查环境是否真的发生了预期变化。这个独立的手段可以是读取文件内容、检查进程状态、比对命令输出、验证返回值等等。为什么这个思路能带来18%的成功率提升因为Agent的失败模式中有相当大一部分不是不会做而是做了但没做对却以为做对了。动作验证相当于在Agent的自我认知之外加了一层事实核查把这类假阳性成功拦截下来触发重试或修正。我拿一个实际场景来说明。假设Agent需要在一个项目里创建一个Python虚拟环境并安装依赖。没有动作验证的情况下Agent的典型行为是执行python -m venv venv执行source venv/bin/activate pip install -r requirements.txt报告环境配置完成但实际情况可能是第1步因为Python版本问题失败了第2步在系统Python下安装了包第3步Agent看到pip输出了一些成功信息就认为万事大吉。等到后续步骤需要用到虚拟环境时整个链路崩溃。有了动作验证之后Agent在第1步之后会检查venv/bin/python是否存在且可执行在第2步之后会检查venv/lib/python*/site-packages/下是否有预期的包。任何一步验证不通过就触发诊断和重试。这就是最基础的动作验证逻辑。动作验证的本质不是让Agent更聪明而是让Agent更诚实。它不改变模型的推理能力只改变模型对完成的判断标准。2. 为什么不需要改模型验证层与推理层的解耦设计很多人听到提升Agent成功率的第一反应是去微调模型或者换一个更强的模型。但动作验证这条路之所以吸引人恰恰是因为它完全不动模型只在Agent的执行框架层面做文章。这背后的设计哲学值得展开说说。2.1 推理与执行的职责分离一个设计良好的Agent系统推理和执行应该是分离的。模型负责决定做什么执行器负责实际去做验证器负责确认做成了没有。这三者的职责边界越清晰系统越容易调试和优化。当你把验证逻辑从模型推理中抽离出来就获得了一个关键好处验证规则可以用确定性代码来写而不依赖模型的概率性输出。比如文件是否存在这个问题用os.path.exists()判断是100%确定的比让模型去感觉文件在不在要可靠得多。这种解耦还带来一个工程上的优势验证规则可以独立迭代。你今天发现Agent在某个操作上容易出错就加一条验证规则明天发现另一类问题再加一条。不需要重新训练模型不需要调整prompt不需要担心影响其他任务的表现。2.2 验证信号的来源分类在实际落地中动作验证的信号来源可以分成几类每类的可靠性和适用场景不同验证信号类型具体手段可靠性适用场景文件系统检查检查文件存在性、内容哈希、修改时间极高文件创建、修改、删除操作进程状态检查检查进程是否运行、端口是否监听高服务启动、后台任务命令返回值检查exit code、stderr输出高命令执行类操作输出内容解析正则匹配关键信息、结构化解析中高需要从输出中提取状态环境状态比对前后快照diff高复杂环境变更模型自检让模型重新审视自己的输出中无法用确定性手段验证时实际系统里通常是多种信号组合使用。比如验证一个启动Web服务的动作可以同时检查进程是否存在、端口是否监听、HTTP请求是否返回200。三重验证都通过才认为成功。2.3 验证的时机前置、后置与持续动作验证不一定是做完再查。根据场景不同验证可以发生在三个时机前置验证是在动作执行前检查前提条件。比如要安装一个包先验证pip是否可用、网络是否通、磁盘空间是否够。前置验证能避免很多做到一半发现条件不满足的尴尬。后置验证是最常见的动作执行后检查结果是否符合预期。这是动作验证的主战场。持续验证适用于长时间运行的任务比如启动一个服务后不是检查一次就完事而是持续监控一段时间确认服务稳定运行。三种时机各有价值实际系统里往往需要组合使用。前置验证降低无效执行后置验证拦截假成功持续验证捕捉延迟失败。3. 把验证逻辑写进Agent循环四种可落地的集成模式知道了原理接下来是工程落地。动作验证怎么嵌入到Agent的执行循环里我总结了四种模式从简单到复杂适合不同成熟度的系统。3.1 模式一硬编码验证钩子最直接的做法是在Agent的每个动作类型上挂一个验证函数。比如定义一个动作注册表ACTION_VERIFIERS { create_file: verify_file_created, run_command: verify_command_success, install_package: verify_package_installed, start_service: verify_service_running, } def execute_with_verification(action, params): result execute_action(action, params) verifier ACTION_VERIFIERS.get(action) if verifier and not verifier(params, result): return retry_or_diagnose(action, params, result) return result这种模式实现简单适合动作类型有限的场景。缺点是每新增一种动作就要加一个验证函数扩展性一般。3.2 模式二声明式验证规则把验证规则从代码里抽出来用配置描述。比如用YAML定义verifications: - action: create_file checks: - type: file_exists path: {{params.path}} - type: file_not_empty path: {{params.path}} - action: run_command checks: - type: exit_code expected: 0 - type: stderr_no_error这种模式的好处是验证规则可以动态调整不需要改代码。适合需要频繁调整验证策略的场景。3.3 模式三模型辅助验证有些动作的结果很难用确定性规则验证比如这段代码是否实现了预期功能。这时候可以让模型来做验证——但不是让执行动作的同一个模型自检而是用一个独立的验证prompt甚至可以用一个不同的模型。关键点是验证prompt要和执行prompt分离。执行时模型关注怎么做验证时模型关注做对了没有两个任务的上下文和评判标准不同。用一个独立的验证调用能显著降低模型自我确认偏误。3.4 模式四验证结果反馈进推理循环最高级的用法是把验证结果作为观察信号反馈给Agent让它基于验证结果决定下一步。这本质上把验证变成了Agent感知环境的一部分。比如Agent执行了一个命令验证发现exit code非零这个信息被反馈给模型模型就能看到我之前的操作失败了从而调整策略。这比简单的重试要智能得多因为模型能根据具体的失败原因做针对性修正。四种模式不是互斥的实际系统里往往是组合使用。硬编码钩子处理高频确定性验证声明式规则处理可配置的验证模型辅助处理模糊场景反馈循环让整个系统具备自适应能力。4. 验证规则的设计陷阱过度验证与验证不足动作验证听起来简单但设计不好会引入新问题。我在实践中踩过两类坑验证不足导致漏网过度验证导致系统僵化。4.1 验证不足的典型表现验证不足最直接的表现就是假成功依然存在。常见原因有几个验证粒度太粗。比如只检查命令exit code但命令可能返回0却输出了错误信息。或者只检查文件存在不检查文件内容是否正确。验证时机不对。有些操作的结果不是立即可见的比如异步任务。如果动作刚发出就验证可能验证时任务还没完成得到假阴性如果等太久又浪费时间。验证条件太宽松。比如检查文件存在但没检查文件是否可读、是否为空、是否是预期的文件。一个空文件也能通过存在性验证。4.2 过度验证的代价过度验证的问题往往被忽视。当你加了太多验证规则会带来几个副作用执行时间膨胀。每个动作后面跟一堆检查整体耗时可能翻倍。对于需要快速迭代的任务这个开销可能不可接受。误报导致无效重试。验证规则太严格可能把正常结果判为失败触发不必要的重试。比如检查文件内容时用了过于精确的匹配而实际内容有合理的格式差异。系统脆弱性增加。验证规则依赖的环境假设越多越容易因为环境变化而失效。比如验证某个路径存在但不同系统上路径规范不同。4.3 找到平衡点分层验证策略我的经验是采用分层验证核心验证必做增强验证可选深度验证按需。核心验证是那些不做就会导致后续步骤崩溃的检查比如文件是否创建、命令是否成功。这些验证成本低、可靠性高应该默认开启。增强验证是那些能提高质量但非必需的检查比如文件内容格式、输出信息完整性。这些可以根据任务重要性选择性开启。深度验证是那些需要额外计算或调用的检查比如模型辅助验证、复杂的状态比对。这些只在关键节点或核心验证失败时触发。验证层级典型检查成本触发条件核心验证文件存在、exit code、进程状态低默认开启增强验证内容格式、输出完整性、参数正确性中任务重要性高时开启深度验证模型辅助判断、状态快照比对高核心验证失败或关键节点这个分层策略的核心思想是把验证成本花在刀刃上。大部分动作只需要核心验证就够了只有少数关键动作需要深度验证。5. 实测数据18%提升从哪些场景来标题里说的成功率暴涨18%这个数字不是凭空来的。根据我在多个Agent任务上的实测提升主要来自几个高频失败场景的修复。5.1 文件操作类任务的提升最明显文件操作是Agent最常做的动作之一也是假成功的高发区。没有验证时Agent经常出现说写了但没写说删了但没删说改了但改错了的情况。加上文件验证后这类任务的完成率提升非常显著。具体验证点包括文件是否存在、内容是否匹配预期、修改时间是否更新、文件权限是否正确。我做过一组对比测试在100个涉及文件操作的任务上无验证的完成率大约是72%加上文件验证后提升到89%左右。这17个百分点的提升主要来自那些Agent以为完成了但实际没完成的任务被正确识别并重试。5.2 命令执行类任务的提升来自错误捕获命令执行类任务的失败往往更隐蔽。命令可能返回了非零exit code但Agent只看了stdout没看stderr或者命令输出了错误信息但Agent把它当成了正常输出。验证命令执行的关键是同时检查exit code和stderr。exit code非零直接判失败stderr有错误关键词也要警惕。有些命令即使exit code为0stderr里也可能有警告或错误信息这些信息往往预示着后续问题。实测中命令执行类任务加上验证后完成率从68%提升到84%左右。提升主要来自那些命令实际失败了但Agent没意识到的场景。5.3 多步骤任务的累积提升单个动作的验证提升可能只有几个百分点但在多步骤任务中这些提升会累积。一个10步的任务如果每步的验证能减少5%的失败率整体成功率提升会非常可观。这是因为多步骤任务中前一步的失败会级联影响后续步骤。如果第一步的文件没创建成功后面所有依赖这个文件的操作都会失败。动作验证在第一步就拦截了问题避免了级联失败。动作验证的价值在多步骤任务中被放大。单步验证的收益是线性的但在任务链中它避免的是指数级的失败传播。5.4 不同任务类型的提升差异不是所有任务类型都能获得同样的提升。根据实测提升幅度和任务特性有关任务类型无验证完成率有验证完成率提升幅度文件操作72%89%17%命令执行68%84%16%环境配置61%79%18%数据处理75%86%11%纯文本生成88%90%2%可以看到与环境交互越多的任务验证带来的提升越大。纯文本生成类任务因为不涉及环境状态变更验证的用武之地有限。而环境配置、文件操作这类任务验证几乎是刚需。6. 验证失败之后重试、诊断与降级策略验证发现失败只是第一步更重要的是失败之后怎么办。如果只是简单重试可能会陷入失败-重试-再失败的死循环。合理的失败处理策略是动作验证系统的重要组成部分。6.1 重试不是万能药很多人第一反应是验证失败就重试。但重试有个前提失败是瞬时的、可恢复的。如果失败是系统性的比如命令本身写错了、依赖根本不存在重试多少次都没用。我的经验是给重试加上条件同一动作连续失败2次后不再盲目重试而是转入诊断模式。诊断模式会收集更多信息——完整的错误输出、环境状态、历史操作记录——然后让模型基于这些信息判断失败原因。6.2 诊断信息的收集与利用诊断阶段的关键是收集足够的信息。光知道失败了不够要知道为什么失败。诊断信息包括动作的完整输入参数执行的完整输出stdout和stderr验证的具体失败原因当前环境的相关状态之前几步的操作历史这些信息汇总后可以让模型做一次专门的诊断推理基于这些信息失败的根本原因是什么应该怎么修正这个诊断推理和正常的任务推理是分开的上下文更聚焦判断往往更准确。6.3 降级策略当验证无法通过时有些情况下验证可能永远无法通过比如环境本身有问题、依赖服务不可用。这时候需要有降级策略而不是无限重试。降级策略可以包括跳过非关键验证、使用替代方案、标记任务为部分完成、请求人工介入。关键是不要让Agent卡在一个无法完成的操作上要有退出机制。我在实际系统里设置了一个最大验证失败次数超过这个次数就触发降级流程。降级流程会评估当前状态决定是继续、跳过还是终止。这个机制避免了Agent在死胡同里浪费资源。6.4 验证日志的价值所有验证结果都应该被记录不管成功还是失败。这些日志有几个用途调试当任务失败时验证日志能快速定位是哪一步出了问题。优化分析验证日志能发现高频失败模式指导验证规则的优化。度量验证通过率是衡量Agent健康度的关键指标能反映系统整体状态。我习惯把验证日志结构化存储每条记录包含动作类型、验证结果、失败原因、重试次数等字段。积累一段时间后这些数据能揭示很多有价值的信息。7. 从单点验证到验证体系工程化落地的几个关键决策动作验证从demo到生产中间隔着不少工程决策。这一节聊聊我在落地过程中认为最关键的几个选择。7.1 验证规则的维护成本验证规则不是写完就完事的它需要持续维护。环境变了、依赖升级了、任务类型扩展了验证规则都可能需要调整。降低维护成本的关键是让验证规则尽可能声明式、可配置。把验证逻辑和业务逻辑分离验证规则用配置文件或数据库管理而不是散落在代码各处。这样调整验证策略时不需要改代码、不需要重新部署。另一个技巧是验证规则的复用。很多验证逻辑是通用的比如文件存在且非空这个检查可以用在所有文件创建场景。把这些通用验证抽象成可复用的组件能大幅减少重复工作。7.2 验证性能的优化验证本身也有成本。如果每个动作后面跟一堆检查整体性能会受影响。优化验证性能有几个方向并行验证多个独立的验证检查可以并行执行而不是串行。比如同时检查文件存在性和内容而不是先查存在再查内容。缓存验证结果对于短时间内不会变化的状态可以缓存验证结果避免重复检查。按需验证不是所有动作都需要全量验证根据动作重要性和历史失败率决定验证深度。异步验证对于非阻塞的验证可以异步执行不阻塞主流程。7.3 验证与可观测性的结合动作验证天然适合和可观测性系统结合。验证结果本身就是一种重要的可观测信号。把验证数据接入监控系统能实现实时监控Agent任务成功率自动告警验证失败率异常分析验证失败的模式和趋势关联验证失败和其他系统指标这种结合让动作验证不只是事后检查而是成为系统健康度的一部分。7.4 验证策略的迭代验证策略不是一成不变的。随着对Agent行为理解的深入验证策略也应该迭代。迭代的依据来自验证日志的分析哪些验证规则从来没触发过可能过于宽松或者根本不需要。 哪些验证规则频繁失败可能需要调整阈值或者检查环境问题。 哪些失败模式没有被现有验证覆盖需要新增验证规则。这个迭代过程是持续的目标是让验证体系越来越精准既不过度也不不足。8. 一些实操中的经验与教训最后分享几个我在实际落地动作验证时积累的经验有些是踩坑换来的有些是观察到的规律。验证要趁早。不要等到Agent报告完成才验证要在每个关键动作后立即验证。延迟验证会让问题定位变得困难因为中间可能发生了很多其他操作。验证信息要具体。验证失败时不要只说验证失败要说清楚期望什么、实际什么、差异在哪。具体的失败信息对后续诊断至关重要。不要完全信任模型的自我报告。模型说完成了不等于真的完成了。这不是模型在撒谎而是它的完成判断基于文本推理不基于环境事实。验证就是弥补这个差距。验证规则要能解释。每条验证规则都应该有明确的理由——为什么验证这个、不验证那个。没有理由的验证规则往往是过度验证的来源。从小处开始。不要一上来就搞一套复杂的验证体系。先从最高频、最关键的几个动作开始加验证看到效果后再逐步扩展。渐进式落地比大跃进靠谱。验证失败不一定是坏事。验证失败拦截了一个假成功这本身就是价值。不要因为验证失败率高就怀疑验证系统要分析失败背后的真实问题。保持验证的独立性。验证逻辑不要和执行逻辑耦合太深否则执行逻辑的bug会污染验证结果。验证应该是独立的、客观的。定期回顾验证效果。每隔一段时间回顾验证系统的表现拦截了多少假成功、误报了多少次、性能开销多大。这些数据能指导验证策略的优化。动作验证这个方向本质上是在Agent的自信和现实之间架一座桥。模型可以很自信地认为自己完成了任务但现实可能并非如此。验证就是那座让Agent脚踏实地的桥。18%的提升只是一个开始随着验证体系的完善这个数字还有上升空间。

相关新闻

AI生成代码后如何高效收尾?四步清单解决“生成一时爽,合入火葬场”

AI生成代码后如何高效收尾?四步清单解决“生成一时爽,合入火葬场”

用AI写代码的人,大概率都经历过这种时刻:需求说得差不多了,AI几秒钟吐出一大段能编译的代码,那一刻确实爽。但用久了你会发现,真正耗时间的根本不是“让AI把功能写出来”,而是它交完代码之后你还要做的那些…

2026/10/10 10:23:08 阅读更多 →
WorkBuddy不是PPT软件,而是PowerPoint的神经接口

WorkBuddy不是PPT软件,而是PowerPoint的神经接口

1. WorkBuddy不是PPT软件,而是你做PPT时的“人形外挂”很多人第一次看到“WorkBuddy做PPT保姆级教程”这个标题,下意识会以为WorkBuddy是个新出的国产PPT工具——点开下载、安装、打开界面、新建幻灯片……结果发现根本找不到“新建演示文稿”按钮。我见…

2026/10/10 10:23:08 阅读更多 →
TDD模式下的并发程序设计:三层模型与确定性测试

TDD模式下的并发程序设计:三层模型与确定性测试

刚开始接触并发程序设计那几年,我最抵触的一件事就是TDD。理由和大多数同事完全一样:并发代码本身就不确定,多线程一跑起来千变万化,拿测试去框它,测试自己先崩。做高并发IM服务那阵子,我的开发流程永远是“…

2026/10/10 10:22:07 阅读更多 →

最新新闻

Selenium爬虫太慢?用Chrome DevTools Protocol把提速做到极致

Selenium爬虫太慢?用Chrome DevTools Protocol把提速做到极致

用Selenium写爬虫的人,迟早会碰上一件事:脚本逻辑没问题,选择器全写对了,可就是慢。慢到什么程度?几年前我跑一个资讯类站点的采集任务,一个页面从加载到拿到数据要10秒出头,两万条数据放那儿&a…

2026/10/10 11:04:40 阅读更多 →
17万字企业智慧CRM平台重构:从架构诊断到灰度切换的工程实践

17万字企业智慧CRM平台重构:从架构诊断到灰度切换的工程实践

简介:这份资源是面向企业信息化负责人、CRM产品经理与系统架构师的企业智慧CRM平台重构设计与建设项目实施技术方案,针对当前CRM平台业务承载能力不足、系统架构陈旧、网络架构不完善等痛点,给出从需求提出到落地实施的完整技术路径。资源包共…

2026/10/10 11:04:40 阅读更多 →
用Claude盘清老项目技术栈:从目录树到风险清单的实战方法

用Claude盘清老项目技术栈:从目录树到风险清单的实战方法

昨天把“只管去写”的第二天任务定成了“把老项目分析清楚”。要处理的项目是个接手快半年的内部系统,不是特别大,但代码历史悠久,中间经过好几轮交接。平时改需求总觉得使不上劲,根源只有一个:我只知道它“能跑”&…

2026/10/10 11:04:40 阅读更多 →
从164页PDF到可检索语法知识库:解析、索引与练习生成实战

从164页PDF到可检索语法知识库:解析、索引与练习生成实战

简介:这份《高中英语语法大全-精讲教程(最全版)》面向高中生及英语语法自学者,系统梳理高中阶段核心语法体系,帮助读者从零散知识点走向完整框架,适合日常同步学习、高考复习与查漏补缺。资源为单个PDF文件,压缩包约1.…

2026/10/10 11:04:40 阅读更多 →
Qwen-Image-2.1 阿里云生产级部署:GPU显存优化与服务化架构

Qwen-Image-2.1 阿里云生产级部署:GPU显存优化与服务化架构

1. 这不是“又一个大模型部署教程”,而是面向生产环境的 Qwen-Image-2.1 云端推理系统构建实录你搜到“Qwen-Image-2.1 云端部署”时,大概率正卡在三个地方:一是看到 GitHub 上那行pip install qwen-vl就以为完事了,结果一跑 infe…

2026/10/10 11:04:39 阅读更多 →
老板键实现原理与方案选型:从AutoHotkey到Windows API开发

老板键实现原理与方案选型:从AutoHotkey到Windows API开发

1. 老板键到底是个什么东西第一次听到“老板键”这个词,很多人会以为是键盘上某个特殊按键,其实它指的是一类功能——通过一个快捷键,瞬间把当前屏幕上不想被人看到的内容隐藏起来,同时切换到另一个看起来“人畜无害”的界面。这个…

2026/10/10 11:03:38 阅读更多 →

日新闻

卫星轨道分类全解析:从LEO到GEO的选型逻辑与工程实践

卫星轨道分类全解析:从LEO到GEO的选型逻辑与工程实践

1. 从“卫星轨道分类”这个标题说起:为什么值得花时间搞懂第一次接触“卫星轨道分类”这个概念,很多人会觉得它离自己很远——不就是天上的星星怎么转吗?但如果你正在做航天任务规划、遥感数据接收、星座设计,甚至只是准备一场航天…

2026/10/10 0:00:39 阅读更多 →
Spring AOP 核心原理与实战:从概念到日志切面落地

Spring AOP 核心原理与实战:从概念到日志切面落地

1. 从一个真实痛点说起:为什么你的代码里到处都是重复逻辑刚入行那会儿,我写过一个用户管理模块,注册、登录、改密码、注销四个接口。每个接口里都塞了几乎一样的日志打印、参数校验、事务开启和提交。当时觉得没什么,能跑就行。直…

2026/10/10 0:00:40 阅读更多 →
Python招聘数据采集与分析可视化:从采集清洗到薪资技能城市可视化全链路

Python招聘数据采集与分析可视化:从采集清洗到薪资技能城市可视化全链路

简介:这是一套面向计算机相关专业学生与项目实战学习者的Python数据采集与分析可视化完整项目,以Boss直聘岗位数据为对象,适合用作毕业设计、课程设计或期末大作业。资源包共38个文件,约246KB,以13个py源码文件为核心&…

2026/10/10 0:00:40 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

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

2026/10/8 15:26:32 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

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

2026/10/10 1:36:08 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

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

2026/10/9 10:11:06 阅读更多 →

月新闻

我发现了一个新思路:用 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/10 5:23:50 阅读更多 →
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/9 21:32:20 阅读更多 →
黑夜航拍船只数据集训练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/10 10:38:42 阅读更多 →