RPA与AI Agent如何融合?AstronRPA开源平台架构与实操解析
做自动化这行久了你会发现一个尴尬的现象RPA 工具越来越多真正能把流程跑稳的却没几个。尤其这两年 AI Agent 概念满天飞但大模型直接操作浏览器和桌面时稳定性还是让人不太放心。最近看到科大讯飞开源了一个叫 AstronRPA 的项目定位是“企业级 RPA AI Agent 自动化平台”既保留传统 RPA 的流程编排能力又想把大模型的判断力接进去正好切中我一直在琢磨的方向。这篇就把我拆解这个项目的过程整理一下包括它解决了什么问题、核心模块怎么设计、我实际把它跑起来做了哪些事以及踩过的坑。适合正在选型的团队、想用开源方案替代商业 RPA 的技术负责人也想把 AI Agent 落地到重复业务里的开发者。1. AstronRPA 到底解决了什么问题1.1 传统 RPA 的最大痛点是“眼睛和脑子不够用”传统 RPA 我最熟悉的应用场景就是网页数据抓取、Excel 整理、系统间数据搬运。这类工具的逻辑非常明确打开页面、定位元素、读取内容、写入表格每一步都是预设好的。问题是现实中的业务流程不会一直按剧本走页面改版、弹窗出现、字段位置变化、登录态过期任何一个意外都能让流程中断。我见过太多团队买了商业 RPA 授权结果大部分流程跑不了两个月就废了。原因不是工具不行而是维护成本太高。页面选择器一变就得找工程师重新定位元素业务规则稍微复杂一点流程里就得写一堆条件判断最后比直接用代码写还痛苦。传统 RPA 本质上是个“四肢发达”的机器人能干活但缺“眼睛”和“脑子”遇到没见过的情况就只能死给你看。1.2 AI Agent 能思考但“动手能力”不够稳这两年 AI Agent 很火思路是让大模型理解任务、自己拆解步骤、调用工具完成目标。听起来很美好但我实际用下来发现纯 Agent 方案直接操作网页或桌面应用的时候成功率远没有宣传的那么高。模型会把步骤想得很完整但真正点击、输入、拖拽的时候定位不准、等待时间不对、页面渲染没完成都会导致执行翻车。这里有个核心矛盾大模型的强项是语义理解、逻辑推理和异常判断弱项是像素级稳定操作传统 RPA 的强项是自动化执行、元素定位、流程复用弱项是遇到规则之外的情况不会变通。把两者拆开用哪边都不算顺手但把它们组合起来正好互补。1.3 AstronRPA 的定位自动化底座 Agent 大脑AstronRPA 的思路我理解下来就是一套“多面手”架构底层用 RPA 引擎保证执行稳定上层用可插拔的 AI Agent 能力处理需要理解、分类、抽取、决策的环节。说直白点就是让 RPA 干活让大模型决定怎么干。这类项目市面上也有一些但 AstronRPA 有一个特殊身份科大讯飞开源。它意味着背后有做 AI 和语音起家的团队在持续投入而且走的是企业级路线不是玩具级 Demo。开源还有一个好处你能看到执行器、调度器、组件的源码遇到问题可以自己改也能做私有化部署数据不出内网。对很多企业来说这一点比功能多少更重要。2. 核心能力拆解从控制台到组件库再到 AI 接入2.1 整体架构是怎么分层设计的我先打开了项目仓库从目录结构和文档里梳理它的整体分层。AstronRPA 并不是一个单体的“机器人软件”而是拆成了几个独立模块我按自己的理解整理如下模块作用类比控制台Web流程编排、任务管理、权限配置、日志查看工厂的中控室调度中心定时触发、队列分发、任务重试工厂的调度员执行器Worker/Robot实际运行流程节点的“机器人”生产线的工人组件库Excel、浏览器、数据库、OCR、大模型等能力封装工人手里的工具套装AI 服务对接外部大模型或本地模型提供智能决策能力工厂里的技术顾问控制台和执行器分开设计意味着你可以一个控制台管理多台执行器。比如财务部门跑一个流程采购部门跑另一个流程即使物理机器不在同一个机房只要执行器能连上控制台就能统一调度。这个架构在企业里非常关键因为业务流程往往分散在不同部门、不同网络环境里。服务端和客户端通信这块AstronRPA 走的是任务下发-结果上报的模式。执行器不会一直干等着而是定期向控制台拉取任务执行完再把日志、截图、输出数据回传。这个设计让断网重连变得很自然流程跑到一半网络闪断执行器重新连上后还能查询任务状态而不是直接丢失。2.2 可视化编排和代码模式两条腿走路AstronRPA 的流程编排是可视化拖拽式的这一点和主流 RPA 产品类似。左侧是组件列表中间是画布右侧是参数配置区。你可以把“打开网页”“提取链接”“写入 Excel”这些节点拖到画布上连线串联成流程。对于非程序员来说这个学习成本比写脚本低得多。但如果你和我一样习惯写代码它也支持脚本节点可以直接在流程里插入 Python 或 JavaScript。这非常重要因为复杂业务流程不可能全靠预制组件完成。比如你要处理一段不规则文本组件里只有“字符串替换”可能不够但写一个 Python 脚本节点就能用正则、JSON、甚至调用任意第三方库来做动态处理。我建议的做法是主流程用可视化节点搭能直观看到每一步在干什么遇到需要复杂计算的环节再嵌入脚本节点。这样流程既好维护又不失灵活性。纯硬编码虽然灵活但业务同事根本看不懂纯可视化编排又容易被组件能力限制两条腿走路才是高效姿势。2.3 组件库不是只做网页操作而是“万物皆可连”我大致浏览了组件分类AstronRPA 覆盖得比较全浏览器类打开网页、点击元素、输入文本、提取数据、截图、处理多个标签页。办公类Excel 读写、Word 处理、邮件发送、PDF 解析。数据库类MySQL、PostgreSQL、SQL Server 等常用库的查询和写入。文件类文件复制、移动、压缩、解压、FTP 上传下载。系统类启动程序、按键模拟、剪贴板操作、窗口切换。AI 类大模型对话、文本分类、信息抽取、OCR 识别。组件丰富度决定了你能自动化多复杂的业务。比如说跨境电商多平台订单抓取这个典型场景如果没有“网页元素提取”和“Excel 写入”这两类组件整个流程根本搭不起来。AstronRPA 好的一点是它不是把每个场景单独写死成“订单抓取组件”而是提供底层原子能力你用这些原子能力去拼业务场景。2.4 企业级能力权限、调度、审计一样不少很多开源自动化工具只解决“能不能跑”但企业用起来最关心的其实是“谁来跑、什么时候跑、跑了之后有没有记录”。AstronRPA 的控制台里带了用户权限管理可以给不同人分配不同角色。财务流程只有财务负责人能改普通员工只能看自己负责的任务这个很实用。调度方面它支持定时触发。比如每天凌晨一点自动去电商后台抓前一天订单白天自动生成报表这些都能通过 cron 表达式配置。对于跨平台、跨系统的数据同步定时调度比人工点按钮要可靠太多而且每一条任务执行记录都留在系统里出了问题可以直接回溯。审计日志这点我要特别说一句。做企业项目尤其是涉及财务、客户数据的自动化流程没有日志等于裸奔。AstronRPA 会在流程运行的每个关键节点记录日志和截图执行失败时能定位到具体是哪个组件、哪一步出错这个体验对运维和二次开发来说非常友好。3. 上手实操从零部署到跑通第一个智能流程3.1 环境准备一台 Linux 服务器和 Docker 就够了我实际部署时用的是 Ubuntu 22.04 服务器4核8G 内存磁盘留了 40G。这个配置跑小型自动化流程足够了如果后面要同时挂多个执行器建议内存再往上加一点。官方仓库提供了 Docker Compose 方式部署依赖项基本都打包好了。部署前需要安装 Docker 和 docker-compose然后把项目克隆到服务器上进入目录后先看下.env.example。里面有几个关键配置项数据库连接信息、Redis 地址、控制台服务端口、执行器名称和密钥。如果是在内网部署直接用默认值也行但正式环境一定要改数据库密码和 JWT 密钥不然会有安全风险。启动命令很简单docker-compose up -d第一次启动会下载镜像耗时取决于网络环境。启动完成后需要确认几个容器是否都起来了docker-compose ps我建议等服务真正初始化完再登录控制台因为数据库迁移、初始化管理员账号都需要时间太早打开页面可能报错。看到healthy状态后再访问http://服务器IP:端口通常用默认 8080 或 8088。注意如果你服务器上已经装了 Nginx 或者有其他服务占用 80/443 端口docker-compose 里的映射端口需要提前改掉否则会启动冲突。3.2 登录控制台并注册执行器首次进入控制台要先初始化管理员账号一般是个admin开头的账号密码在初始化引导里设置。登录后第一件事不是急着拖流程而是把执行器注册进来。控制台里会生成一个连接令牌执行器启动时会拿这个令牌去和控制台建立通信相当于“工牌”。我在注册执行器时踩过一个坑执行器进程起在容器里容器网络要用 host 模式才能访问宿主机的局域网服务。如果你发现执行器一直显示离线先检查是不是容器网络配置问题。还有一个常见位置是防火墙8000-9000 之间的端口需要在安全组里放行。执行器注册成功后控制台的“执行器管理”页面会看到一条在线记录。到这一步环境就通了。接下来所有的流程编排都在控制台完成执行器负责真正运行流程。3.3 第一个实战 Demo五分钟抓取一个网页表格我搭建的第一个流程是“抓取指定网页的表格数据写入 Excel”。这个流程很适合练手它覆盖了打开网页、元素定位、数据提取、文件写入四个最常用的操作。新建流程后画布上依次添加节点“打开网页”节点目标 URL 填你要抓取的地址等待加载完成选择“页面完全加载”或“等待固定时间”。我一般选等待页面完全加载但如果目标页面有大量异步请求固定等待 3-5 秒更稳。“提取表格数据”节点这一步是重点。先要在页面定位到表格区域可以用 XPath 或 CSS 选择器。不会写选择器的话记得用浏览器开发者工具先审查元素复制一个稳定路径。特别注意选择器里带索引的路径很容易在页面局部变化时失效尽量用 id 或 class 这种相对稳定的属性。“写入 Excel”节点选择输出文件路径把提取到的二维数组写到第一个 Sheet。配置完成后先点“调试运行”不要直接上生产调度。调试模式下可以看到每一步的输入输出如果提取数据为空多半是选择器写错了。我看日志时发现AstronRPA 会把每次执行变量都记录下来这个功能对排查问题太重要了比盲猜节点参数高效得多。3.4 给流程接入 AI Agent实现“智能订单分类”网页抓取只是基础真正让我觉得 AstronRPA 有价值的地方是把大模型接进流程里。以我做的“电商订单自动分类催单”场景为例每天从多个电商平台后台抓取订单数据原来的做法是按固定规则判断哪些订单要优先处理。但各平台的订单备注格式五花八门规则根本写不完。我在流程里加了一个“大模型对话”节点把抓取到的订单文本拼成 Prompt让模型输出结构化 JSON比如{order_id: xxx, priority: high, reason: 客户备注加急}。然后再用脚本节点解析 JSON把优先级肯高的订单单独生成一张表。实测下来这种方式的准确率比纯正则判断高不少而且遇到新的备注格式模型也能理解。如果担心调用云端大模型的数据隐私问题可以部署本地开源模型。AstronRPA 的 AI 节点支持配置多种模型接口本质上就是一个 OpenAI 兼容的 API 调用你可以把请求转发到本地部署的模型服务上。这样既有了 AI 能力数据又不会出内网比较适合对数据安全敏感的业务。4. 常见问题与排查技巧实录4.1 部署和启动阶段的常见报错我整理了一份速查表基本覆盖了首次部署和日常使用中最容易踩的坑问题可能原因解决办法登录控制台一直转圈服务还在初始化或数据库连接失败查看容器日志docker-compose logs -f确认数据库正常执行器一直离线令牌错误或网络不通重新生成令牌检查执行器容器网络模式流程启动后卡住目标页面加载太慢在“打开网页”节点增加超时或改用固定等待元素定位不到页面框架或选择器失效使用开发者工具重新审查元素优先用 id 定位大模型节点报错超时模型响应太慢或网络不稳定加大超时时间或切换本地模型日志是排查问题的第一入口不要只看最终报错信息。AstronRPA 记录了每个节点的开始时间、结束时间、输入参数、输出结果完整跑一遍流程后把日志导出来按时间线对一遍基本能找到是哪一步出的问题。4.2 流程稳定性的三个小心得第一个心得是“不要过度依赖 AI”。AI Agent 适合做理解、分类、生成摘要这种非确定性任务但像点击按钮、输入密码这种操作还是用传统 RPA 组件去干稳定而且可预测。让大模型决定“点哪里”十次可能有八次点不准但如果让 RPA 负责点击、让大模型负责判断“点击之后该做什么”成功率就高很多。第二个心得是“重试机制不能少”。页面加载慢、网络抖动、Excel 文件被占用这些偶发问题单次执行都可能失败。我在流程外层套了一个“循环直到成功”的节点设置最大重试次数和间隔时间。注意不要无限重试否则遇到真正的配置错误任务会一直占用执行器资源。第三个心得是“执行器资源要隔离”。如果一台机器上同时跑多个流程尤其是有浏览器自动化任务内存很容易被撑爆。我的做法是给执行器分组网页抓取类任务放在一台服务器上Excel 处理类任务放在另一台或者给容器设置内存上限。这样某个流程异常崩溃时不会影响其他流程。4.3 大模型节点的参数调优建议大模型节点不是简单的“填一个 Prompt 完事”有几个参数直接影响效果。temperature我通常调到 0.1 到 0.3 之间自动化任务需要确定性输出温度太高会随机乱飘。max_tokens要根据输出长度预留足够空间比如让模型输出结构化 JSON至少要给到 1000 以上否则内容会被截断JSON 解析直接报错。还有个容易被忽略的点是 Prompt 模板设计。我建议把系统指令和用户数据分开系统指令里写清楚任务目标和输出格式用户数据放实际要处理的内容。例如“你是一个订单分类助手只输出 JSON字段包括 priority 和 reason。以下是订单信息{内容}”。这样模型能稳定按格式输出后续解析也省事。如果你要处理的文本量很大不要把全部内容一次性塞进 Prompt大模型的上下文窗口是有限的而且输入太长既贵又慢。比较靠谱的做法是先让 RPA 做一次粗过滤只把需要模型判断的字段截取出来再传给模型。5. 这个项目后续还能怎么玩AstronRPA 这种“RPA AI Agent”的组合后续能扩展的方向其实不少。我自己已经在琢磨几个场景一个是用它做自动化运维让大模型根据监控报警内容判断故障类型再调 RPA 去采集日志或执行恢复脚本另一个是做报表自动化每天早上自动从各个系统拉数据让模型生成简单的经营分析摘要再自动发送到群聊。另外因为它是开源的你完全可以基于它二次开发自己的组件。比如团队里有一套内部系统没有开放 API 也没有数据库权限只有网页界面那就可以写一个专用的“内部系统查询组件”封装进平台以后任何人都能拖拽这个组件搭建流程这种复用价值会越来越高。在我看来AstronRPA 最大的意义不是“又出了一个 RPA 工具”而是把 RPA 的执行力、企业级的管理能力、大模型的判断力放在了一个统一平台里。对真正想把 AI 落地到业务流的团队来说这种组合比单独玩 Agent 或单独用 RPA 都要靠谱。建议你先从团队里最痛、最重复的报表汇总流程开始试点跑通一个完整流程之后再逐渐扩大自动化范围会比一开始就想推翻所有系统稳妥得多。

