AI编程无状态模型痛点与Memory工程:AGENTS.md声明式配置实战
1. 从无状态到有记忆AI编程范式到底在转什么过去两年我一直在用各类AI编程助手写代码从最早的代码补全插件到后来的对话式编程再到现在的Agent自动化开发。说实话前一年半的时间里我的感受是好用但心累——每次开新会话我都得把项目背景、技术栈、代码规范、目录结构重新交代一遍。AI就像一个技术很强但记忆力为零的新同事每次合作都从零开始。这个问题的根源在于无状态模型的本质。大语言模型在单次推理时上下文窗口里有什么它就知道什么窗口一关一切归零。你昨天跟它敲定的命名规范、上周确定的错误处理策略、上个月踩过的依赖版本坑它统统不记得。这不是模型能力问题而是架构层面的先天限制。于是Memory工程这个概念开始被反复提及。所谓Memory工程说白了就是给AI编程助手建立一套可持久化的外部记忆系统让它在每次会话开始时能自动加载项目上下文在会话过程中能积累经验在会话结束后能沉淀知识。而AGENTS.md这类声明式配置文件正是这套记忆系统的一个关键落点——它用一份结构化的Markdown文件把这个项目是什么、该怎么写代码、有哪些禁忌一次性声明清楚AI每次启动时读取它就相当于带着完整的项目记忆上岗。我最初接触这个思路时觉得不过是把提示词存成文件而已能有多大差别但实际用下来才发现从每次口头交代到声明式配置的转变带来的效率提升是数量级的。这篇文章我就把这套东西拆开讲透为什么无状态模型必须配Memory工程、AGENTS.md该怎么设计、声明式配置的核心原则是什么、实操中会遇到哪些坑。不管你是刚接触AI编程的新手还是已经用了一阵子但觉得不够顺手的开发者应该都能从中找到可以直接抄作业的东西。2. 无状态模型的三大痛点与Memory工程的应对逻辑2.1 痛点一上下文遗忘导致的重复沟通成本我先说一个最直观的场景。假设你在开发一个中等规模的后端服务技术栈是某主流语言框架数据库用的是某关系型数据库缓存用的某内存数据库。你每次让AI帮你写一个新接口如果不交代背景它可能给你返回一个风格完全不同的实现——命名用驼峰还是下划线、异常怎么抛、日志怎么打、参数校验放在哪一层全靠它当场发挥。我实测过在一个约三万行的项目里如果每次会话都重新交代规范平均每个任务要多花三到五分钟在背景同步上。一天做十个任务就是半小时到五十分钟的纯浪费。更麻烦的是AI每次发挥的风格还不一致导致代码库里的风格越来越乱后期维护成本陡增。Memory工程的应对逻辑很直接把项目级的稳定信息抽出来固化成一份AI每次必读的配置文件。这份文件不参与业务逻辑只负责告诉AI这个项目的规矩。它相当于给AI发了一本员工手册入职第一天就看完之后不用每次重复讲。2.2 痛点二跨会话知识无法沉淀第二个痛点是知识沉淀。我在开发过程中经常会让AI帮我解决一些特定问题比如这个库在某个版本下有个已知的兼容性问题需要这样绕过。解决完之后这个知识就随着会话关闭消失了。下次再遇到我还得重新描述、重新排查。这就像一个有经验的开发者做完一个项目后把所有踩坑经验都忘了下个项目重新踩一遍。人不会这样但无状态的AI会。Memory工程在这里的做法是引入分层记忆结构。最上层是项目级的AGENTS.md放最稳定的规范中间层是模块级的说明文件放某个子系统特有的约定最下层是会话级的临时笔记放当前任务的进展。三层各司其职稳定的往上沉淀临时的往下清理。这样知识就能在会话之间传递而不是每次归零。2.3 痛点三多Agent协作时缺乏统一契约第三个痛点随着Agent化开发越来越突出。现在很多团队会同时跑多个AI Agent一个负责写业务代码一个负责写测试一个负责做代码审查。如果它们各自对项目的理解不一致就会出现写代码的用了一套规范审查的用另一套标准的尴尬局面。我见过一个案例某开发者的测试Agent认为所有函数都必须有单元测试覆盖但业务Agent写的代码里有些是纯配置读取函数按项目约定不需要测试。两个Agent来回拉扯最后产出物自相矛盾。Memory工程解决这个问题的思路是把AGENTS.md当作多Agent之间的共享契约。所有Agent启动时都读同一份文件对项目规范、边界条件、例外情况有统一认知。这份文件就成了协作的宪法谁也不能绕过它自行其是。2.4 为什么是声明式而不是命令式这里要专门说一下声明式配置这个选择。命令式是你要先做A再做B然后做C声明式是我要的结果是X具体怎么做你看着办。在AI编程场景下声明式明显更合适。原因是AI的执行路径本身就不确定你没法用命令式精确控制它每一步。但你可以用声明式把约束条件和期望结果讲清楚让AI在约束内自由发挥。比如你声明所有对外接口必须有参数校验和错误码至于校验写在Controller层还是Service层AI可以根据具体代码结构自己判断。这种灵活性是命令式给不了的。而且声明式配置更容易维护。项目规范变了你改一处声明就行不用去改一堆命令式的步骤描述。这对长期演进的项目来说维护成本低得多。3. AGENTS.md的核心结构与设计原则3.1 一份合格的AGENTS.md应该包含哪些模块我前后迭代了七八个版本最后稳定下来的结构大概是这几块。你可以根据自己的项目情况增减但核心逻辑是从稳定到易变、从全局到局部排列。模块作用稳定性建议篇幅项目概览一句话说清项目是什么、解决什么问题极高2-3行技术栈声明语言、框架、关键依赖及版本高5-10行目录结构约定各目录放什么、命名规则高10-20行编码规范命名、格式、注释、错误处理中20-40行架构约束分层规则、依赖方向、禁止事项中15-30行工作流约定提交规范、测试要求、审查要点中10-20行已知坑与例外特定版本问题、特殊处理低按需这个顺序不是随便排的。越靠前的模块越稳定AI每次都必须严格遵守越靠后的模块越易变允许根据实际情况调整。这样AI在读取时能形成一个清晰的优先级判断。3.2 声明式配置的四个核心原则我在设计AGENTS.md时总结了四条原则踩过不少坑才想明白。原则一声明是什么而非怎么做。比如不要写写函数时先写参数校验再写业务逻辑而要写所有公开函数必须对输入参数做校验校验失败返回统一错误结构。前者是命令后者是约束。AI在约束下可以自由选择实现方式产出更自然。原则二用肯定句而非否定句为主。使用驼峰命名比不要用下划线命名更好。原因是AI对肯定指令的执行准确率明显更高否定指令容易在复杂场景下被忽略。当然关键的禁止事项还是要用否定句强调比如禁止在业务层直接操作数据库连接。原则三每条规则都要可验证。如果一条规则AI没法判断自己有没有遵守那这条规则就是无效的。比如代码要优雅这种就没法验证单个函数不超过50行就能验证。我建议每条规则都问自己一句AI能不能在写完代码后自查不能的话就改写成可验证的形式。原则四保持精简宁缺毋滥。我最初写的AGENTS.md有三百多行结果AI经常选择性失忆重要的规则反而被淹没。后来砍到八十行左右执行准确率明显提升。经验值是控制在100行以内超过就说明有些内容该拆到模块级文件里去了。3.3 一个可直接参考的模板骨架下面这份骨架是我现在项目里在用的简化版你可以直接拿去改。注意里面的占位符要替换成你自己项目的信息。# 项目约定 ## 项目概览 本项目是[一句话描述]核心目标是[核心目标]。 ## 技术栈 - 语言[语言及版本] - 框架[框架及版本] - 数据库[数据库及版本] - 关键依赖[依赖列表及版本约束] ## 目录结构 - src/core核心业务逻辑不依赖外部框架 - src/api接口层只做参数校验和响应封装 - src/infra基础设施数据库、缓存、消息队列 - tests测试代码与src结构镜像 ## 编码规范 - 命名变量和函数用驼峰常量和类用大驼峰 - 函数单个函数不超过50行参数不超过5个 - 错误处理统一使用项目定义的错误类型禁止裸抛异常 - 注释公开函数必须有文档注释说明参数和返回值 ## 架构约束 - 依赖方向api - core - infracore不依赖任何外层 - 禁止在core层引入框架相关代码 - 跨层调用必须通过接口禁止直接引用实现 ## 工作流 - 提交信息格式[类型] 简述 - 新功能必须附带测试 - 修改公开接口必须更新文档注释这份骨架大概六十行覆盖了最核心的约束。实际用的时候AI读取后基本能保持风格一致重复沟通成本大幅下降。4. 实操从零搭建一套可用的Memory工程4.1 第一步梳理项目的稳定信息动手写AGENTS.md之前先做一件事把项目里不会经常变的信息列出来。我一般会问自己几个问题。技术栈是什么包括语言版本、框架版本、关键依赖。这里要特别注意版本因为不同版本的API差异很大AI如果不知道版本很可能给你返回过时的写法。我踩过一次坑项目用的是某框架的较新版本但AI默认按旧版本写结果一堆废弃API警告。目录结构怎么组织的每个目录负责什么这个信息对AI理解代码放置位置很关键。我见过不少AI把工具函数随手丢在业务目录里就是因为不知道项目有专门的utils目录。有哪些硬性约束比如所有数据库操作必须走ORM不能写原生SQL、所有对外接口必须有鉴权这类。这些是红线必须写清楚。有哪些已知的坑比如某个依赖在特定版本下有bug需要绕过、某个模块有历史遗留问题不能动。这些信息写进去能帮AI避开很多雷。4.2 第二步确定文件放置位置与加载机制AGENTS.md放在哪、怎么被AI读到这个机制要搞清楚。不同工具的实现方式不一样但核心逻辑都是AI启动时自动扫描项目根目录及子目录下的约定文件。我的做法是在项目根目录放一份主文件然后在各个子模块目录放模块级的补充文件。AI读取时先读根目录的再读当前工作目录相关的模块文件形成全局规范局部补充的加载顺序。这里有个细节要注意模块级文件只写该模块特有的约定不要重复根目录的内容。我一开始图省事每个模块文件都把全局规范抄一遍结果维护起来极其痛苦改一处要改十几个文件。后来改成只写差异清爽多了。4.3 第三步编写与迭代第一版不要追求完美先写个能用的版本然后在实际使用中迭代。我的迭代节奏是这样的每遇到一次AI产出不符合预期就判断是规范缺失还是规范不清然后补充或修改对应条目。举个例子。最初我没写日志规范AI有时候用print有时候用日志库有时候干脆不打日志。后来我在编码规范里加了一条所有关键路径必须有结构化日志使用项目统一的日志接口之后AI就稳定了。再比如我发现AI经常在core层引入框架代码违反了分层原则。我原本写的是core层保持纯净太模糊了。改成core层禁止import任何框架包只能依赖标准库和项目内的纯逻辑模块之后违规率大幅下降。这个迭代过程大概持续两三周之后AGENTS.md就基本稳定了。关键是要有意识地去观察AI的产出偏差把每次偏差都当成一次规范优化的机会。4.4 第四步多Agent场景下的契约同步如果你同时用多个Agent这一步很关键。我的做法是把AGENTS.md作为所有Agent的唯一规范来源任何Agent都不得内置自己的规范副本。具体操作上我会在给每个Agent的启动指令里明确写先读取项目根目录的AGENTS.md严格遵守其中的约定。这样即使Agent本身有默认行为也会被项目规范覆盖。还有一个技巧在AGENTS.md里专门写一节多Agent协作约定说明哪个Agent负责什么、产出物放在哪、交接标准是什么。这样Agent之间就有了明确的接口定义不会互相打架。5. 常见问题与排查技巧实录5.1 AI不遵守AGENTS.md怎么办这是最常见的问题。我遇到的情况大概分三类。第一类是文件没被读到。排查方法是让AI复述一遍它读到的规范内容如果复述不出来说明加载机制有问题。检查文件位置、命名是否符合工具约定。第二类是规范太模糊。AI读到了但理解不了。比如代码要清晰这种AI没法执行。改成可验证的具体规则就行。第三类是规范太多被忽略。文件太长AI的注意力被稀释。解决办法是精简把不常用的规则拆到模块级文件主文件只留最核心的。5.2 规范冲突时如何取舍有时候全局规范和模块规范会冲突。比如全局说函数不超过50行但某个模块因为业务复杂函数普遍偏长。这时候我的处理原则是模块规范优先但必须在模块文件里显式声明这是例外并说明原因。这样AI读到冲突时能根据显式例外优先的规则做出正确判断。如果不显式声明AI可能会随机选一个导致行为不稳定。5.3 规范更新后旧代码怎么办项目规范演进后旧代码可能不符合新规范。我的做法是在AGENTS.md里区分新代码规范和存量代码处理原则。新代码必须严格遵守存量代码在修改时逐步向新规范靠拢不做大规模重构。这样既保证了新代码质量又避免了AI一上来就大改旧代码带来的风险。我见过有开发者让AI按新规范重构整个项目结果引入一堆bug得不偿失。5.4 常见问题速查表问题现象可能原因排查方向解决技巧AI完全无视规范文件未加载让AI复述规范检查文件位置和命名AI偶尔遵守偶尔不遵守规范模糊检查规则可验证性改写成具体可判断的规则AI只遵守部分规范文件过长统计文件行数精简到100行内拆分模块文件多Agent行为不一致规范来源不统一检查各Agent配置统一指向同一份AGENTS.md规范更新后AI混乱新旧规范混杂检查是否有矛盾条目显式标注例外和过渡原则5.5 几个我踩过的坑坑一把AGENTS.md写成教程。我最初写了一大段为什么要这样规范的解释结果AI把解释也当成了指令产出物里居然出现了类似说明文字。后来明白配置文件只写规则不写理由。理由可以放在单独的文档里给人看。坑二规则之间互相矛盾。比如一处写所有函数必须有注释另一处写简单函数不需要注释。AI遇到这种就懵了。写完一定要通读一遍检查有没有逻辑冲突。坑三过度依赖AGENTS.md。有些信息是动态的比如当前任务的具体需求这些不该写进配置文件。配置文件只管稳定信息动态信息通过会话传递。混淆两者会导致配置文件频繁变动失去稳定性。坑四忽略版本信息。技术栈只写用某框架不写版本AI可能按最新版或最旧版写。版本号必须写清楚这是血的教训。6. 声明式配置的边界与我的实际体会6.1 什么该写进配置什么不该用了大半年下来我对边界越来越清晰。写进配置的应该是跨任务稳定的信息技术栈、目录约定、编码规范、架构约束、已知坑。不该写进配置的是任务相关的信息当前要实现什么功能、这次改动的背景、临时的特殊要求。判断标准很简单这条信息在下一个不相关的任务里还需要吗需要就写进配置不需要就通过会话传递。我见过有人把每次任务的需求都写进AGENTS.md结果文件越来越长最后完全没法维护。6.2 配置的维护成本与收益平衡维护AGENTS.md是有成本的每次规范变更都要更新文件。但这个成本相比收益是值得的。我粗略估算过在一个中等项目里配置维护每周大概花半小时但节省的重复沟通时间每周至少三到五小时。投入产出比在六到十倍之间。不过这个比例会随项目规模变化。小项目几千行可能收益不明显因为背景信息本来就少。大项目几万行以上收益非常显著。所以我的建议是项目超过一万行或者团队超过两人协作就值得认真搞一套。6.3 从工具依赖到方法论沉淀最后说点更宏观的。AGENTS.md这类东西表面上是某个工具的配置文件但本质上是一套如何与AI协作开发的方法论。工具会变今天流行的配置格式明天可能被新的取代但背后的思路是稳定的把稳定信息外部化、把约束声明化、把知识沉淀化。我现在即使换用新的AI编程工具也会先把这套思路迁移过去。先梳理项目稳定信息再设计声明式配置然后迭代优化。这套流程已经成了我的标准动作跟具体用什么工具无关。6.4 给不同阶段开发者的建议如果你是刚接触AI编程建议先从最简单的开始写一份二十行的AGENTS.md只包含技术栈和目录结构。用起来之后遇到问题再逐步补充。不要一上来就追求完整那样容易半途而废。如果你是已经用了一阵子但觉得不顺手建议做一次系统梳理把过去一个月里AI产出不符合预期的情况列出来归类看是哪些规范缺失。然后针对性地补充配置。这样迭代出来的配置最贴合你的实际需求。如果你是团队协作场景建议把AGENTS.md纳入代码仓库管理跟代码一起review、一起演进。规范变更走正常的评审流程确保所有成员和所有Agent都同步更新。这样能避免各人一套规范的混乱。我个人在实际操作中的体会是这套东西的价值不在于配置本身写得多漂亮而在于它强迫你把项目里那些只可意会的隐性知识显性化。写配置的过程其实也是重新审视项目规范的过程。很多平时没注意到的约定写下来才发现原来这么重要。这个梳理动作本身就已经值回票价了。

