Havenlon | 杂谈:对抗性完整 - AI执行系统如何守住边界
一家企业准备让AI Agent接管部分云运维工作。它可以读取监控告警判断故障原因生成修复方案并在获得人工批准后修改生产环境。为了保证安全企业给它加上了完整的权限系统、审批流程和审计日志Agent不能直接获得管理员权限每次高风险操作都必须提交申请负责人批准后才能执行所有动作也都会被记录。从传统信息安全的角度看这套设计似乎已经足够谨慎。但假设另一种情况Agent读取的一份故障文档中混入了恶意指令它因此生成了错误的修复方案审批页面只展示了“恢复服务”这段摘要没有完整展示将被修改的资源负责人在告警压力下点击同意系统使用合法凭证完成操作日志也如实记录了全过程。整个过程中没有人绕过权限没有人伪造签名没有人删除日志审批也真实发生了。但一个已经被污染的意图仍然沿着合法流程进入了生产环境。传统安全机制证明了“谁有权操作”却没有证明“这个操作是否仍然是最初想要的操作”证明了“有人同意”却没有证明“审批人看到的内容是否等于系统最终执行的内容”。这就是AI执行系统面临的新问题风险不一定来自权限之外它也可能沿着权限之内的合法路径发生。最难阻止的错误不是绕过全部控制而是利用全部控制把一个错误意图完整地执行下去。要处理这类问题仅靠模型对齐、访问控制、人工审批或审计日志都不够。我们需要讨论一种更完整的系统属性对抗性完整。“完整性”为什么需要重新定义在传统信息安全中完整性通常指数据没有被未授权篡改。一个文件的哈希没有变化一条数据库记录只有授权用户能够更新一份软件包的签名可以被验证都属于完整性保护。这种定义仍然重要但它主要关心的是对象有没有被改变。Agent系统带来的困难是每一份数据都可能保持原样每一个参与者也可能使用真实身份最后的执行结果却仍然偏离原始意图。原因在于AI执行不是一次简单的读写操作而是一条不断发生语义转换的链路业务目标 → 输入与上下文 → AI理解 → 任务规划 → 策略判断 → 人工审批 → 授权或签名 → 工具执行 → 结果与证据在这条链路中“降低成本”可能在任务规划阶段变成删除冗余资源“删除冗余资源”可能在工具调用阶段扩大为删除所有长期未使用的实例审批者看到的可能只是一段摘要签名系统最后证明的也可能只是某个合法身份授权了一组二进制参数。每个局部组件都可以正确工作整体意图却可能在组件之间的转换中逐渐漂移。因此AI时代的完整性不能只保护数据还要保护从意图到结果的关系。数据完整性回答“内容有没有被改”对抗性完整回答“即使有人试图误导系统最初的边界还能不能保持到执行结束”。什么是对抗性完整对抗性完整可以被定义为当系统中的部分输入、参与者、策略来源、审批过程或软件组件已经出错、失陷甚至主动作恶时系统仍能维持关键意图、权限边界、执行对象与证据链不被替换并阻止不满足最终约束的动作进入现实。这个定义包含三个关键词。第一个是“部分不可信”。对抗性完整并不假设整个系统已经被攻击者完全控制。如果所有密钥、硬件、人员和执行环境同时失陷任何架构都很难继续提供有意义的保证。它关注的是更现实的情况某一个模型判断错误某一个数据源被污染某一位管理员越权某一条策略过于宽松某一个SaaS服务失陷或者某一个审批者受到误导。第二个是“关键不变量”。系统不需要保证每个组件永远正常却必须预先定义少数不能被突破的条件。例如未经确认的收款地址不能接收大额资金审批后的执行参数不能发生变化任何单一管理员都不能关闭全部安全策略超过额度的操作必须由独立边界拒绝。这些条件不依赖AI临场判断而是作为执行前必须成立的不变量存在。第三个是“结果约束”。传统防御经常把注意力放在攻击过程有没有提示词注入有没有账号入侵有没有恶意代码。对抗性完整更关心攻击最终能否改变现实结果。系统可以没有识别出一段恶意输入但只要错误动作在最后一步仍然无法获得执行资格边界就发挥了作用。对抗性完整不是要求系统看穿所有攻击而是要求攻击即使暂时得逞也不能轻易获得最终执行权。这使它与模型安全产生了一个根本区别模型安全试图降低错误判断的概率对抗性完整试图限制错误判断能够造成的最大后果。对抗性条件不只是“黑客攻击”“对抗性”容易让人联想到外部攻击者但在真实企业系统中能够破坏执行完整性的力量远不止黑客。第一类是恶意输入。Agent读取的网页、邮件、附件、工单和数据库记录都可能包含试图改变其行为的内容。对于大模型来说数据和指令最终都表现为上下文中的Token。如果系统没有在架构上区分“可以被理解的信息”与“可以改变行为的命令”外部数据就可能获得不应拥有的控制能力。第二类是无意错误。用户可能表达不完整AI可能错误补全业务指标可能与真实目标冲突审批者也可能理解错对象。错误没有主观恶意却能造成与攻击相同的结果。对执行系统而言判断错误与恶意操纵都可能产生危险动作因此不能只防“坏人”还要防“好人犯错”。第三类是合法身份作恶。管理员、Owner、审批人和内部成员都拥有真实凭证。他们不需要突破认证系统只需要在权限范围内修改策略、诱导审批或选择最宽松的执行路径。传统访问控制很难阻止这种行为因为攻击者本身就是被授权者。第四类是组件失陷。云端控制面、策略服务、日志服务、模型供应商或设备中的某一层都可能因为漏洞、配置错误或供应链问题而变得不可信。系统如果把全部判断、执行和证据集中在同一信任域一次失陷就可能同时改变规则、放行动作并重写记录。第五类是环境变化。一个在发起时安全的动作在真正执行时可能已经不再安全。收款地址发生变化、成员权限被撤销、设备进入异常状态、时间窗口已经过期都可能使原有批准失去效力。因此对抗性完整处理的不是一种攻击技术而是一类系统事实决策链中的任何局部都可能在某个时刻不再值得完全信任。真正成熟的安全设计不从“谁永远可信”出发而从“谁都有可能在某一刻不再可信”出发。一条执行链需要守住哪些完整性要让“对抗性完整”从概念变成工程对象可以把执行链拆成七种相互关联的完整性。1. 来源完整数据不能伪装成命令系统需要记录输入来自用户、内部服务、外部网页还是第三方文档并为不同来源赋予不同的信任级别。一份文档可以向AI提供事实却不应该仅凭其中的一句话获得调用工具的权限。外部内容即使使用了“系统指令”“管理员命令”等措辞也仍然只是数据。来源完整的重点不只是做内容过滤而是分离数据面与控制面什么内容可以被模型阅读什么主体可以修改目标什么组件能够签发工具权限必须由系统结构决定不能由自然语言自己声明。2. 意图完整目标必须形成可绑定的对象自然语言适合提出目标却不适合直接作为高风险执行凭证。进入执行链后意图需要被转换为结构化对象明确发起者、动作、对象、参数、约束、有效期和唯一随机数。在一种简化表达中可以形成intent_hash H(domain || actor || action || object || parameters || constraints || nonce || expiry)这里的哈希并不是为了让系统看起来更“密码学”而是为了建立稳定绑定。后续规划、审批、签名和执行都引用同一个intent_hash。任何关键字段变化都会产生新的意图对象并使原有批准失效。其中的domain用于域分离避免同一段数据在不同协议或业务中被解释成另一种对象nonce和expiry用于限制重放与过期执行。意图只有从一段可以被重新解释的话变成一个无法被悄悄改写的对象才真正进入安全边界。3. 转换完整每一步都要继承上一步的约束Agent经常把一个目标拆成多个步骤再由不同工具分别执行。风险在于每一次转换都可能增加参数、替换对象或扩大范围。因此步骤之间不能只靠文本描述关联而要形成可验证的父子关系。每个步骤应声明它来源于哪个意图、继承哪些约束、增加了哪些具体参数以及它是否扩大了风险范围。如果上一步只允许读取下一步就不能在没有新授权的情况下变成写入如果原始意图只涉及一个资源任务规划也不能默默扩展到整个资源组。这类似于软件供应链中的构建溯源系统不仅验证最终产物还要知道它从什么输入、经过什么步骤形成。4. 策略完整Policy不能成为神谕很多系统把策略判断当成绝对答案策略引擎返回Allow后续系统便直接执行。但策略本身也有来源。组织策略、设备策略、业务策略、临时授权和合规规则可能彼此冲突其中某一条也可能被错误配置或恶意放宽。对抗性完整要求系统明确策略的来源、版本和适用范围并定义冲突时的收敛规则。高风险操作不能自动选择最宽松的策略来源也不能让提出请求的一方同时决定使用哪条策略。在无法确认哪条规则有效时系统应进入受限状态而不是根据“尽量完成任务”的目标自行猜测。5. 审批完整批准必须绑定真实执行对象人工审批并不天然可靠。摘要可能遗漏关键参数界面可能弱化风险时间压力可能使审批者形成机械点击审批后的对象也可能再次发生变化。有效审批至少需要满足三项条件审批人看到关键执行字段审批动作绑定确定的意图或步骤哈希审批后任何关键参数变化都会触发重新批准。这意味着系统记录的不能只是“某人在某时点击通过”还应包括当时展示的对象、金额、权限范围、风险提示、策略版本与批准目标。审批的价值不在于系统里出现了一个“同意”而在于这个“同意”无法被挪用到另一件事上。6. 执行完整最后一步必须能够独立说“不”当意图、规划、策略和审批全部通过后系统仍然需要在执行前重新验证关键不变量。原因很简单前面的组件可能共享同一错误也可能在同一信任域内同时失陷。如果最终执行者只是机械接受上游的Allow它就不是边界只是通道。真正的最终否决需要具备一定独立性它拥有独立规则、独立状态或独立信任根能够核对执行对象是否与批准对象一致、请求是否过期、额度是否超限、状态是否发生变化、证据是否完整。这个组件不必理解完整业务也不必比大模型更聪明。它只需要对少数不可突破的条件作出确定判断。在一般业务中这种独立性可以通过隔离的策略服务和短期权限实现在核心密钥、资金或关键基础设施场景中还可能需要与主控制面分离的设备或硬件信任根。但硬件不是天然正确它的价值在于建立不同失效模式而不是给软件结论盖上一枚更昂贵的章。最后一道边界不负责证明前面所有人都正确它只负责确保最危险的错误没有资格继续前进。7. 证据完整证据必须覆盖“为什么发生”传统日志通常记录谁调用了什么接口、接口是否成功却很少完整记录动作从何而来。对抗性完整需要一条从原始意图开始的证据链输入来源、意图对象、任务步骤、策略版本、审批展示内容、签名对象、最终参数、执行结果和拒绝原因都应形成可关联记录。证据之间还需要有顺序和前后关系防止局部删除、插入或重排。更重要的是证据不能完全由被审计的同一组件自行生成和解释。否则一个已经失陷的控制面既可以制造错误动作也可以制造一份看起来合理的历史。证据链的目标不是储存更多日志而是让事后能够回答最初要做什么系统为什么认为可以做谁看到了什么最终执行了什么哪一条边界曾经放行或拒绝。对抗性完整不等于什么一个新概念是否有意义不只取决于它包含什么还取决于它与相邻概念的边界是否清楚。它不等于模型对齐。对齐关注模型输出是否符合预期价值和行为规范对抗性完整假设模型仍可能失误并限制失误进入现实的能力。它不等于提示词防注入。注入防御主要保护模型上下文对抗性完整还覆盖策略污染、审批诱导、权限滥用、对象替换、重放执行和证据篡改。它不等于零信任。零信任强调持续验证身份、设备和访问请求对抗性完整还要验证意图在整个执行链中是否保持一致。一个身份完全真实的人也可能发起不应该发生的动作。它不等于多签或人工审批。多签证明多个主体表达过同意却不自动证明他们看到的是同一个真实对象也不能阻止多个审批者共享同一错误信息。它不等于硬件安全。安全芯片可以保护密钥和执行边界却无法独自判断业务意图是否合理。硬件只能保证它被设计来验证的条件不能自动获得业务真理。它也不等于审计。审计解释已经发生的事情对抗性完整首先要阻止不满足条件的事情发生。事后可追溯很重要但不可逆动作发生后再完整的日志也无法替代事前边界。对抗性完整不是某一个安全组件而是部分组件已经不可信时系统整体仍然保有边界的能力。Fail-Secure无法确定时系统应该怎样失败任何执行系统都会遇到无法判断的时刻策略服务失联、审批证据缺失、时间状态异常、设备无法同步、两个可信来源给出相反结论。此时的选择决定了系统究竟是在追求可用性还是在守护边界。Fail-Open意味着无法判断时继续放行避免业务中断Fail-Secure意味着无法证明安全条件成立时拒绝高风险执行或降级到更小权限。这并不意味着所有业务都要“一断网就停机”。合理设计应当根据风险分级低风险读取可以继续高风险写入进入等待已经预授权的小额操作可以使用有限离线额度超出范围则拒绝证据暂时无法同步可以本地保留但证据链本身出现断裂时不可逆动作不能继续。关键在于降级规则必须在正常状态下预先确定而不是故障发生后由正在请求执行的Agent临时解释。安全系统最真实的价值不体现在一切正常时有多流畅而体现在信息不完整时它是否仍然知道什么不能做。Fail-Secure必然带来误拦、等待和人工介入。它不是免费的安全午餐而是一种明确的代价选择。对于可以回滚的动作企业可以接受更高自动化率对于资金、密钥、生产删除和物理控制等不可逆动作保守失败通常比错误放行更可控。如何判断一个系统是否具备对抗性完整对抗性完整不能停留在宣传语上它必须对应明确的威胁模型和可测试的不变量。评估一个系统时可以从六个问题开始。第一系统明确假设哪些组件可能失陷如果架构图中的每一层都被默认标记为“可信”那么所谓安全只是把风险藏在假设里。第二原始意图能否与最终执行对象进行密码学或结构化绑定如果两者之间只能依赖日志文本和自然语言摘要意图就可能在转换中被替换。第三任何单一角色或单一服务能否同时修改策略、批准动作、执行操作并解释证据如果可以系统仍然存在一个事实上的“上帝权限”。第四审批后修改金额、对象、范围或时间原批准是否自动失效如果不会审批就可能被重绑定到另一项执行。第五当策略冲突、状态未知或证据缺失时系统会放行、拒绝还是降级如果没有预先定义Fail-Secure只是一句口号。第六测试是否包括合法身份作恶与合法流程被诱导只测试外部越权攻击无法证明系统能够抵抗权限内部的错误执行。技术验证也不应该只做成功路径。团队需要主动改变一个步骤的参数、重放一份过期授权、撤销成员后继续执行、让两个策略源返回冲突结果、切断证据服务、模拟控制面失陷观察最终边界是否仍能拒绝。对抗性完整不是“系统没有被攻破”的静态证明而是“某些部分已经出现问题后关键不变量仍然成立”的动态证明。为什么AI越强这个问题反而越重要能力较弱的AI主要影响信息它写错一段摘要生成一份质量不高的报告通常还有人类在最后一步纠正。能力更强的Agent影响状态它能够跨系统搜集数据、规划多步任务、调用工具并持续执行。模型越能自主完成复杂任务人类越容易退出过程只在异常时介入。但异常恰恰可能由模型自己定义。如果同一个Agent负责行动、监控和总结它也可能把自己造成的问题解释成任务进展把本应上报的偏差压缩进一段看似正常的摘要。因此智能越强系统越不能把全部判断集中在智能本身。AI负责理解开放世界独立边界负责验证封闭条件AI负责生成候选动作执行层负责确认哪些候选动作有资格进入现实。这不是限制AI价值而是让它能够进入更高价值的场景。企业不敢把核心业务交给Agent并不只是因为模型准确率不够而是因为错误发生时缺少一条可以独立停止执行的边界。AI能力决定系统能走多快对抗性完整决定它走错方向时还能不能停下来。结语完整不是永远正确对抗性完整并不承诺绝对安全也不假设存在一个永远正确的模型、管理员、审批人、策略引擎或硬件设备。恰恰相反它从承认局部不可靠开始。它要求系统先说清楚自己的威胁模型哪些参与者可能出错哪些组件可能失陷哪些动作不可逆哪些不变量无论如何都必须成立。然后再通过来源隔离、意图绑定、策略收敛、审批绑定、独立否决、Fail-Secure和证据链让某一个局部的错误无法直接获得整个系统的权力。这种思路与追求“完美智能”不同。它不等待模型消灭所有幻觉也不期待组织中的每一个人永远理性更不把某个Owner、云服务或硬件装置奉为最终真理。它真正守护的是一条朴素的工程原则错误可以发生攻击可能暂时成功系统也可以进入不确定状态但不可承受的结果不能因此自动获得执行资格。当AI从内容生成走向现实执行这种能力将不再是附加功能而会成为智能系统能否进入资金、权限、基础设施和物理世界的前提。对抗性完整的目标不是创造一个永不犯错的系统而是让任何一次错误都不能轻易成为最终结果。

