ChatGPT变身Agent平台:从工具调用到全天候数字员工的实践指南
如果说这两年AI圈的开发者大会有什么共同点那就是各家都在拼命证明自己“不只是一个聊天机器人”。OpenAI这场DevDay我印象最深的不是某个模型版本参数又提了几个点而是那个叫Dot的智能体正式发布。它的定位很直白全天候运行、独立拆解任务、到点汇报结果的数字员工。更值得琢磨的是承载它的底座——ChatGPT正在从“你问我答”的聊天工具变成可以运行Agent、调度Agent、分配工具和资源的Agent平台。下面把我的理解拆开讲讲Dot表面的能力是什么平台底座为什么值得关注以及如果你想把ChatGPT当Agent平台用起来从环境准备、配置、最小示例到并发上线的完整实操过程和那些普通文档不会写的坑。1. Dot发布背后的平台逻辑从聊天框到数字员工1.1 全天候智能体到底“全天候”在哪里很多产品把“AI助手”挂在嘴边但用起来还是单轮问答你问一句、它答一句关掉窗口就全忘了。Dot这类全天候智能体的核心差异在于它有“持续运行”的概念。我理解的全天候至少包含三层。第一层是异步执行你提交一个任务之后不必守在屏幕前它可以把任务拆成步骤、排队执行、完成后给你汇报。第二层是长期记忆它不止记得当前对话还能跨任务记住你的偏好、协作格式和项目背景相当于给AI配了一份“交接班日志”。第三层是事件触发与定时调度到点办事、收到通知触发、监控到状态变化再行动从“被动应答”变成“主动值班”。这三层凑齐了它才配叫Agent而不是智能聊天框。Dot名字虽然轻巧但它的设计形态更像“平台上的第一个第一方Agent应用”。你可以把它理解成手机发布会上厂商展示的原生App真正的大戏其实是背后的应用市场——放在这里就是Agent平台本身。1.2 ChatGPT从聊天工具升级为Agent平台意味着什么ChatGPT过去的核心能力是对话完成度问答、写作、编程本质上是一个更聪明的信息窗口。变成Agent平台后底座变了。我用一个不太严谨但好懂的类比如果过去的ChatGPT是给你配一个很博学的同事你问什么它答什么那现在的ChatGPT类似一家无人值守的办公室——模型是员工工具是设备对话线程变成工单沙盒是工位调度器是排班表。你提交的是一个“目标”而不再是一个“问题”。对开发者来说这个转变有三个直接影响。自动化的颗粒度从“API调用”上升到“任务定义”以前写AI功能要自己拼模型、工具、记忆、重试现在平台把这些变成基础设施生态价值大于单模型价值谁接入的工具多、谁的Agent任务完成率高谁就能形成竞争壁垒开发岗位的诉求也会从“会调接口”变成“会设计任务、会做工具编排、会处理Agent失败恢复”。1.3 哪些人值得马上关注这条路线我自己做过一段时间Agent方向的项目最大的感触是不是所有人都需要追最新的模型参数但Agent平台的演进方式值得所有人关注。如果你做客服、私域运营或者内部流程自动化这类平台会显著压缩开发成本因为多轮对话、工具调用、任务排队这些基础能力不需要自己重复造轮子。如果你做数据分析、报表生产全天候Agent正好命中“每天定时跑、跑完推送结果”的典型场景。如果你在维护个人知识库Obsidian这类笔记工具已经在和Agent联动未来把笔记库直接变成Agent的记忆来源几乎是水到渠成。如果你刚入行想做AI应用与其从零搭框架不如先把平台的能力边界摸清楚再决定要补哪些底层能力。2. Agent平台核心机制拆解工具、记忆、调度与沙盒2.1 平台五大件一件都不能少我拆了一下ChatGPT变成Agent平台后的核心组件正好是五件放在一起看更清楚。组件作用类比模型负责推理与决策店员的脑子工具读写文件、查数据、执行代码店员的双手记忆/上下文跨任务保存偏好与状态交接班记录调度器什么时候该跑、跑几遍排班表沙盒在哪里安全执行代码仓库后场这五样东西以前得开发者自己拼模型选型加工具封装加向量库加定时任务加容器沙箱一套下来光是基础设施就要写不少代码。平台化的核心价值就是把这些能力做成默认设施让你可以专注于写任务逻辑本身。2.2 工具调用是Chatbot和Agent最本质的分水岭很多人问加了工具调用不还是Chatbot吗表面看像本质差很多。Chatbot会根据上下文生成一段文本比如“我帮你查好了天气数据明天20度”。Agent是真正调用天气API拿到结构化数据判断明天要不要提醒你带伞然后把结论写进你的日程。区别就藏在实现细节里模型输出一个结构化的工具调用请求平台去执行执行完把真实结果塞回上下文模型再基于结果继续推理。这一步循环起来Agent才能“干实事”。在我实践过的项目里单次工具调用不难难的是多轮工具调用的错误恢复。Agent跑三步第二步某个工具返回的格式不对模型能不能意识到出错、换个方式重试这才是平台能力与玩具的分界。如果平台的工具编排做不好Agent每次断在第三步你就得不停地人工介入。2.3 Harness、Agent、Workflow别再傻傻分不清热词里经常出现“harness和agent区别”这里给出我的理解。Harness是组装模型、工具、输入输出的执行外壳跑完一个任务就结束没有长期状态更像自动化脚本。Agent是有目标、有循环、有状态能根据中间结果调整计划甚至能申请新工具的实体。Workflow是预先编排好的固定步骤确定性执行。举个具体的例子Harness是给你一把螺丝刀告诉你拧哪里Agent是看到螺丝锈了自己去找润滑剂再把螺丝拧下来Workflow则是流水线上固定的三步操作。Agent平台要做的就是让越来越复杂的Agent可以在统一环境里跑同时保留Harness的简单性——你声明目标、给工具、设权限剩下的交给运行时。2.4 安全边界Agent权限不是越大越好Agent有了工具和沙盒自然会有安全隐患。我见过不少翻车案例起因都是把文件读写权限和网络权限无脑放开Agent执行到某一轮时把不该改的文件改了。平台设计里真正重要的不是“给不给权限”而是“给到什么范围”。文件写入要限制在workspace目录网络请求要加白名单危险操作要加确认机制。我自己的原则是默认最小权限按任务需要逐步放开。安全这件事在Agent平台上比在普通API服务上更值得较真因为Agent的执行路径是模型现场决定的不可完全预判。3. 实操笔记跑通一个全天候Agent任务的完整流程3.1 环境准备装好Codex与依赖再好的平台开发环境装不好都会劝退一批人。我这段时间在Windows和macOS上都部署过Codex这里给出一份相对顺滑的流程。前提是你要有Node.js环境版本不低于18。然后安装官方CLInpm install -g openai/codex装完跑一下codex --version确认版本。这里我要特别提醒一个坑npm安装时平台相关的可选依赖包经常因为缓存或网络原因没装全。最典型的报错长这样missing optional dependency openai/codex-win32-x64. reinstall codex: npm i这个问题的根源是openai/codex通过optionalDependencies安装当前平台对应的二进制包如果平台包缺失CLI能装上但跑不起来。解决办法通常有三个用npm install -g openai/codexlatest --force重装清npm缓存后重装或者检查全局node_modules手动补齐openai/codex-win32-x64对应版本。接着是API Key。登录OpenAI官方开发者平台在API Keys页面创建然后通过环境变量注入不要写进代码库export OPENAI_API_KEYsk-xxxxAgent项目一旦并发跑起来Key泄漏的代价会非常高建议定期轮换并且按项目单独建Key别所有环境共用一个。3.2 配置config.toml模型选择与常见报错Codex的配置默认位置在~/.codex/config.toml。很多同学第一次接触上来写一堆配置结果启动时直接报chatgpt 无法加载 config.toml因此此对话串无法继续。 请修复 config.toml这个报错九成是TOML语法问题比如注释格式不对、字符串没用双引号、嵌套表对不齐。我的习惯是先备份再做最小化改动model gpt-5.6-sol [agent] max_turns 20 tool_use true work_dir ./workspacemodel字段值得展开。最近我在Codex的日志里看到它默认连接的已经是gpt-5.6-sol这类新模型代号。但如果你用ChatGPT账号登录去连这个模型很可能会收到the gpt-5.6-sol model is not supported when using codex with a chatgpt acc这个报错的意思很直白Codex通过ChatGPT账号登录时权限范围和你Console里的API Key不一样部分模型在ChatGPT账号模式下不可用。解决办法是切到API Key模式或者显式切换到账号模式支持的模型。3.3 最小Agent示例让ChatGPT替你跑一份行业日报先说场景。假设老板要求每天9点前出一份行业日报你要做的不是每天手动搜资料而是定义一个全天候Agent。第一步明确目标。它需要抓取目标网站的新闻提取与行业相关的内容总结出三条重点写入指定文档。第二步定义工具。至少要有两个工具网页抓取工具和文件写入工具。第三步写Agent循环。平台会提供运行时封装我习惯用Python表达这个循环from codex import Agent agent Agent( modelgpt-5.6-sol, tools[web_fetch, file_write], max_turns20, sandboxdocker, ) task agent.submit( 抓取今天AI行业新闻筛选与Agent平台相关的3条 每条100字摘要写入 daily_report.md ) result agent.wait(task) print(result.summary)第四步跑起来。第一次跑建议人工盯着日志看它是否真的调用了工具而不是“表演调用”。如果Agent半天不调用工具要么是工具没注册成功要么是模型权限不足。第五步设置调度。让它变成全天候需要平台支持定时触发。在配置里声明cron表达式schedule 0 8 * * *平台到点会自动拉起任务。这套流程跑通之后你会理解为什么平台比自研框架省心线程管理、工具注册、错误重试、结果持久化都是默认能力。3.4 并发、常驻与容器化全天候不是挂个死循环有人觉得全天候就是写个while True这个想法会带来不少问题。真正上过线的Agent服务至少要面对三件事。第一件事是并发控制。模型API有速率限制任务队列要有并发上限。我一般在配置里把并发设成3量大时宁可排队也不要打爆接口。第二件事是幂等性。同一个任务被调度两次结果要一致。日报这种场景还好涉及扣费、发消息的任务就必须做去重。第三件事是失败恢复。Agent执行到第10步崩了重试时要支持从断点恢复而不是每次从头来。容器化也值得多说一句。Agent跑代码、抓网页理论上都可能翻车所以容器里要把工作目录挂载好、限制CPU和内存、把密钥从环境变量注入。我在正式环境的部署脚本里这些都是写死的参数。容器化的另一个好处是沙盒隔离任务在独立环境里跑就算代码写炸了也影响不到宿主机。4. 常见问题与排查技巧实录这里把最近收集到的真实问题整理成速查表按出现频率排序方便你直接对照排查。现象可能原因处理办法missing optional dependency openai/codex-win32-x64npm平台依赖未装全清缓存重装或手动补齐平台包无法加载 config.toml对话串无法继续TOML语法错误或路径不对备份后用最小配置验证逐段注释排查the gpt-5.6-sol model is not supported with a chatgpt acc账号模式和模型不匹配换API Key模式或改用支持的模型chatgpt failed to start. 该进程没有程序包标识符桌面端安装不完整或签名损坏彻底卸载后重装终端启动看日志更新agent沙盒后卡住沙盒版本与本地虚拟化不兼容删除沙盒缓存目录重新拉取codex无法发送消息网络策略或鉴权过期检查API Key是否轮换并确认请求日志4.1 npm安装Codex的平台依赖坑这个坑我在Windows上踩得最狠。当时装完codex一跑就报missing optional dependency openai/codex-win32-x64。查了会儿才发现npm在optionalDependencies下载失败时经常静默吞掉只在运行期把问题暴露出来。解决办法不止重装一遍。如果网络不稳定建议单独把平台包装上。比如Windows平台包是openai/codex-win32-x64执行npm install -g openai/codex-win32-x64latest装完再看node_modules/openai/codex下的平台文件是否齐全。另外npm缓存也可以定期清一清很多重装无效的坑都是缓存里的坏包在作怪。4.2 config.toml修复的两种姿势“无法加载config.toml”出现时ChatGPT的行为会变得很奇怪甚至会提示“此对话串无法继续”好像AI突然失忆了。其实不是模型问题是配置解析失败导致客户端启动了一个残缺环境。我的修复姿势有两种。第一种是备份后用最小配置启动一行model、一行agent能跑就说明问题是多余配置引入的。第二种是一段一段取消注释定位到语法错误的具体位置。TOML比JSON严格最容易踩的坑有三个行尾不允许逗号、字符串必须用双引号、日期格式不能乱写。4.3 模型不支持的原因与对策gpt-5.6-sol这类模型名频繁出现在报错里说明Codex默认路由已经切到新一批推理模型。但很多同学用ChatGPT账号登录就撞上了“not supported when using codex with a chatgpt acc”。这个限制其实可以理解ChatGPT账号绑定的是订阅服务模型白名单和API控制台不一致。对策很简单开发环境优先用API Key别依赖账号模式。如果某些场景必须用账号模式就在配置里显式声明一个支持列表里的模型不要用默认值。4.4 桌面端启动失败程序包标识符“chatgpt failed to start. 该进程没有程序包标识符”这个报错多半出现在macOS桌面版Windows安装包也有类似情况。原因是系统启动时没有找到应用的bundle identifier常见于安装包被移动过、签名失效或者更新中断。我的处理方式先彻底卸载再重新下载最新版本安装。如果重装还不行从终端直接执行应用二进制看底层的启动日志。别光看弹窗日志才是第一现场。4.5 沙盒更新与安全边界最后说沙盒。Agent平台里沙盒是安全执行代码的核心设施日志里那些“更新agent沙盒”的提示不是广告而是运行时在同步执行环境。如果卡住多半是本地虚拟化组件版本和平台要求不匹配。我的习惯是沙盒更新前先确认当前容器镜像列表更新后马上跑一个最小的任务验证比如让它执行一条echo命令确认环境没问题再放正式任务进去。宁可多花两分钟验证也不要让几十个任务全部落在坏沙盒里白跑一遍。5. 避坑心得与方案选型建议5.1 别急着自研先吃透平台边界我见过太多团队一上来就要自己造Agent框架最后卡在基础设施上。工具调用、记忆管理、调度器、沙盒每一块都够写很久而且踩坑周期很长。我的建议是先在一个成熟的Agent平台上把完整任务跑通理解各组件的关系和边界再决定哪些能力需要自研。平台能做到的事优先用平台省下来的精力都是成本。5.2 任务设计优先于模型折腾Agent能不能跑出价值往往不是模型够不够聪明而是任务定义够不够清晰。把模糊目标拆解成“触发条件、输入输出、验收标准、失败预案”比追着换模型更有效。很多项目跑不起来不是因为模型笨是因为需求太模糊Agent根本不知道什么算完成。5.3 留个人工确认挡位全天候不等于无人值守。涉及写外部文件、发消息、修改配置这种不可逆操作时我强烈建议在Agent流程里加一个“人工确认”节点。别嫌麻烦出一次事故的代价比多跑几步贵得多。我现在的项目里默认所有危险操作都要人工放行只有完全可信的任务才会开自动执行模式。5.4 把可观测性当成第一需求最后分享一个我最近才彻底想明白的点Agent项目最缺的不是智能而是可观测性。任务执行到哪一步、工具返回了什么、模型基于什么信息做了决策、失败在哪一环这些日志和追踪如果做不好你连优化方向都找不到。所以从第一天开始就要把每一步的执行记录结构化地保存下来而不是等出问题了再拍脑袋复盘。我个人在这些项目里的体会是平台化会让Agent开发的门槛明显下降但不会让“想清楚要做什么”这件事变简单。Dot发布只是一个信号ChatGPT变成Agent平台才是真正值得花心思理解的趋势。工具链更熟了坑也摸清了后面再做什么“Idea加Agent”的落地项目都会顺手很多。