相关新闻

geolog-app:打通测井数据深度校正与分层标记的实用工作流

geolog-app:打通测井数据深度校正与分层标记的实用工作流

简介:geolog-app 是一个基于 Python 开发的地质数据处理与可视化应用,面向地质科研人员、数据分析学习者以及希望掌握 GIS 和 Web 开发技能的编程爱好者。压缩包仅有 14KB,共含 22 个文件,以 14 个 Python 脚本为核心,…

2026/10/12 5:06:59 阅读更多 →
移动端地质编录App设计:从数据模型到离线同步的完整方案

移动端地质编录App设计:从数据模型到离线同步的完整方案

简介:geolog-app 是一份基于 Python 与 Django 的地质学相关 Web 应用源码,面向地球科学领域开发者、Python 后端初学者,以及想通过小型完整项目理解 Web 应用从模型到视图全流程的读者。压缩包共 22 个文件、约 14KB,包含 14 个 …

2026/10/12 5:06:59 阅读更多 →
Redis主从复制网络抖动排查与参数调优实战指南

Redis主从复制网络抖动排查与参数调优实战指南

1. 先看故障现场:一次网络抖动引发的复制雪崩1.1 凌晨3点的告警与三类并发异常先还原一个真实场景。某个凌晨3点,监控平台突然弹出告警,Redis主从复制节点出现断连,随后短短几分钟内,同一机房的多组主从集群先后报出同…