相关新闻

软件架构中的Duang与Pip模式:平衡稳健与敏捷的艺术

软件架构中的Duang与Pip模式:平衡稳健与敏捷的艺术

那天下午,我正对着屏幕调试一段死活跑不通的代码,隔壁工位的同事突然凑过来,指着手机屏幕说:“快看这个,teeteepor发的,25年运动会,这两个小家伙太魔性了!”视频里,一个圆…

2026/10/13 16:13:33 阅读更多 →
本地部署Llama 3-70B只需16GB显存?不,真实压测揭示:3大内存墙、2类PCIe瓶颈、1个被忽略的NVMe带宽陷阱(硬件避坑白皮书)

本地部署Llama 3-70B只需16GB显存?不,真实压测揭示:3大内存墙、2类PCIe瓶颈、1个被忽略的NVMe带宽陷阱(硬件避坑白皮书)

更多请点击: https://intelliparadigm.com 第一章:本地AI 硬件配置推荐 构建高性能本地AI开发环境,关键在于平衡算力、内存、存储与功耗。GPU是核心组件,NVIDIA RTX 4090(24GB VRAM)目前仍是消费级首选&am…

2026/10/8 11:54:03 阅读更多 →
从JDK 8升级到JDK 17:关键技术迁移指南

从JDK 8升级到JDK 17:关键技术迁移指南