相关新闻

OpenAI发布Dot智能体:从聊天机器人到Agent平台的设计与开发实战

OpenAI发布Dot智能体:从聊天机器人到Agent平台的设计与开发实战

这两天,科技圈被一个叫 Dot 的家伙刷屏了。就在刚过去的 OpenAI DevDay 上,OpenAI 正式发布了这个全天候智能体,现场演示里它自己拆任务、调工具、跑数据、写报告,全程不需要人盯着。说白了,OpenAI 这场发布会想传递的…

2026/10/5 9:31:58 阅读更多 →
clusterProfiler安装全指南:R包依赖冲突与报错排查实战

clusterProfiler安装全指南:R包依赖冲突与报错排查实战

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

2026/10/5 9:31:58 阅读更多 →
51单片机超声波雾化器项目实战:从硬件驱动到状态机控制

51单片机超声波雾化器项目实战:从硬件驱动到状态机控制

聊到51单片机,很多人第一反应是点灯、转电机、做电子时钟,顶多再搞一个交通灯。但说实话,用51做一台能真实喷出白色水雾的超声波雾化器,才是成本低、看起来又“猛”的项目。我最近刚把“51雾化器”整套方案重新做了一遍&#xff1…

2026/10/5 9:30:58 阅读更多 →

最新新闻