2026/10/12 5:06:59 阅读更多 →

最新新闻

代码级对抗攻击:AST扰动如何绕过SAST与CI门禁

代码级对抗攻击:AST扰动如何绕过SAST与CI门禁

1. 这不是“黑客炫技”,而是代码层攻防的日常切片“Code-Level Adversarial Attacks 相关工作”——看到这个标题,很多人第一反应是:又一个AI安全论文里的抽象概念?其实不然。它背后是一群人在真实代码世界里反复拆解、注入、绕过…

2026/10/12 5:44:22 阅读更多 →
自然数立方与连续奇数之和:推导证明与Python验证

自然数立方与连续奇数之和:推导证明与Python验证

任何一个自然数 m,它的立方都可以写成 m 个连续奇数之和。这句话我第一次读到时,第一反应是:真的假的?当时正好在翻等差数列求和公式,索性拿纸笔列了一串奇数:1、3、5、7、9、11、13、15、17、19、21……然…

2026/10/12 5:44:22 阅读更多 →
最新Nessus2026.10.8版本主机漏洞扫描/探测工具Windows/Linux

最新Nessus2026.10.8版本主机漏洞扫描/探测工具Windows/Linux

前言 Nessus号称是世界上最流行的扫描程序,全世界有超过75000个组织在使用它。该工具提供完整的电脑扫描服务,并随时更新其数据库。Nessus不同于传统的扫描软件,Nessus可同时在本机或远端上遥控,进行系统的分析扫描。对应渗透测试…