相关新闻

Java Swing生日礼物开发:粒子动画与音频同步实战

Java Swing生日礼物开发:粒子动画与音频同步实战

简介:这是一份面向Java初学者与浪漫程序员的创意实践项目资源,用代码为心爱之人定制专属生日礼物。项目融合音乐播放、蛋糕动画、飘落爱心、玫瑰绘制与个性化文字(如GMY缩写)等交互元素,完整呈现了Java Sound API、Swi…

2026/10/17 18:25:55 阅读更多 →
蓝桥杯U10计算思维真题解析:六类模型与三阶段刷题法

蓝桥杯U10计算思维真题解析:六类模型与三阶段刷题法

简介:本资源为十四届蓝桥杯国赛计算思维 U10 组真题与答案合集,面向备战蓝桥杯国赛、训练计算思维的中小学生及指导教师,可用于赛前模拟、真题复盘与思维专项提升。包内共 1 个 pdf 文件,压缩包约 1.04MB,内容以完整赛…

2026/10/17 18:25:55 阅读更多 →
从零实现安全通信协议:对称与非对称加密、密钥交换及防重放实战

从零实现安全通信协议:对称与非对称加密、密钥交换及防重放实战

1. 安全协议到底在解决什么问题1.1 从一个真实踩坑案例说起去年帮一个做物联网设备的朋友排查问题,他们的设备在出厂测试阶段一切正常,到了客户现场却频繁出现指令被篡改的情况。抓包一看,设备与网关之间的通信完全是明文传输,任何…