1. JDK升级背景与必要性分析从JDK 8升级到JDK 17绝非简单的版本号变更,而是跨越了Java生态系统的重大技术演进。作为LTS(长期支持)版本,JDK 17带来了诸多革命性改进:ZGC垃圾回收器的成熟、模式匹配的增强、密封类的引入…

2026/10/13 12:32:32 阅读更多 →

最新新闻

LiteLLM实战:构建统一AI模型网关解决多模型接入与成本管理

LiteLLM实战:构建统一AI模型网关解决多模型接入与成本管理

大概一年多前,我们团队还处在一种“各家大模型接口各写各的”的混乱状态里。新项目接入一个新的模型服务,往往要大改一遍调用层;密钥散落在配置文件、环境变量和同事的聊天记录里;一到月底想算一下花了多少钱,得翻后台…

2026/10/13 16:13:21 阅读更多 →
秒杀系统异步下单全解析:从库存预扣到订单落库的工程实践

秒杀系统异步下单全解析:从库存预扣到订单落库的工程实践

做秒杀项目之前,我一直觉得它就是"量大、并发高、扛住就行"。真上手之后才发现,难的不是把 Redis 和消息队列接上去,而是把一整套异步下单流程想清楚、把边界条件处理好。这套东西如果只是照着网上的架构图画一遍,上线必…

