n8n智能体开发必知:NoOp无操作节点与文件读写节点实战
做n8n智能体开发时大家的目光通常都集中在大模型节点、知识库检索、HTTP请求这几个“明星节点”上很少有人愿意花时间研究节点面板角落里那两个基础得不能再基础的节点无操作节点和从磁盘读写文件节点。我在好几个企业级n8n项目里发现真正让工作流从“能跑”变成“扛造”的恰恰是这两个不起眼的节点。无操作节点能让分支拓扑保持完整从磁盘读写文件节点则解决了Agent运行时的数据持久化问题。这篇文章不绕弯子直接把它们的设计思路、配置方法、应用场景和踩坑记录全部讲透希望帮你少走两个月的弯路。1. 为什么这两个节点是智能体开发的“隐形地基”1.1 无操作节点流程拓扑的稳定器无操作节点在n8n里通常显示为No Operation、NoOp英文文档里就叫“do nothing”。它的行为非常简单不调用任何外部服务不修改数据输入是什么输出就是什么。很多第一次看到它的人会觉得这是个多余节点但在复杂智能体工作流里它承担着可视化编排中很难绕开的职责——让分支闭合。智能体工作流和普通线性自动化有个明显区别它存在大量条件分支、循环和工具调用汇合。比如一个Agent根据用户意图决定调用搜索工具还是查数据库工具无论走哪条路最终都要回到同一个“整理回答”节点。如果不加无操作节点直接从两个工具节点分别连到整理节点也可以但一旦分支数量超过三个连线会变得乱成一团后续维护时想统一加一个“日志记录”节点得改好几条线。无操作节点就是用来做“汇合点”的所有分支先连到它再由它统一连向后续节点。拓扑清晰后续改动也只需要动一条线。另一个常见用途是调试。我在调试Agent的某个工具调用环节时经常需要临时把大模型节点摘掉看看前面环节的数据到底长什么样。直接删除节点会破坏连线重新拖回来又费时间。这时候在目标节点后面接一个无操作节点把前面节点的连线断开让数据直接经无操作节点跳到后面就能用“test workflow”的方式观察数据又不会破坏整体结构。等调试完成把连接恢复即可。1.2 从磁盘读写文件节点本地数据进出的桥梁从磁盘读写文件节点Read/Write File from Disk是n8n里操作本地文件系统的基础节点。它有两种模式读取模式把磁盘上的文件内容读入工作流写入模式把工作流里的数据写到磁盘。读的时候支持文本文件、JSON、CSV、二进制文件等写的时候可以覆盖或追加。在智能体场景里这个节点的价值体现在三个地方。第一是持久化Agent执行过程中的中间结果、多轮对话记录、调试日志都可以保存成文件供后续工作流或人工复盘使用。第二是知识注入很多本地知识库是散落的Markdown、TXT、JSON文件在跑Agent之前先用读文件节点把它们读进来再拼进System Prompt比硬编码在节点里灵活得多。第三是交接给非技术同事大模型生成的报告、分析结果直接写成文件对方用任何编辑器都能打开不需要登录n8n后台。当然它也有局限。这个节点读写的是n8n运行所在机器或容器的本地磁盘不是对象存储也不是分布式文件系统。如果部署了多个n8n实例做负载均衡写在一台机器上的文件另一台机器大概率读不到。所以它适合单机部署、轻量场景更复杂的环境建议用S3等对象存储节点或者数据库。理解这个边界才能选对方案。1.3 两者配合解决的实际问题无操作节点和文件读写节点看起来各管各的但在智能体项目里经常成对出现。最典型的是多个工具分支执行完后通过无操作节点汇合再统一接到文件写入节点把这一轮Agent的完整决策过程落盘。这样既保证了流程结构清晰又实现了数据可追溯。我做过一个客服工单分类Agent用户消息进来后Agent先做意图识别然后分别调用知识库查询、订单状态查询、工单创建三个工具。之前没有设计汇合节点结果发现三个分支的数据结构不一样后续写日志的逻辑被迫写了三份。后来我在三个分支后面加了一个无操作节点统一收集结果再交给一个写文件节点保存JSON日志。整个流程瞬间清爽了后续加字段也只需要改一个地方。这个例子说明在动手搭工作流之前先想清楚“分支怎么汇合”“数据在哪里落盘”比盲目堆模型节点重要得多。无操作节点负责把拓扑理顺文件读写节点负责把数据落地两者是智能体开发里真正的“地基”。2. 无操作节点实操三种场景与配置细节2.1 节点配置与运行机制无操作节点的配置几乎没有门槛。在n8n节点面板里搜索“No Operation”或“NoOp”拖入画布后不需要填写任何参数。它不调用API不读写数据库不处理数据所以不存在鉴权、超时、重试的问题。运行机制也很直白上游节点执行完成后NoOp节点立即执行把上游的输出原样传递。这里有一个容易忽略的关键点NoOp透传的内容包括JSON数据和二进制数据。如果上游是HTTP Response节点返回了图片文件中间经过一个NoOp做分支汇合NoOp不会做任何序列化或转换图片二进制数据不会被破坏。这一点在Agent处理多模态输入时尤其重要有的节点会在透传时悄悄把数据类型改掉NoOp则完全不会多管闲事。2.2 场景一多分支汇合点多分支汇合是NoOp最核心的使用场景。以意图识别为例Agent先判断用户是想查天气还是想订机票然后分到两个不同的工具节点。两个工具返回结果后如果直接各自连到同一个后续节点后续节点会收到来自不同路径的多条数据项这本身没问题但当你需要调整后续逻辑时会发现自己要在好几条连线之间反复横跳。正确的做法是引入NoOp作为汇合点。把两个工具节点的输出都连到同一个NoOpNoOp再连到后续节点。这样从视觉上所有分支都汇聚到一个点再进入后续处理。需要注意的是NoOp并不做数据合并它只是保证流程连通。多个分支的数据项会依次触发NoOp执行NoOp的输出仍然是多条item不会自动把不同字段合并成一个大JSON对象。如果后续节点需要聚合所有分支的结果比如把两个工具的输出拼成一个完整报告应该在NoOp后面再接Merge节点或Code节点处理这一点千万别搞混。2.3 场景二调试隔离与临时跳过我在调试智能体工作流时经常碰到这种情况某个步骤处理逻辑没问题但上游数据格式变了导致这个步骤报错。常规操作是停掉工作流、改节点配置、重新执行浪费时间。后来我养成了一个习惯在关键节点前后预留NoOp需要临时跳过某个节点时只要把它的上游连线断开接到旁边的NoOp上数据就会绕过目标节点继续往下走。具体操作假设原始链路是A → B → C现在想临时跳过B。保持B和C的连线不动在B旁边拖入一个NoOp把A的输出连到NoOpNoOp的输出连到C然后断开A到B的连线即可。此时B仍然在画布上只是退出了主链路随时可以恢复。对团队协作者来说看到这种结构也能立刻明白这段逻辑是被有意旁路的比直接删除节点友好得多。2.4 场景三IF条件分支的“空走”占位在n8n里IF节点有两个输出true和false。有时我们希望某种条件下不做任何处理直接进入下一环节。比如“如果是管理员直接放行否则走人工审批”。放行分支如果什么都不连流程就会在那里中断后续节点不会执行。这时候可以在放行分支上接一个NoOp再让NoOp连到下游节点整个流程才能继续。类似用法也出现在Switch节点、异常分支里。拿“没有匹配到任何条件”这种情况来说与其让它静默中断不如显式接一个NoOp让工作流在执行记录里留下一条清晰的路径。后期看执行日志时你能一眼看出哪些消息是走了空分支而不是对着一个突然断掉的链路猜原因。NoOp在这里不只是占位更是一种可读性设计。2.5 无操作节点的注意事项第一不要指望NoOp做数据清洗或字段映射它连类型转换都不做。第二多个分支连入NoOp时下游节点会分别处理每个分支的数据项如果后续是写数据库或发消息这类非幂等操作要注意是否会造成重复执行。第三NoOp节点不清理数据敏感信息仍然会在工作流的item里流转权限控制不能依赖它。第四团队协作时建议给NoOp命名加上场景前缀比如“汇合-NoOp”“调试-NoOp”否则一堆节点都叫NoOp后期维护会很痛苦。3. 从磁盘读写文件节点实操从配置到落盘3.1 节点基础与模式选择在n8n节点面板中读文件和写文件的能力通常集中在一个“Read/Write File from Disk”节点里通过operation参数切换新版也可能拆成独立的读节点和写节点但核心字段大同小异。读模式下你需要设置文件路径选择编码决定是否用二进制方式读取。文本文件读进来后节点会把内容放到输出字段里供下游节点引用二进制文件则走binary data通道。这里要注意区分“Read/Write File from Disk”和“Read Binary File”“Write Binary File”这几个节点。前者更偏向按纯文本或原始字节处理适合读配置、日志、Markdown文档后者会带上mimeType、文件扩展名等元信息适合处理图片、PDF、Excel这类附件。在智能体开发中如果只是把知识文件读进来拼Prompt用前者就够了如果要让Agent生成或读取带文件类型的附件建议用Binary系列节点。3.2 读文件的路径与编码细节路径问题是文件读写节点最大的坑。如果你用npm方式本地运行n8n相对路径是相对于启动n8n的那个目录如果你用Docker部署相对路径则相对于容器内的工作目录。所以最稳妥的做法是使用绝对路径并且在配置里用环境变量拼接。比如在Docker Compose里挂载了宿主机./data到容器/data那么n8n里的路径就要写成/data/knowledge/faq.md。编码上读文件节点默认按UTF-8处理。如果文件是GBK或ANSI编码中文很容易读成乱码。我的习惯是要求所有知识库文件在入库前统一转成UTF-8宁可多做一步转换也不要让Agent读到一堆乱码再浪费token去猜。如果是超大文件比如单个知识库几十MB要注意节点会一次性把文件加载进内存轻则卡顿重则OOM建议先切分或换向量检索。3.3 写文件的追加与覆盖策略写文件时最常见的坑就是覆盖。Agent每轮对话后都把答案写到同一个日志文件默认的覆盖模式会丢掉前一轮内容。使用之前先想清楚每次执行是希望生成独立文件还是追加到同一个文件。如果需要保留历史记录最简单的方式是在文件名里加时间戳或执行ID例如/data/output/report_{{ $now.format(yyyy-MM-dd_HHmmss) }}.md这样并发执行也不会互相覆盖。如果确实需要追加到同一个文件选择append模式。追加写文件时还要注意字段类型。节点写入内容通常需要指定一个字段如果该字段是对象而不是字符串直接写入可能得到[object Object]。我一般会在写文件前加一个Code节点先做JSON.stringify或者用表达式{{ JSON.stringify($json.output) }}把对象序列化后再交给写文件节点。3.4 与智能体记忆持久化联动智能体开发中长时间记忆是个常见需求。n8n本身有静态数据可以跨执行保存但静态数据有大小限制而且和工作流版本绑定。用文件读写节点可以做一个轻量级的多轮对话记忆方案每个会话一个文件以用户ID或会话ID命名。具体流程是第一步用读文件节点读取/data/sessions/{{ $json.userId }}.json如果文件不存在先用Code节点给一个默认空结构。第二步把历史记录拼入System Prompt。第三步调用大模型生成回答。第四步把新的对话内容追加回同一个文件。这个方案在单机部署下非常实用不用引入数据库而且文件可以直接用编辑器调试。要注意的是并发问题如果同一用户同时发起多个请求多个写入操作可能相互覆盖。解决办法是每个会话文件内部只保留当天记录或者用工作流执行ID做文件名避免多写冲突。3.5 实操示例构建一个“本地文件问答Agent”为了让你看得更清楚我搭一个最小可运行的示例用Webhook接收用户问题读取本地FAQ文件拼进大模型提示词把回答写入日志。第一步加一个Webhook触发器接收用户输入的消息。第二步拖入“Read/Write File from Disk”节点配置操作模式为读。第三步拖入大模型节点在System Prompt里引用读文件节点的输出比如“你是一个客服助手请基于以下资料回答{{ $json.data }}”。第四步拖入大模型输出节点选择输出字段作为回答。第五步再拖一个“Read/Write File from Disk”节点配置为写模式文件路径设置为/data/logs/answers_{{ $now.format(yyyy-MM-dd) }}.log写入内容字段选择大模型的输出写入模式选追加。最后把整个链路串起来。实际配置参数可以参考下面这个表格节点参数项建议值Read/Write File from Disk读operationRead文件路径/data/knowledge/faq.md编码UTF-8Read/Write File from Disk写operationWrite文件路径/data/logs/answers_{{ $now.format(yyyy-MM-dd) }}.log写入内容字段output写入模式Append这样每次有人通过Webhook提问Agent的回答都会追加到当天的日志文件里。想复盘的时候直接打开文件按时间排序非常清晰。后续如果想加审计功能再在NoOp汇合点后接一个写文件节点把意图识别、工具调用、最终回答全部落盘。整个方案没有引入任何额外依赖维护成本很低。3.6 权限、部署与安全建议权限问题是容器化部署里最容易踩的。n8n容器内的运行用户通常不是root如果挂载的宿主机目录没有给足权限写入文件时会直接报EACCES: permission denied。我的做法是在Docker Compose里把宿主机目录挂载到/data并确保目录权限对当前用户可写。测试时可以用chmod -R 777生产环境建议用命名卷或单独的用户权限控制。安全方面要特别注意路径穿越。如果工作流由外部输入触发而外部输入里有文件名或路径字段千万不要直接拼到文件读写节点的路径参数里。攻击者可能通过../穿越到其他目录读取到不该读的文件。正确的做法是使用白名单映射或者用表达式校验路径必须位于指定目录内。文件读写节点权限很大用的时候多留个心眼比事后补救省事得多。4. 常见问题与排查实录4.1 文件明明存在却报“File not found”这个错误我遇到过不下十次绝大多数不是文件真的不存在而是路径不对。常见的三种情况相对路径因为当前工作目录变化而失效Docker容器内路径和宿主机路径不一致文件名里的大小写、扩展名写错了。排查时不要瞎猜直接在n8n里加一个Code节点用Node.js的fs模块看一眼目录内容。下面这段代码可以快速列出指定目录下的文件const fs require(fs); const path /data/knowledge; return [{ dirExists: fs.existsSync(path), list: fs.existsSync(path) ? fs.readdirSync(path) : [] }];把这段代码放到文件读写节点前面运行输出里会直接告诉你目录是否存在以及里面到底有哪些文件。拿输出和节点里配置的路径一对比问题往往就暴露了。4.2 写入文件后中文乱码或者内容变成[object Object]乱码基本是编码不对优先检查读文件和写文件的编码设置是否都是UTF-8。如果源文件本身是GBKn8n又不支持自动转码我会先用VSCode或命令行工具把文件统一转成UTF-8宁可在入库前多花五分钟也不要让Agent读乱码。内容变成[object Object]则是把对象当字符串写了。解决方案是在写文件节点前加一个Code节点做序列化或者用表达式包裹。比如写入内容字段不是直接选output而是填{{ JSON.stringify($json.output) }}写出来就是标准的JSON字符串。4.3 使用NoOp汇合后后续节点重复执行或字段缺失这个问题本质上是没分清“汇合”和“合并”。NoOp汇合后下游节点会依次收到多个分支的数据项后续节点会对每个数据项执行一次。如果后续节点是写文件就可能发生重复写入如果某个分支缺少另一个分支才有的字段后续节点取字段时就会报undefined。解决办法是在NoOp之后再接一个Merge节点或Code节点先把数据聚合到一个item里再交给下游节点。如果确实需要保留每个分支的独立数据那就要在后续节点里用{{ $json.item }}这类表达式判断字段是否存在避免直接取不存在的字段。4.4 Docker容器中写入权限被拒绝权限报错通常是EACCES。第一种原因是宿主机目录权限不够容器内用户无法写入。第二种原因是挂载路径错了容器内实际可写的目录不是你想的那个。先在Code节点里运行process.getuid process.getuid()看一下当前用户ID再检查宿主机目录权限。临时的解决办法是chmod -R 777宿主机目录或者用命名卷。生产环境更建议指定容器用户或者在官方镜像基础上做一层镜像提前创建好数据和日志目录并授权。注意让容器以root运行虽然能绕过大部分权限问题但会降低安全隔离能力不建议作为默认选项。4.5 常见报错速查表现象可能原因解决方法文件不存在路径不对、容器内外不一致用Code节点列目录确认实际路径中文乱码源文件不是UTF-8统一转码为UTF-8写入为[object Object]字段是对象用JSON.stringify序列化权限不足挂载目录无写权限chmod或命名卷NoOp后字段缺失不同分支数据结构不一致用Code节点做字段默认值NoOp后重复执行多个item触发多次用Merge或Code节点聚合大文件读入内存卡顿文件过大切分文件或改用向量库在实际项目里我习惯把每个节点的输出字段名固定下来谁读哪个字段、谁写哪个字段提前在工作流文档里列清楚。很多报错其实不是节点的问题而是字段名对不上或者数据结构有了偏差。文件读写节点和无操作节点虽然简单但只要用得不规范照样能让线上工作流翻车。最后分享一个我个人项目里的习惯设计智能体工作流时先画出拓扑图标清楚哪里需要汇合、哪里需要落盘再去n8n里拖节点。我见过太多人一开始图省事绕开NoOp和文件读写节点结果后面线上数据对不上只能加班翻日志。无操作节点和从磁盘读写文件节点看似基础但把它们当作第一公民来设计很多问题在源头就消失了。希望这篇内容能帮你把这两个“隐形地基”真正用起来。

