Mac本地部署Openclaw:三人AI团队搭建全流程复盘
前阵子在一个开发者讨论组里有人把 Openclaw 批得一文不值原话大意是“不就是把几个大模型的 API 串起来吗能跑通 Demo 就以为是团队了”。说实话我看完反而笑了。这种评论我见得太多了——凡是没真正跑过、没把业务接进去的人永远觉得开源框架只是玩具。但也正是这条评论让我决定把这段时间在 Mac 上折腾 Openclaw、搭起一个三人 AI 团队的完整过程记录下来。这篇文章不是概念科普也不是帮你刷个“哇好厉害”的体验感而是我实际用了三周、跑完一个模拟项目后的真实复盘。Openclaw 到底是不是智商税本地跑多智能体到底需要什么配置角色、工具、流程之间怎么配合为什么我说它“养团队”而不是“调 API”看完你应该有自己的判断了。如果你手里正好有一台 Mac也有点 Python 基础那这篇可以直接照着抄。1. 争议从哪来为什么那么多人说 Openclaw 没价值1.1 “不就是调几个 API 吗”对多智能体的最大误解我见过相当一批批评 Openclaw 的人其实连多智能体这个概念都没吃透。他们心里的“AI 编程”还停留在写个 Python 脚本循环调用大模型接口拿到字符串再拼装成结果。这种做法的本质是“单次问答”输入进去、输出出来模型之间没有身份、没有记忆、没有工具也没有互相校验。Openclaw 干的事情完全不一样。它把一个任务拆成多个角色每个角色有独立的系统提示词、独立的模型配置、独立的工具权限并且这些角色之间的对话和产出是能持久化保存的。你可以简单理解成调 API 是雇了一个能力很强但只能单线程工作的人你问一句他答一句答完就忘Openclaw 是雇了一个项目组有人调研、有人写代码、有人审代码他们之间会开会对齐并且把阶段性成果落盘到本地第二天还能接着干。这个差异决定了它们不是量变而是质变。我把两者的区别整理成了下表批评者最容易忽视的就是“上下文生命周期”和“工具边界”这两行维度直接调 APIOpenclaw 多智能体上下文生命周期单次请求结束即消失每个角色独立持久化可跨会话记忆任务拆解人为写好所有步骤由编排层按角色、按流程拆分工具使用需要自己写函数嵌入代码角色可声明权限自主决定何时调用角色约束无身份概念系统提示词 工具边界 输出格式约束结果可信度完全靠单模型发挥有审查角色二次校验多级兜底部署形态脚本或服务本地进程 配置文件 任务流水线我不否认“调 API”也能实现部分功能但那就像你买了个工具箱却不打开隔层只拿一把螺丝刀干了所有活。Openclaw 真正的价值是把不同模型的长处拆开用调研角色你可以给它配一个知识面广但便宜的模型编码角色配一个代码能力强的模型审查角色配一个逻辑严谨的模型。每个模型干自己最擅长的事整体成本反而更低。1.2 本地框架的价值不在跑通 Demo而在可编排、可复用的工程化另一类批评来自“云端 Agent 平台”的拥趸他们说“云平台不也能建 Agent 吗为什么要本地装个框架”我不否认云端平台体验流畅但它们有两个我无法接受的缺点。第一角色和任务流程通常被平台用界面锁死了你想做精细化的权限控制、想把团队配置当成代码版本管理非常痛苦。第二数据默认经过云端哪怕只是内部业务数据的中间结果也会让我心里不踏实。本地跑 Openclaw 的核心优势是配置即代码、状态即文件。我的每个角色、每条任务流程都落在本地目录里可以用 git 管理回滚、分支、多人共享配置都跟普通项目一样。团队成员的项目中间产物也是本地文件数据不出机器。它不再是一个“用完即走”的在线工具而是一套可以被你持续迭代的工作流基础设施。当然本地化也有代价最直接的就是你得自己处理环境问题。这恰恰是很多人在 Mac 上第一步就被劝退的原因——不是 Openclaw 跑不起来而是 Python 版本、依赖冲突、API Key 这些环境细节把人磨到没脾气。所以我下面这部分把搭建过程中的关键节点和坑都摊开讲清楚。2. Mac 本地搭建环境依赖与首次启动2.1 Mac 硬件不是瓶颈真正消耗资源的是编排层先给结论我用的是一台普通 M 系列芯片、16GB 内存的 MacBook没有独立显卡跑 Openclaw 的这个三人团队没有任何性能压力。为什么因为大模型的推理根本不在本地进行你本地跑的只是一个“指挥调度层”它负责维护每个角色的上下文、决定何时调用工具、把不同角色的产出互相传递。真正吃显卡的活都被你手里的大模型 API 接走了。所以如果你的疑问是“我的 Mac 跑得动吗”我可以直接说只要不是六七年前的老 Intel 机器基本都没问题。反倒是另外两个资源要留意磁盘空间和散热。Openclaw 会把每个角色的历史消息、每次任务的中间产物都持久化到本地我的项目跑了三周目录大概占掉 4GB 左右如果你要同时跑好几个团队、还要长期保留记录建议留够空间。散热则是多智能体的通病——几个角色轮番调用 API、处理工具结果时CPU 占用会间歇性拉高MacBook 风扇转起来很正常不用慌。2.2 从拉取仓库到第一个 Agent 上线安装环节我说一下我当时的具体操作以官方仓库发布的方式为准我这里的重点是环境隔离和验证链路。第一步永远是给项目建独立虚拟环境。我有过直接用系统 Python 装依赖然后被污染到重装环境的经历所以这步不要省python3 -m venv .ocenv source .ocenv/bin/activate pip install -r requirements.txt依赖装完后初始化一个工作目录。它的结构大致是这样oc-team/ ├── agents/ # 每个角色一个配置文件 ├── pipelines/ # 任务流程定义 ├── memory/ # 各角色的持久化上下文 ├── workspace/ # 任务产出物 ├── tools/ # 自定义工具脚本 └── config.yaml # 全局配置API Key、模型映射、超参数第一次启动前你需要把大模型的 API Key 填进全局配置或者设置成环境变量。这里有一个细节Openclaw 支持给不同角色绑定不同模型但你完全可以先全部用一个模型跑通链路后面再逐个优化。不要一上来就追求豪华配置先把地基打稳。启动一个单 Agent 会话验证链路是我强烈建议做的第一件事。直接跟一个角色对话让它读一个本地文件并总结内容。如果这一步能正常回复且能看到工具调用的日志说明环境已经通了。整个过程如果顺利十分钟内就能完成。如果你在这里卡住大概率是下面几个问题常见报错排查思路API Key 认证失败检查环境变量是否在当前终端会话生效注意某些 shell 配置文件不会自动加载模型名称不存在模型 ID 必须以服务商实际提供的标识为准配置文件里别自己发明名字工具调用超时网络代理设置可能影响请求确认终端环境没有拦截外部接口调用端口被占用如果启动了本地 Web 面板换个端口即可配置文件里改一下参数角色对话无响应优先重启进程多智能体框架对刚改过的配置文件不会热加载我踩过最蠢的一个坑是API Key 明明填对了但因为虚拟环境里少装了一个依赖模块导致整个服务静默失败。所以你看到任何“不报错但没反应”的现象先去翻日志不要盯着界面怀疑人生。3. 定义团队角色、工具、协作流程3.1 先别急着上五人团队三个角色就够用很多新手拿到 Openclaw第一反应就是一口气建五六个角色——产品经理、项目经理、前端、后端、测试、运维全安排上。我劝你先冷静。角色越多上下文传接越复杂排查问题的时间成本和 token 成本都会指数级上涨而且很容易出现角色之间互相“客套”产出却没有实质推进的情况。我建议的起步配置是三件套调研员、编码员、审查员。这个组合足够覆盖绝大多数文档类、数据类和轻量开发类任务。调研员负责收集信息、拆解需求、输出方案编码员负责把方案落地成脚本或文档审查员负责挑刺检查逻辑漏洞、格式问题和遗漏点。三人形成一个“提出 — 执行 — 校验”的最小闭环比一个人单打独斗靠谱得多。3.2 角色配置文件的写法系统提示词、模型绑定、工具权限每个角色在agents/目录下对应一个 YAML 文件核心就是系统提示词和工具权限。我贴一个非常简化的示意实际使用时你可以写得更细name: coder model: fast-llm-29b # 换成你自己手里的模型 ID system_prompt: | 你是团队里的编码员。 你负责根据调研员的方案编写可运行的 Python 脚本。 要求 1. 代码必须包含完整的注释和运行说明。 2. 如果遇到数据字段不明确先输出你理解的数据结构不明之处标记 TODO。 3. 输出文件统一放到 workspace/data_analysis/ 目录。 tools: - read_file - write_file - run_python - list_dir系统提示词是整个配置的灵魂。我试过两种极端写法一种写得太虚比如“你是一个严谨的程序员”角色根本不知道输出格式是什么另一种写得太死把每一步都规定死角色失去了拆解任务的空间。正确做法是给出职责边界、输出要求、以及遇到不确定情况时的默认行为。比如审查员的提示词里一定要写“未经复核的结论不得标记为通过”否则它会默认相信编码员的一切输出审查环节形同虚设。调研员的提示词里则要写明“所有数据结论必须附来源标识”这能有效减少后期核对成本。3.3 工具挂载与权限边界让 Agent 干活而不是瞎说没有工具的 Agent 只是聊天机器人挂了工具之后它才是“团队员工”。Openclaw 的角色可以声明自己要调用哪些工具比如读取文件、写文件、执行 Python、搜索网页。我的经验是工具权限的粒度一定要收敛到“角色职责的最小集合”编码员可以执行 Python审查员只能读文件调研员可以搜索但不能写工作目录。有一次我把工具权限全部放开编码员为了“彻底清理临时文件”直接在 workspace 目录里执行了一条高风险的删除命令差点把之前所有角色的记忆目录全清掉。虽然 Openclaw 在执行危险操作前会弹确认但那一次让我出了一身冷汗。从那之后我每个角色的工具列表都手动维护新增工具必须过一遍权限评审。记住Agent 没有安全意识你的工具权限就是它的安全边界。3.4 流程编排把任务拆成流水线角色定义好之后就要考虑它们怎么配合。Openclaw 里最常用的编排方式是把任务定义成 pipeline即一个带顺序的任务流。下面是我比较喜欢的一种格式pipeline: - stage: research agent: researcher task: 输出《XX主题》的调研方案包含数据来源和实施建议 - stage: implement agent: coder task: 根据调研方案产出可运行的实现脚本和说明文档 - stage: review agent: reviewer task: 对上一阶段产出进行全面审查输出问题清单和修改建议这里有个关键认知pipeline 和“把任务描述拼在一次请求里发给一个模型”完全是两回事。每个 stage 是独立的模型调用有独立的上下文前一个 stage 的产出会作为后一个 stage 的输入。这意味着我可以随时在任意阶段插入人工检查比如调研员给出的方案我不满意我直接改掉再往下走而不是重新生成整个链条。进阶一点你还可以让 pipeline 内部具备“审查不通过就自动打回”的循环。比如审查员输出问题清单后编码员自动根据问题清单进行修改修改完再复检。这个闭环看起来简单实际运行中能极大降低最终成果的粗糙程度。4. 实战一个三人 AI 团队跑模拟项目 X4.1 需求背景与任务描述理论讲再多不如实跑一遍。我给自己安排了一个完全虚构的模拟项目 X假设运营同学丢来一份用户行为明细数据要求做一份季度分析产出包括一个可复用的数据清洗与分析脚本以及一份结论型报告提纲。这个任务贴近日常、不涉及敏感内容也能充分压榨三个角色的配合能力。我是这样把任务描述给团队的“请根据 workspace/user_behavior.csv 的数据完成整条分析链路。调研员先明确字段含义和分析指标编码员基于调研结论编写清洗和分析脚本执行后把结果汇总成报告提纲审查员最后检查脚本和报告是否有逻辑漏洞。”任务描述最重要的不是文采而是把交付物、边界条件和验收标准说清楚。4.2 链路执行过程与卡点整个流程走下来大概花了一个多小时期间我记录了各阶段的表现和问题阶段执行者耗时Token 消耗约实际产出需求解析 数据字段确认调研员12 分钟4.8 万字段说明、分析指标清单清洗脚本编写编码员18 分钟6.2 万第一版 Python 脚本脚本执行与结果校验编码员8 分钟2.1 万清洗后数据集、基础统计结果报告提纲撰写编码员15 分钟5.5 万报告提纲初稿全面审查审查员14 分钟5.0 万问题清单 9 条修订再提交编码员16 分钟6.8 万修改版脚本 报告总成本如果折算成 API 费用大概只相当于我手动找资料、写脚本、对结果时间成本的五分之一。但过程不是一帆风顺的三个卡点很典型。第一个卡点是编码员在数据清洗环节出现幻觉有一列明显是字符串格式的时间戳它却直接把列转成了数值差点把后续分析带偏。这个问题的根源是编码员没有先做数据探查就直接写清洗逻辑。第二个卡点是审查员过于“客气”第一轮审查只列出了“建议增加注释”这类无关痛痒的条目完全没有挑出真正的逻辑问题。我后来重写了审查员的系统提示词明确要求它必须对照“指标口径”和“数据字段定义”逐项核对。第三个卡点更有意思——调研员和第二轮修订的编码员陷入了“反复改同一句话”的循环其实就是两个模型在上下文窗口边缘互相纠缠最后我把该阶段上下文手动清空、让编码员带着审查意见重新生成才跳出死循环。4.3 产出验收哪些能直接用哪些必须人来兜底最终这个团队交出来三样东西可执行的清洗分析脚本、清洗后的数据文件、六个章节的报告提纲。脚本质量超出我预期至少能直接跑通且输出结构和注释规范报告提纲也能作为内部讨论的初稿。但我要泼一盆冷水这些都只是“AI 团队初稿”不是“终稿”。验收时我先人工过了一遍脚本的数据处理逻辑盯住代理最容易犯的“字段类型误判”和“聚合口径不一致”两个问题报告提纲我重新核对了几个关键结论是否和数据一致确认没有引用伪造指标。我给自己总结了一条验收清单分享出来第一所有数据结论必须能追溯到原始字段第二脚本必须在全新环境中重新跑一遍不能只在团队的 workspace 里能跑第三文件路径和模型输出里的数字要抽样人工验证。人机协作的真相就是——AI 负责把 80 分的活干到 70 分人类负责把那 30 分补到 95 分。5. 再说一次什么样的人真的不需要 Openclaw5.1 一次性问题用聊天就够重复流程才值得搭团队如果你只是偶尔问一个“帮我想个取名思路”或“这段文案帮我换个语气”那 Openclaw 对你确实没有价值批斗它的人可能说的就是这种场景。但如果你手头有周期性发生的工作比如每周出一份数据报告、每月汇总几个渠道的信息、不停重复“查资料→写初稿→改格式”的流程那 Openclaw 就是给你省时间的主力。判断标准很简单你重复做同一类任务超过三次就值得把它做成一个团队流程。我第一次跑这个模拟项目花了一个多小时调试第二次跑同类任务只改了任务描述字段和文件路径半小时内直接出结果。第三次我已经把整套流程沉淀成了模板团队成员只需要做验收和少量修改。这就是自动化流程和一次性调用的区别。5.2 从单 Agent 到多 Agent 的渐进路线最后给零基础的读者一条可复制的路径避免你跟我一样交学费。先用一到两周只跑单 Agent把你的工具链摸熟掌握读写文件、跑脚本等基础操作然后把重复性的单 Agent 任务改造成带固定提示词的独立角色配置当你发现一个角色既要查找资料又要写文档又要核对结果一定会出现上下文混乱或产出粗糙的情况这时候才是引入多角色的正确时机。按照这条路线我建议的预期投入是一个晚上完成环境搭建、一个周末跑通第一个真正的团队任务、两周内完成角色的细致调优。别指望第一天就搭出完美团队我前几次调整提示词占用的时间远多于跑任务本身。但是那些时间不是白花的每一次调优都是在给你的“团队”积累经验等它稳定下来你就能真正感受到什么叫本地养了一个干活团队。最后再分享一个小技巧把每个任务结束后的角色记忆目录单独备份一份。这样即使群聊上下文被改坏了你也可以随时从某个时间点恢复状态不用从头再来。这就像是给你的 AI 团队定期拍快照用的时候才知道有多重要。

