LangChain4j全集-20-Agents-五种workflow大体使用方式
下面我用Spring Boot 开发者视角把这 5 种 workflow 怎么“落到项目里”讲清楚。你已经会 Tool 了所以我不再讲 Tool 注解细节而是重点讲在 Spring Boot 里大体怎么组织每种 workflow 适合什么场景一个简单案例你代码层面大概怎么写/怎么串你该怎么理解它和普通 Service 流程的关系你可以把它理解成Tool 是“能力”Workflow 是“能力怎么组织起来完成任务”。一、先建立一个总认知在 Spring Boot 里 workflow 到底放哪你可以先把整个项目理解成这几层Controller ↓ AI Application / Agent Facade ↓ Workflow Orchestrator顺序/并行/路由/条件/分工 ↓ Tools / Services ↓ DB / 外部接口 / 内部系统如果翻译成你熟悉的话Controller接收用户请求AgentFacadeAI 能力统一入口Workflow Orchestrator决定流程怎么跑Tools/Services你已经会了就是具体业务能力DB/API真实数据和系统所以你学习 workflow 时可以先记住一句话Workflow 不是替代 Service而是在 Service 之上增加一层“任务编排”。二、给你一个统一业务场景电商客服助手为了让 5 种 workflow 容易对比我统一用一个场景场景做一个 Spring Boot 的“电商智能客服助手”用户会问查订单查物流退款进度催发货投诉问题生成处理建议你已经有这些 Tool/ServiceOrderServiceLogisticsServiceRefundServiceInventoryServiceTicketServiceNotificationService假设你已经把这些能力通过 Tool 暴露给 LLM 了。三、1Sequential Workflow 在 Spring Boot 里怎么用1. 适合什么场景固定步骤、前后依赖明显的任务。比如用户问帮我查订单状态并告诉我物流进度。这个事情通常是先查订单再查物流最后整理答复2. 在 Spring Boot 里怎么理解这其实最像一个“顺序调用的 Service”。你可以理解为controller-workflowService-step1-step2-step33. 一个简单流程用户输入查询订单 A10086 的状态和物流流程Step1: 查订单是否存在 Step2: 查订单状态 Step3: 如果已发货再查物流 Step4: 组装结果返回用户4. 大概代码组织ControllerRestControllerRequestMapping(/ai)publicclassAiController{AutowiredprivateCustomerSupportWorkflowServiceworkflowService;GetMapping(/order-summary)publicStringorderSummary(RequestParamStringorderId){returnworkflowService.handleOrderSummary(orderId);}}Workflow ServiceServicepublicclassCustomerSupportWorkflowService{AutowiredprivateOrderServiceorderService;AutowiredprivateLogisticsServicelogisticsService;publicStringhandleOrderSummary(StringorderId){OrderorderorderService.findById(orderId);if(ordernull){return订单不存在;}StringBuildersbnewStringBuilder();sb.append(订单状态).append(order.getStatus());if(SHIPPED.equals(order.getStatus())){LogisticslogisticslogisticsService.queryByOrderId(orderId);sb.append(物流进度).append(logistics.getCurrentNode());}returnsb.toString();}}5. 如果接入 LangChain4j 怎么理解这里有两种做法做法 ALLM 负责自然语言理解Workflow 你自己写死比如用户说帮我查一下 A10086LLM 先提取出意图和订单号然后调用你的顺序工作流workflowService.handleOrderSummary(A10086);做法 B每一步都交给 Agent/ToolAgent先调用查订单 Tool再根据结果决定调用物流 Tool再生成最终回答但从工程稳定性上讲很多业务型顺序流程建议你自己在 Spring Service 里写死流程更稳定。6. 你该怎么记Sequential workflow 在 Spring Boot 里本质就是“有步骤依赖的链式 Service 编排”。四、2Parallel Workflow 在 Spring Boot 里怎么用1. 适合什么场景多个子任务互不依赖可以同时执行。比如帮我分析这个订单包括订单状态、物流状态、退款状态。这三个查询其实可以一起查。2. 在 Spring Boot 里怎么理解最像你熟悉的CompletableFuture线程池异步并发并行远程调用聚合结果返回3. 一个简单流程用户输入帮我综合查询订单 A10086 的所有处理情况流程并行执行 - 查订单状态 - 查物流状态 - 查退款状态 全部完成后 - 汇总结果 - 返回用户4. 大概代码组织配置线程池ConfigurationpublicclassAsyncConfig{BeanpublicExecutorworkflowExecutor(){returnExecutors.newFixedThreadPool(10);}}Workflow ServiceServicepublicclassParallelWorkflowService{AutowiredprivateOrderServiceorderService;AutowiredprivateLogisticsServicelogisticsService;AutowiredprivateRefundServicerefundService;AutowiredprivateExecutorworkflowExecutor;publicStringqueryFullOrderInfo(StringorderId)throwsException{CompletableFutureOrderorderFutureCompletableFuture.supplyAsync(()-orderService.findById(orderId),workflowExecutor);CompletableFutureLogisticslogisticsFutureCompletableFuture.supplyAsync(()-logisticsService.queryByOrderId(orderId),workflowExecutor);CompletableFutureRefundrefundFutureCompletableFuture.supplyAsync(()-refundService.queryByOrderId(orderId),workflowExecutor);CompletableFuture.allOf(orderFuture,logisticsFuture,refundFuture).join();OrderorderorderFuture.get();LogisticslogisticslogisticsFuture.get();RefundrefundrefundFuture.get();returnString.format(订单状态%s物流状态%s退款状态%s,order.getStatus(),logistics.getCurrentNode(),refundnull?无退款:refund.getStatus());}}5. LangChain4j 在这里怎么参与这里也有两种方式方式 A你自己并行编排LLM 只负责最后润色输出比如你并行查完三个服务最后把结果交给 LLM 生成用户友好的答复。方式 B多个 Agent 并行做子任务再汇总比如Agent1 分析订单Agent2 分析物流Agent3 分析退款最后一个总结 Agent 汇总但对 Spring Boot 业务项目来说并行查询部分一般还是你用 Java 控制比较稳。6. 你该怎么记Parallel workflow 把多个独立子任务并发执行最后统一汇总。五、3Routing Workflow 在 Spring Boot 里怎么用1. 适合什么场景用户输入很多种问题但不同问题要走不同流程。比如查订单 - 订单流程查退款 - 退款流程催发货 - 催发货流程投诉 - 售后工单流程2. 在 Spring Boot 里怎么理解非常像Controller 分发策略模式命令模式路由器模式你可以理解成先识别“意图”再把请求交给对应处理器。3. 一个简单流程用户输入我的订单怎么还没发货路由判断识别意图为DELIVERY_URGE然后走催发货处理器4. 代码组织方式一if/else 简单版ServicepublicclassRoutingWorkflowService{AutowiredprivateOrderWorkflowHandlerorderWorkflowHandler;AutowiredprivateRefundWorkflowHandlerrefundWorkflowHandler;AutowiredprivateComplaintWorkflowHandlercomplaintWorkflowHandler;publicStringroute(Stringintent,Stringcontent){if(ORDER_QUERY.equals(intent)){returnorderWorkflowHandler.handle(content);}elseif(REFUND_QUERY.equals(intent)){returnrefundWorkflowHandler.handle(content);}elseif(COMPLAINT.equals(intent)){returncomplaintWorkflowHandler.handle(content);}return暂时无法识别你的问题类型;}}5. 代码组织方式二策略模式版这个更适合 Spring Boot 项目。定义处理器接口publicinterfaceWorkflowHandler{Stringintent();Stringhandle(Stringcontent);}订单处理器ComponentpublicclassOrderWorkflowHandlerimplementsWorkflowHandler{OverridepublicStringintent(){returnORDER_QUERY;}OverridepublicStringhandle(Stringcontent){return进入订单查询流程content;}}退款处理器ComponentpublicclassRefundWorkflowHandlerimplementsWorkflowHandler{OverridepublicStringintent(){returnREFUND_QUERY;}OverridepublicStringhandle(Stringcontent){return进入退款查询流程content;}}路由器ServicepublicclassWorkflowRouter{privatefinalMapString,WorkflowHandlerhandlerMapnewHashMap();publicWorkflowRouter(ListWorkflowHandlerhandlers){for(WorkflowHandlerhandler:handlers){handlerMap.put(handler.intent(),handler);}}publicStringroute(Stringintent,Stringcontent){WorkflowHandlerhandlerhandlerMap.get(intent);if(handlernull){return未找到对应处理器;}returnhandler.handle(content);}}6. LangChain4j 在这里怎么参与最典型的方式就是第一步LLM 识别用户意图例如把用户输入识别成ORDER_QUERYREFUND_QUERYCOMPLAINTDELIVERY_URGE第二步Spring Boot 路由到对应 workflow然后router.route(intent,userInput);这其实是最常见、最好落地的一种做法。7. 你该怎么记Routing workflow LLM 负责“看懂用户想干嘛”Spring Boot 负责“把任务送到正确处理链路”。六、4Orchestrator-workers Workflow 在 Spring Boot 里怎么用1. 适合什么场景适合一个大任务要拆给多个子任务。比如帮我分析最近 30 天差评订单从商品、仓库、物流三个角度总结原因并给出改进建议。这就不是一个简单查询了而是一个“综合分析任务”。2. 在 Spring Boot 里怎么理解你可以把它看成一个总控 Service多个子 Worker Service总控负责拆任务、调度、汇总结果这和传统系统里的聚合服务编排服务调度服务很像。3. 一个简单流程用户输入分析最近 30 天差评订单Orchestrator 拆任务Worker1分析商品维度差评原因Worker2分析仓库维度差评原因Worker3分析物流维度差评原因最后汇总成完整分析报告4. 代码结构示例Worker 接口publicinterfaceAnalysisWorker{Stringname();Stringanalyze(ListOrderorders);}商品分析 WorkerComponentpublicclassProductAnalysisWorkerimplementsAnalysisWorker{OverridepublicStringname(){returnproduct;}OverridepublicStringanalyze(ListOrderorders){return商品维度分析发现尺寸问题较多;}}仓库分析 WorkerComponentpublicclassWarehouseAnalysisWorkerimplementsAnalysisWorker{OverridepublicStringname(){returnwarehouse;}OverridepublicStringanalyze(ListOrderorders){return仓库维度分析华东仓发货延迟较明显;}}物流分析 WorkerComponentpublicclassLogisticsAnalysisWorkerimplementsAnalysisWorker{OverridepublicStringname(){returnlogistics;}OverridepublicStringanalyze(ListOrderorders){return物流维度分析某物流公司丢件率偏高;}}OrchestratorServicepublicclassReviewAnalysisOrchestrator{AutowiredprivateOrderServiceorderService;AutowiredprivateListAnalysisWorkerworkers;publicStringanalyzeBadReviews(){ListOrderbadOrdersorderService.findBadReviewOrdersLast30Days();StringBuilderresultnewStringBuilder(差评订单分析报告\n);for(AnalysisWorkerworker:workers){result.append(worker.analyze(badOrders)).append(\n);}returnresult.toString();}}5. LangChain4j 在这里怎么参与可以这样配合方式 ASpring Boot 拆任务LLM 只做每个子任务的分析比如先由 Java 拿到最近 30 天差评订单数据再把数据分别交给不同分析 Agent/Prompt 去分析商品、仓库、物流最后汇总方式 BLLM 当 orchestrator大模型先决定应该拆成哪些子任务再调用不同 worker/Tool最后总结但企业项目里建议先让 Java 做主流程编排LLM 做分析和生成可控性更好。6. 你该怎么记Orchestrator-workers workflow 一个总控拆任务多个子模块各做一部分最后再汇总。七、5Conditional Workflow 在 Spring Boot 里怎么用1. 适合什么场景某一步执行后要根据结果决定下一步怎么走。比如查订单如果未发货就催发货如果已发货就查物流如果已签收就提示用户。2. 在 Spring Boot 里怎么理解就是典型的if/elseswitch状态机分支流程AI 里只是把这个逻辑和 Tool/Agent 结合起来了。3. 一个简单流程用户输入帮我看一下订单 A10086现在什么情况必要的话帮我催一下条件流程Step1: 查订单状态 Step2: - 如果 WAIT_SHIP - 调用催发货 Tool - 如果 SHIPPED - 调用物流 Tool - 如果 DELIVERED - 返回已签收4. 大概代码ServicepublicclassConditionalWorkflowService{AutowiredprivateOrderServiceorderService;AutowiredprivateLogisticsServicelogisticsService;AutowiredprivateNotificationServicenotificationService;publicStringhandle(StringorderId){OrderorderorderService.findById(orderId);if(ordernull){return订单不存在;}switch(order.getStatus()){caseWAIT_SHIP:notificationService.notifyWarehouse(orderId);return订单尚未发货已帮你通知仓库尽快处理;caseSHIPPED:LogisticslogisticslogisticsService.queryByOrderId(orderId);return订单已发货当前物流状态logistics.getCurrentNode();caseDELIVERED:return订单已签收;default:return订单状态暂时无法识别;}}}5. LangChain4j 在这里怎么参与最常见的方式是Tool 负责查状态 / 发通知 / 查物流Agent 根据 Tool 返回结果决定后续动作或者你在 Java 里自己做条件判断LLM 只负责自然语言输出如果你在做的是“严肃业务逻辑”比如通知仓库、发退款、提工单这类有副作用的操作建议条件判断尽量由 Java 控制不要完全交给 LLM。6. 你该怎么记Conditional workflow 根据执行结果动态分支很适合有状态变化和副作用操作的业务。八、把这五种 workflow 放到一个完整 Spring Boot 项目里大概怎么组合真实项目里通常不是只用一种而是混合使用。我给你一个完整点的例子。场景智能客服统一入口Controller接收用户问题PostMapping(/chat)publicStringchat(RequestBodyUserMessagereq){returnaiCustomerSupportApp.handle(req.getUserId(),req.getMessage());}AI App 主流程1. LLM 识别用户意图 - Routing 2. 路由到对应业务流程 3. 某个业务流程内部 - 可能 Sequential - 可能 Parallel - 可能 Conditional 4. 如果是复杂分析任务 - 用 Orchestrator-workers 5. 最终把结果交给 LLM 润色 6. 返回前端比如用户问 1查一下订单 A10086走Routing - ORDER_QUERYSequential - 查订单 查物流Conditional - 看是否发货决定要不要查物流用户问 2帮我综合分析这个订单的问题走Routing - ORDER_ANALYSISParallel - 并行查订单、物流、退款LLM 汇总分析用户问 3帮我分析最近 30 天差评原因走Routing - REVIEW_ANALYSISOrchestrator-workers - 商品/仓库/物流 多 worker 分析最后总结九、你在项目里到底该怎么选这是最实用的一部分。1. 如果流程固定、步骤简单选Sequential比如查订单 - 查物流 - 输出结果2. 如果多个查询互不依赖选Parallel比如同时查订单、退款、物流3. 如果用户问题类型很多选Routing比如订单、退款、投诉、推荐不同处理器分开4. 如果任务很大需要拆工协作选Orchestrator-workers比如多维度分析报告多角色内容生成5. 如果下一步取决于当前结果选Conditional比如未发货催仓已发货查物流已签收结束流程十、对你这种“已经会 Tool 的 Spring Boot 开发者”最推荐的落地方式我建议你刚开始不要把 workflow 全交给 Agent 自己推理而是用这种方式推荐架构Java 控流程LLM 做理解和表达LLM 负责理解用户自然语言提取参数分类意图总结结果生成用户友好回复Spring Boot 负责工作流编排顺序/并行/分支控制调用 Tool/Service权限校验异常处理风险控制为什么这么做因为这样更稳更可控更适合企业项目更容易调试更符合你现在 Spring Boot 的开发习惯你可以把它理解成不是让 LLM 接管你的系统而是让 LLM 变成你的智能入口和智能解释器。十一、给你一个最简化的“记忆口诀”你可以用这 5 句话记住Sequential按顺序一个个做Parallel能一起做就一起做Routing先判断是什么问题再分配处理器Orchestrator-workers大任务拆小任务分工协作Conditional根据中间结果决定下一步十二、给你一个最适合练手的学习顺序如果你要自己练我建议第一步先做 Routing做一个统一客服入口识别订单、退款、投诉三类问题。第二步加 Sequential订单查询流程查订单 - 查物流 - 组装回复。第三步加 Conditional根据订单状态决定是否催仓、是否查物流。第四步加 Parallel同时查询订单/物流/退款做综合分析。第五步再尝试 Orchestrator-workers做一个“多维度分析报告”。这是最适合你这种 Spring Boot 开发者的学习路径。如果你愿意我下一步可以直接继续帮你做下面两种东西之一方案 1给你代码骨架我可以直接给你一套Spring Boot 项目结构示例把这 5 种 workflow 的类怎么分、包怎么分、接口怎么设计写出来。方案 2给你完整 demo我可以直接写一个Spring Boot LangChain4j 的订单助手 Demo里面包含RoutingSequentialConditional这三个最常用的 workflow。如果你想继续直接回复我一句继续给我项目结构设计或者继续给我一个订单助手 demo