2026/10/12 5:44:22 阅读更多 →
psutil详解:用Python搞定CPU、内存与进程监控

psutil详解:用Python搞定CPU、内存与进程监控

前阵子公司一台线上服务CPU突然飙到100%,我用系统自带的任务管理器看了半天,除了一个pid能锁定,剩下的信息全靠猜。后来发现这个进程是哪个服务的、占了多少内存、网络连了哪里,全是黑盒。那次之后我花了两天把psutil完整过了一遍…

2026/10/12 5:44:22 阅读更多 →
编程循环控制核心:break与continue用法详解与多语言实战对比

编程循环控制核心:break与continue用法详解与多语言实战对比

做开发这几年,几乎每个项目里都会碰上循环控制的问题。for 循环本身很简单,真正让新手挠头、让老手翻车的,往往是循环体里的那两个关键字:break 和 continue。很多新手写循环,要么不敢用 break 导致白白跑完全部数据&a…

2026/10/12 5:44:22 阅读更多 →
mediamtx v1.21.2发布:UDP、JWT、RTSP、RTMP、HLS、WebRTC全面修复,稳定性与安全性再提升

mediamtx v1.21.2发布:UDP、JWT、RTSP、RTMP、HLS、WebRTC全面修复,稳定性与安全性再提升

2026年10月10日,mediamtx 发布 v1.21.2 最新版本。本次更新以“修复与改进”为主,覆盖通用逻辑、API、Media-Over-QUIC、RTSP、RTMP、HLS、WebRTC 以及依赖库升级等多个方向。 v1.21.2 没有引入新的功能模块,而是集中处理实际运行中可能出现的…