相关新闻

AI辅助自考论文写作:选对平台,选题文献降重全攻略

AI辅助自考论文写作:选对平台,选题文献降重全攻略

这几个月,我在某高校的继续教育学院帮学生做论文辅导,接触了不少自考本科段的学生。我发现一个挺普遍的现象:很多人一听到"毕业论文"三个字,第一反应就是发怵,觉得自己没上过全日制的课,不会查文…

2026/10/11 2:56:18 阅读更多 →
OpenClaw接入QQ技术实践:从官方方案到深度定制

OpenClaw接入QQ技术实践:从官方方案到深度定制

/* 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 2:55:17 阅读更多 →
CrewAI智能体开发:自定义 LLM 实现——把 BaseLLM 子类接到 TaoToken 统一 Key 通道

CrewAI智能体开发:自定义 LLM 实现——把 BaseLLM 子类接到 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 2:55:17 阅读更多 →

最新新闻

如何快速把代码修改一键委托给Claude Code等8个AI编程代理:px0完整指南

如何快速把代码修改一键委托给Claude Code等8个AI编程代理:px0完整指南

【免费下载链接】px0 px0 is an IDE built for reviewing AI-generated code, optimized for speed. It turns your browser into a zero-latency console with native Git and GitHub integrations, instant search across massive codebases, and seamless handoff to local …

2026/10/11 3:54:52 阅读更多 →
Redis Lua+Stream实现高并发秒杀系统:从库存扣减到异步下单全解析

Redis Lua+Stream实现高并发秒杀系统:从库存扣减到异步下单全解析

做秒杀系统这几年,我一直有个执念:能不能在不引入重型中间件的前提下,把高并发场景下的库存扣减、异步下单和失败补偿全部串起来。直到我把 Redis 的 Lua 脚本和 Stream 消息队列组合在一起,完整跑通了这套优惠券秒杀链路&#xf…

2026/10/11 3:54:52 阅读更多 →
EAAI投稿必看:标题页模板填写全攻略与避坑指南

EAAI投稿必看:标题页模板填写全攻略与避坑指南

1. 先从模板说起:EAAI的title-page-template到底是什么第一次给国际期刊投稿的人,十有八九会被一堆文件搞懵。EAAI(我这里泛指工程应用类的人工智能国际期刊)投稿系统里除了正文手稿,通常还会要求一份单独的标题页文件…

2026/10/11 3:54:52 阅读更多 →
NetFlowAnalyzer 9.0 从NetFlow协议到流量排障实战指南

NetFlowAnalyzer 9.0 从NetFlow协议到流量排障实战指南

简介:ManageEngine NetFlowAnalyzer 9.0 是一款面向企业IT管理员与网络运维人员的专业网络流量分析工具,适用于带宽监控、流量趋势分析、异常行为检测及故障排查等场景。压缩包共3个文件,包含exe安装程序、keygen生成器以及AdventNetLicense.…

2026/10/11 3:54:52 阅读更多 →
MCP企业级落地三大坑:身份、预算与错误处理实战复盘

MCP企业级落地三大坑:身份、预算与错误处理实战复盘

1. 从一次线上告警说起:MCP落地远没有Demo那么简单凌晨两点,监控群里弹出一条告警:某个内部工具调用链路大面积超时,错误率在十分钟内从0.3%飙到27%。我爬起来翻日志,发现根因不是模型本身,也不是网络抖动&…

2026/10/11 3:54:52 阅读更多 →
多域联合杂波抑制:鲁棒主成分分析实战指南

多域联合杂波抑制:鲁棒主成分分析实战指南

/* 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 3:53:51 阅读更多 →

日新闻

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

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

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

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

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

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

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

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

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

2026/10/11 0:00:27 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/10/11 0:00:27 阅读更多 →

月新闻

我发现了一个新思路:用 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 阅读更多 →