相关新闻

Apache Gluten Columnar Shuffle深度剖析:大数据传输效率提升秘籍

Apache Gluten Columnar Shuffle深度剖析:大数据传输效率提升秘籍

Apache Gluten Columnar Shuffle深度剖析:大数据传输效率提升秘籍 【免费下载链接】gluten Gluten is a middle layer responsible for offloading JVM-based SQL engines execution to native engines. 项目地址: https://gitcode.com/GitHub_Trending/glu/glute…

2026/10/16 14:46:29 阅读更多 →
告别电脑束缚:如何在iPhone上直接安装IPA应用文件

告别电脑束缚:如何在iPhone上直接安装IPA应用文件

告别电脑束缚:如何在iPhone上直接安装IPA应用文件 【免费下载链接】App-Installer On-device IPA installer 项目地址: https://gitcode.com/gh_mirrors/ap/App-Installer App-Installer是一款革命性的iOS应用安装工具,它彻底改变了传统需要连接电…

2026/10/16 15:10:30 阅读更多 →
Web性能优化必备:Know-it-all中的关键指标与优化技巧

Web性能优化必备:Know-it-all中的关键指标与优化技巧

Web性能优化必备:Know-it-all中的关键指标与优化技巧 【免费下载链接】know-it-all If you dont know it all, at least know what you dont know. 项目地址: https://gitcode.com/gh_mirrors/kn/know-it-all 在现代Web开发中,性能优化是提升用户…