2026/10/17 18:25:55 阅读更多 →

最新新闻

2026最新GPT-5.5深度评测:Agent架构解析与API选型

2026最新GPT-5.5深度评测:Agent架构解析与API选型

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

2026/10/17 23:03:58 阅读更多 →
Oracle Procedure 返回数据集:TaoToken 场景下的 Ref Cursor 与临时表选型小结

Oracle Procedure 返回数据集:TaoToken 场景下的 Ref Cursor 与临时表选型小结

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

2026/10/17 23:03:58 阅读更多 →
2026就业新赛道:一人如何利用AI智能体制作漫剧?五大主流工具深度测评与TaoToken统一接入实践

2026就业新赛道:一人如何利用AI智能体制作漫剧?五大主流工具深度测评与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/17 23:03:58 阅读更多 →
openclaw工作区workspace文件配置与管理完全指南:从目录结构到TaoToken统一Key接入

openclaw工作区workspace文件配置与管理完全指南:从目录结构到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/17 23:03:58 阅读更多 →
爱马仕hermas agent部署选型指南:Docker与VPS方案对比及TaoToken接入实践

爱马仕hermas agent部署选型指南:Docker与VPS方案对比及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/17 23:03:58 阅读更多 →
Agent安全审计实战:security-audit-skill技能包设计与findings.json解析