AI客服质量闭环实践:从人工抽检到全量评估的技术路径

AI客服质量闭环实践:从人工抽检到全量评估的技术路径

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

2026/10/5 14:56:29 阅读更多 →
RK平台MIPI DSI闪屏排查:用示波器定位物理层信号问题

RK平台MIPI DSI闪屏排查:用示波器定位物理层信号问题

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

2026/10/5 14:56:29 阅读更多 →
基于DQN的三维在线装箱实战:从建模到调参避坑

基于DQN的三维在线装箱实战:从建模到调参避坑

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

2026/10/5 14:56:29 阅读更多 →
券商研报自动生成实战:基于DeepSeek本地化部署的五层架构设计

券商研报自动生成实战:基于DeepSeek本地化部署的五层架构设计

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

2026/10/5 14:56:29 阅读更多 →
CubeFS Master 用户管理 API 完全指南:从用户创建到卷授权与转移

CubeFS Master 用户管理 API 完全指南:从用户创建到卷授权与转移

存储分布式文件系统对象存储云原生 【免费下载链接】cubefs cloud-native distributed storage 项目地址: https://gitcode.com/gh_mirrors/cu/cubefs 点击查看 免费下载 CubeFS 的用户管理机制以 Master 节点的 HTTP 接口为核心,为对象存储&#xff08…