2026/10/16 15:11:47 阅读更多 →

最新新闻

从Verilog加法器到五级流水线:手把手拆解CPU设计全流程

从Verilog加法器到五级流水线:手把手拆解CPU设计全流程

简介:面向高校计算机专业师生的中央处理器设计与体系结构实验指导手册(教师版),配套LS-CPU-EXB-002实验箱及Xilinx Vivado平台,适合《数字逻辑》《计算机组成原理》《计算机体系结构》等课程的实验教学与自主研习。手册…

2026/10/16 16:11:45 阅读更多 →
STM32Cube-FW-F4 V1.28.1固件包:目录结构、工程迁移与避坑清单

STM32Cube-FW-F4 V1.28.1固件包:目录结构、工程迁移与避坑清单

简介:STM32Cube-FW-F4-V1.28.1是ST官方为STM32F4系列单片机发布的固件开发包,适合使用Cortex-M4内核的嵌入式开发者。该固件包将硬件抽象层HAL与低层LL驱动整合在一起,并准备了USB、TCP/IP、图形界面和加密算法等中间件,能够简化从…

2026/10/16 16:11:45 阅读更多 →
Open Inventor 中文教程:场景图、动作机制与传感器实战指南

Open Inventor 中文教程:场景图、动作机制与传感器实战指南