Agent安全审计实战:security-audit-skill技能包设计与findings.json解析

1. 从零拆解 security-audit-skill:一个让 Agent 真正会做安全审计的技能包第一次看到security-audit-skill这个标题,我脑子里蹦出来的不是“又一个安全扫描脚本”,而是一个更具体的问题:怎么让一个通用 Agent 在拿到一份代码仓库…

2026/10/17 23:02:58 阅读更多 →

日新闻

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

简介:《DeepSeek使用方法.pdf》是一份面向DeepSeek入门及进阶用户的完整使用指南,重点围绕V3与R1两款模型的能力差异与适用场景展开,帮助读者根据任务类型与成本选择合适的模型。资源共1个PDF文件,压缩包大小约311KB,篇…

2026/10/17 0:00:25 阅读更多 →
200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

简介:这是一份聚焦DeepSeek提示词优化的《200Deepseek润色指令》PDF文档,共收录两百余条可直接套用的润色指令,涵盖语法修正、风格统一、逻辑梳理、表达精炼等维度,并针对商务写作、学术论文、广告文案等场景给出差异化建议。文档…

2026/10/17 0:00:25 阅读更多 →
OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

简介:本资源是一份基于OpenCV的本科课程设计完整报告,面向计算机视觉初学者、图像处理学习者及高校通信/信息类专业学生,解决物体智能计数与检测结果结构化记录的实际问题。项目覆盖图像预处理、轮廓检测、边界框绘制、轨迹栏交互式参数调节、…

2026/10/17 0:00:25 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/10/16 15:04:24 阅读更多 →

月新闻

我发现了一个新思路:用 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/16 21:54:38 阅读更多 →
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/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练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/16 14:23:36 阅读更多 →