相关新闻

MySQL的介绍和基本指令

MySQL的介绍和基本指令

MySQL的介绍和基本指令 MySQL的基本介绍 什么是mysql MySQL是一个关系型数据库管理系统,MySQL 是最流行的关系型数据库管理系统之一。 MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。由于其体积小、速度快、总体拥有成本低,尤其是开放…

2026/10/10 5:40:38 阅读更多 →
ensp防火墙的SSLVPN配置

ensp防火墙的SSLVPN配置

网络拓扑图网络拓扑介绍分为防火墙2个安全区域,分别是内网trust区域,外网untrust区域1.防火墙与云朵连接增加一个UDP的端口找到你对应的网卡,连接VMware虚拟机之后连接云朵与防火墙接口即可2.配置防火墙防火墙接口和IP地址配置interface Giga…

2026/10/10 5:40:38 阅读更多 →
App Store审核4.3a被拒自救:uniapp跨端应用改IPA加垃圾数据原理与实操

App Store审核4.3a被拒自救:uniapp跨端应用改IPA加垃圾数据原理与实操

这一天还是来了。从事或接触过 iOS 开发的朋友多半能会心一笑:App Store 审核里的 4.3a,也就是术语里的“垃圾应用”或“重复应用”判定,大概是这些年让不少团队最头大、最说不出道理的一条规则。尤其是用 uniapp 这类跨端框架打包的 App&…