简介:《The Inventor Mentor》中文版是面向C开发者与3D图形编程学习者的Open Inventor系统教程,适合从入门到进阶的读者掌握三维交互应用开发。全书围绕节点、几何、属性、事件与相机等基础元素展开,深入讲解场景图组织、几何构建、材质光照与…

2026/10/16 16:11:45 阅读更多 →
RAG上下文优化新思路:OSCAR在线软压缩技术精读

RAG上下文优化新思路:OSCAR在线软压缩技术精读

1. 从论文标题开始:为什么第四周我选这篇OSCAR我们精读小组每周轮流挑论文,前几周基本上都在RAG的外围打转:有讲GraphRAG的,有讲self-RAG的,也有讲混合检索策略的。读到第四周,我反而想回到一个特别基础但也…

2026/10/16 16:11:45 阅读更多 →
Go切片底层原理与常见坑点:内存布局、扩容与共享数组详解

Go切片底层原理与常见坑点:内存布局、扩容与共享数组详解

切片(Slice)是Go语言里出镜率最高的数据结构。我几乎每天都在写类似items : make([]int, 0, 8)的代码,但真正把切片讲清楚的人不多。很多新手把切片当成动态数组,写起来没问题,一遇到截取、append、共享底层数组就懵&a…

2026/10/16 16:11:45 阅读更多 →
FTTH光猫超级密码获取与路由模式设置实战指南