2026/10/12 5:43:21 阅读更多 →

日新闻

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

在数码相机、高清显示屏与现代矢量图形技术高度发达的今天,画面可以做到绝对的锐利、平滑与无瑕。然而,当一张秋日手账插画或拍立得照片过于“平整无瑕”时,往往会散发出一种冰冷生硬的“数码塑料感(Digital Plasticity&#xff0…

2026/10/12 0:00:59 阅读更多 →
活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

在现代网页与移动端设计中,横排(Horizontal Layout)早已经成为了绝对的主流。然而,当我们翻开泛黄的线装古籍、宋版木刻诗集,或是欣赏一张茶道雅集的手写便签时,那种**自上而下纵向书写、自右向左逐列铺展&…

2026/10/12 0:00:59 阅读更多 →
周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

每到周日的晚上八点到十点,很多人心里都会悄悄亮起一盏警示灯。 在心理学上,这种现象有一个专门的称谓——“周日夜晚焦虑症(Sunday Scaries)”。明天又是周一,闹钟又要重新在七点响彻卧房;脑海里仿佛有一个…

2026/10/12 0:00:59 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/10/12 0:16:43 阅读更多 →

月新闻

我发现了一个新思路:用 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/11 10:45:37 阅读更多 →
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/11 14:36:53 阅读更多 →
黑夜航拍船只数据集训练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/11 14:36:54 阅读更多 →