2026/10/10 5:40:38 阅读更多 →

最新新闻

热电联产机组联合优化调度:Matlab+YALMIP建模风电消纳与储热电锅炉算例

热电联产机组联合优化调度:Matlab+YALMIP建模风电消纳与储热电锅炉算例

1. 冬季供暖季的弃风困局:热电联产机组到底卡在哪每年供暖季一过,风电场的同事就开始盯着调度曲线叹气:白天风光还好,一到后半夜风速上来了,风电场却得压出力,甚至有整场停机的时候。而另一边,热…

2026/10/10 16:01:52 阅读更多 →
用AI高效阅读鸿蒙源码:仓库定位、调用链与实战技巧

用AI高效阅读鸿蒙源码:仓库定位、调用链与实战技巧

简介:面向鸿蒙OS平台的“阅读”应用鸿蒙版仓库源码,特别适合鸿蒙应用开发者、对小说阅读器实现感兴趣的工程师,以及希望复用书源管理方案的技术人员。工程基于ArkTS编写主要页面与业务逻辑,并搭配svg、png等图标与图片资源&#x…

2026/10/10 16:01:52 阅读更多 →
Java IO流深度解析:字节流字符流、缓冲流与序列化实战指南

Java IO流深度解析:字节流字符流、缓冲流与序列化实战指南