2026/10/13 16:13:21 阅读更多 →
Claude Code 安装配置与登录排障全指南:Node.js 环境、网络与账号问题一次讲透

Claude Code 安装配置与登录排障全指南:Node.js 环境、网络与账号问题一次讲透

1. 先把"网络、账号、登录"这三件事拆开看很多人第一次接触 Claude Code 这类命令行 AI 编程工具,卡住的地方往往不是代码本身,而是三件看起来最基础的事:网络能不能通、账号怎么算、登录状态怎么维持。这三件事如果混在一起排查&a…

2026/10/13 16:13:21 阅读更多 →
CentOS 7创建安全sudo用户的完整实践指南

CentOS 7创建安全sudo用户的完整实践指南

1. 为什么非得在CentOS 7里搞个sudo用户?——不是“能用就行”,而是“必须稳住”你刚连上一台全新的CentOS 7服务器,root密码攥在手里,心里踏实?别急着敲su -。我见过太多次:某位运维同事在凌晨三点改完防火…

2026/10/13 16:13:21 阅读更多 →
AI写专著痛点全解:AI专著撰写工具深度评测,20万字章节逻辑+出版级格式

AI写专著痛点全解:AI专著撰写工具深度评测,20万字章节逻辑+出版级格式

对于很多学者来说,写学术专著最大的难点,往往是时间和任务之间的矛盾。完成一部专著通常需要三到五年,甚至更长,这期间还要兼顾教学、项目、会议等各种事情。大部分时间只能利用零碎时间去写作,这样的写作状态让思路容…

2026/10/13 16:13:21 阅读更多 →
dplyr 的 order_by() 与 with_order():窗口函数排序控制的完整指南

dplyr 的 order_by() 与 with_order():窗口函数排序控制的完整指南

数据分析 【免费下载链接】dplyr dplyr: A grammar of data manipulation 项目地址: https://gitcode.com/gh_mirrors/dp/dplyr 点击查看 免费下载 导读 order_by() 与底层支撑函数 with_order() 是 dplyr 中用于"先按指定向量排序、再执行窗口函数、最后还原…

2026/10/13 16:12:19 阅读更多 →

日新闻

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

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

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

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/12 0:16:38 阅读更多 →
影刀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 阅读更多 →