2026/10/5 14:56:28 阅读更多 →
LabVIEW中英文切换方案:控件文本映射与运行时动态翻译实现

LabVIEW中英文切换方案:控件文本映射与运行时动态翻译实现

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

2026/10/5 14:55:27 阅读更多 →

日新闻

马斯克杀回智能体战场,Grok 4.5万亿参数撑腰,Cursor接手数字白领项目:用TaoToken统一Key跑通多模型Agent工作流

马斯克杀回智能体战场,Grok 4.5万亿参数撑腰,Cursor接手数字白领项目:用TaoToken统一Key跑通多模型Agent工作流

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

2026/10/5 0:00:22 阅读更多 →
AI编程工具插件机制详解:plugin.json配置与加载失败排查指南

AI编程工具插件机制详解:plugin.json配置与加载失败排查指南

1. 从“plugins”这个词说起:它到底在解决什么问题如果你最近在折腾 AI 编程工具,尤其是 Cursor、Codex CLI、Claude Code 这类带 CLI 的编辑器或命令行助手,那你大概率绕不开一个词——plugins。这个词本身不新鲜,从浏览器到 IDE…

2026/10/5 0:00:23 阅读更多 →
第26课:OpenClaw|日志审计与问题诊断:把日志链路改到 TaoToken 的排查清单

第26课:OpenClaw|日志审计与问题诊断:把日志链路改到 TaoToken 的排查清单

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

2026/10/5 0:00:23 阅读更多 →

周新闻

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/5 5:06:42 阅读更多 →
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/5 1:10:22 阅读更多 →
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/5 3:06:17 阅读更多 →

月新闻

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