FTTH光猫超级密码获取与路由模式设置实战指南

简介:一份针对电信FTTH光猫超级密码获取与路由模式设置的实操文档,面向家庭宽带用户、装维技术人员及网络调试爱好者。文档以华为HG8245等常见光猫为例,从DOS界面Telnet登录192.168.1.1入手,依次演示使用root/admin默认凭据进入WA…

2026/10/16 16:10:42 阅读更多 →

日新闻

个人 AI Agent 平台接入 TaoToken:统一 Key 与 API 通道的配置大纲

个人 AI Agent 平台接入 TaoToken:统一 Key 与 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/16 0:00:05 阅读更多 →
信号与系统频域分析作业解题指南

信号与系统频域分析作业解题指南

1. 作业背景与核心要求解析信号与系统作为电子信息类专业的核心基础课,其作业设计往往直接关联课程的核心知识框架。2026年春季第六次作业的布置,通常对应着课程进展到频域分析的关键阶段。根据常规教学进度推测,本次作业可能涉及以下核心内容…

2026/10/16 0:00:05 阅读更多 →
Django MVT实战:从零构建图书借阅系统,彻底搞懂Model-View-Template分层

Django MVT实战:从零构建图书借阅系统,彻底搞懂Model-View-Template分层

1. 从一个"四不像"的练手项目说起如果你已经看完了Django的官方教程前几章,跟着敲完了投票应用,大概会有一种"我好像会了,又好像什么都不会"的割裂感。教程里每个知识点都是拆开的——这一章讲模型,下一章讲视…

2026/10/16 0:00:05 阅读更多 →

周新闻

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

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

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

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

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

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

2026/10/15 19:41:51 阅读更多 →
影刀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/15 0:14:36 阅读更多 →
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/16 3:49:43 阅读更多 →
黑夜航拍船只数据集训练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 阅读更多 →