1. 别被IO流的类图吓到:先搞懂设计骨架做Java开发几年后回头看,IO流其实是整个Java生态里设计最经典、也最劝退新手的模块之一。所谓“Java进阶--IO流”,不是让你把几十个类的名字背下来,而是先看清这套体系背后的两个核心设计思想…

2026/10/10 16:01:52 阅读更多 →
Vector v0.51.0 版本深度解析:OTLP 编解码、file source 去遗留化与遥测可靠性加固

Vector v0.51.0 版本深度解析:OTLP 编解码、file source 去遗留化与遥测可靠性加固

可观测性数据工程数据集成日志分析 【免费下载链接】vector A high-performance observability data pipeline. 项目地址: https://gitcode.com/GitHub_Trending/vect/vector 点击查看 免费下载 Vector v0.51.0(发布于 2025-11-04)是面向可观…

2026/10/10 16:01:52 阅读更多 →
Spring AI 2.x 深度技术解析:从架构重构到企业级落地,TaoToken 统一 Key 接入实践

Spring AI 2.x 深度技术解析:从架构重构到企业级落地,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/10 16:01:52 阅读更多 →
探索AI工具——我的Cursor初体验:从Base URL改到TaoToken

探索AI工具——我的Cursor初体验:从Base URL改到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/10 16:00:51 阅读更多 →

日新闻

卫星轨道分类全解析:从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/10 11:14:25 阅读更多 →
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/10 11:14:58 阅读更多 →

月新闻

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