LLM代理正在重构GPU算子内核优化:从经验调优到智能闭环
站在2025年末往后看算子kernel优化这件事的门槛正在被LLM代理悄悄拆掉往前看到2026下半年这基本是性能工程圈里板上钉钉的主赛道。过去聊GPU/AI算子优化我们说的都是经验活先抓profile再翻汇编然后凭感觉改循环、调block尺寸最后反复跑benchmark验证。现在这条路正在变LLM代理不再只是帮你写代码的助手而是直接进入调优主流程成为与编译器、profiler平起平坐的一等优化手段。这篇文章不扯远大概念直接讲清楚三件事为什么LLM代理能承担这份工作、一个可落地的代理化优化架构长什么样、以及在我们实际跑算子优化时踩过的坑和绕过弯的路。无论你是做AI基础设施的性能工程师还是刚接触异构计算的初学者照着这个思路都能在自己的业务里搭出一版能用的闭环。1. 为什么LLM代理会成为kernel优化的一等公民1.1 传统调优流程的痛点先还原一个最普通的算子优化场景。你拿到一个线上耗时占比很高的算子第一步是开profiler抓数据看它到底卡在访存、计算还是线程同步上。第二步是打开生成的内核代码对着热点行逐行琢磨。第三步是试参数加大block尺寸、换循环展开方式、调整数据布局。第四步是编译、跑回归、对比耗时和误差。如果性能达标就收工不达标就再从第一步开始循环。这套流程我干了多年最大的感受是单次修改不慢慢的是看数据-改代码-等验证这个循环本身。一次完整迭代可能只要十分钟但一个复杂的融合算子常常要迭代几十轮一天就过去了。更让人头疼的是很多性能瓶颈藏在上下文里——一个简单的访存密集算子最优解法可能是改变数据排布但如果你不看调用方的张量形状根本意识不到这个问题。传统的自动调优器很擅长在固定搜索空间里找参数但不太擅长跳出代码重新设计算法而人擅长这一点可惜人不够快。1.2 LLM代理与自动调优器的本质区别早期大家熟悉的自动调优工具本质上是对一个预定义搜索空间做枚举或贝叶斯搜索。它也知道要调block大小、循环展开因子、数据分块维度但它不知道为什么要调。它像一个只会在固定菜单里挑菜的顾客所有选项都要工程师提前设计好。LLM代理不一样的地方在于它是理解了代码语义再动手的。给它一段内核源码、一份profile报告它能读懂这个算子的计算模式能意识到访问顺序和显存带宽的关系能调用编译器的错误信息来修正自己。它不只是选参数而是可以直接重写循环结构、改变访存顺序、合并中间计算甚至建议你换一个更合适的内核模板。我个人的判断是2026下半年这个时间点上LLM代理能成为一等优化手段靠的不是某一个模型有多聪明而是整条数据通路终于打通了profiler的输出可以被结构化喂给模型编译器的报错可以自动回传给模型性能回归的结果可以自动作为知识沉淀下来。这三点在两年以前每一个都很难做到现在都有了成熟的工程解法。2. 代理化优化方案的整体架构2.1 观察-规划-执行-反思的核心循环把LLM代理当成一个刚入职的性能工程师来培养它的工作流程要设计成四个阶段观察、规划、执行、反思。观察阶段负责收集所有必要信息。包括算子的源代码、调用参数、profile报告、汇编级别的热点摘要还有之前尝试过但失败或低效的方案。这里的关键不是给模型一串日志而是把日志转成结构化的、模型容易理解的文本或表格。我在实操中会把profile报告里的指标挑出来按访存带宽利用率、计算吞吐率、占用率、分支发散、内存合并几个维度整理成摘要再附上代码片段。这样做比把几千行原始输出直接丢给模型有效得多。规划阶段让代理基于观察结果给出优化方案。方案不只是一段新代码还应该包含修改理由、预期收益和风险点。我会要求代理在动手前先输出一份简短计划怀疑的瓶颈是什么、准备怎么改、是否需要改变数据布局、如何验证正确性。这个步骤看起来多此一举实际上能减少大量无效修改——很多初学者模型一上来就重写整个内核结果连编译都过不去先做规划可以逼着它想清楚。执行阶段就是让代理生成完整内核代码并完成编译替换。这里要注意不要让代理直接去改生产代码而是生成一个独立的候选文件然后通过脚本替换。反思阶段最容易被忽略但它是整个闭环能持续变好的核心。把编译错误、性能结果、正确性校验结果全部反馈给代理让它解释为什么这次改动没生效或者总结为什么生效了。把这些反思结果追加到一个经验文件中下次优化同类算子时作为参考。2.2 为什么一等优化手段意味着数据通路打通我们常说一等公民放在编译器领域意思是某个东西不是事后外挂的而是在设计阶段就被整合进工具链。LLM代理要成为一等优化手段就必须满足三个条件第一profiler数据能被程序化地输出并喂给模型。这意味着性能工具需要提供稳定的导出接口而不是只有图形界面。第二编译、链接、运行验证都能被自动化流水线调用代理才能自己走完改代码-编译-测试的循环。第三前后端的CI系统要允许候选内核自动对比基线的耗时和误差而不需要人手工跑benchmark。在我参与的模拟项目X里我们把这套逻辑做成了一个性能优化流水线大致分成五层层级作用关键产出数据采集层对接profiler、统一输出结构化指标归一化的性能摘要上下文管理层存储源码、历史方案、经验沉淀每次迭代的完整记忆决策层由LLM代理分析瓶颈、生成候选代码新的内核实现验证层自动编译、运行、核对正确性和性能PASS/FAIL报告回归层对比基线与历史结果决定是否接受可量化的收益明细一开始我们把代理放在最后一步让它帮忙看看为什么慢后来发现只要数据通路打通完全可以让它主导整个流程人只负责审核关键决策和兜底异常。这个转变才是一等优化手段的真正含义。3. 实操搭建一个可用的LLM代理优化闭环3.1 环境与基线的准备先说环境准备。你需要三样东西一个可以跑kernel benchmark的基础环境、一个能被程序调用的LLM推理服务、以及一套绑定脚本。基础环境方面不需要改造整个业务系统只要能从业务里抽取出独立算子的调用样例即可。我们会为每个目标算子准备三件套一段可独立编译的kernel源码、一组典型的输入张量形状、一个正确性参照实现。这个参照实现必须先用CPU或高精度计算跑一遍作为误差校验的基准。LLM推理服务可以直接用开源模型本地部署也可以调用商业API但要注意延迟和费用。在优化循环里模型通常要迭代几十次如果每次请求要花半分钟整个流程就跑不动。我的建议是优先选择支持长上下文、且响应速度快的模型服务并把prompt模板设计得紧凑一些避免上下文无谓膨胀。基线数据也要提前打好。对每个目标算子先用原始kernel跑出三个关键指标平均耗时、正确性误差、性能波动范围。性能波动这个指标特别重要因为GPU上的耗时本身有噪声如果代理看到一次0.5%的下降就回退方案会陷入原地打转。我们会把基线跑20轮取中位数并记录P90和P10的差距后续判定性能回归时用这个区间做容忍度。3.2 让代理读懂profile数据直接给LLM一段原始profile输出效果通常很差。原因有两个一是冗余信息太多模型容易抓错重点二是不同运行轮次的数据有噪声模型可能会针对噪声做错误判断。我把profile数据整理成固定模板。以访存受限算子为例摘要包括以下内容当前kernel的网格尺寸和线程块尺寸理论显存带宽和实测带宽内存合并访问的比例L2缓存命中率每条线程的寄存器数量实际占用率和理论占用率的差距最耗时的三个机器指令段实际跑下来这个摘要控制在600字以内效果最好。太长会让模型忽略关键指标太短又缺少上下文。摘要之外再附上kernel源码和一段注释说明这个算子的输入形状范围和调用频率。把这些内容组装进一个系统提示词里要求代理按固定格式输出优化分析。下面是我们在模拟项目X里使用的提示词骨架整理成中文便于理解你是一名GPU性能优化专家。以下是某个算子的kernel源码和性能摘要。 请分析可能的性能瓶颈给出修改方案。 要求 1. 先用不超过3句话总结瓶颈原因。 2. 给出具体修改后的完整kernel代码。 3. 说明预期的性能提升点和可能的风险。 不要修改算子的输入输出语义。 不要引入未说明的额外kernel。 性能摘要{profile_summary} 代码{kernel_source}这个模板看起来很简单但实际效果很好。它最核心的约束是不要修改输入输出语义能挡住一大批胡写乱改。3.3 生成kernel并完成替换代理输出新kernel后不能直接覆盖生产文件。我的做法是生成一个独立的候选文件文件名带上时间戳和迭代编号然后由脚本统一编译。编译命令的配置也要标准化比如优化等级、体系结构选项、是否开启快速数学计算等。替换逻辑我写成了一段流水线脚本。大致流程是读取候选kernel文件编译成动态库替换符号表然后跑参照用例。如果编译失败脚本会把编译器输出截取最后50行回传给代理让它修正自己的代码。这一步是LLM代理工作流里最关键的反馈回路——没有编译错误回传模型永远不知道自己的代码错在哪里。完成编译后还需要处理替换后的正确性验证。我们会对算子的输入做多组随机测试对比与参照实现的最大绝对误差和相对误差。注意有些算子的中间过程允许一定误差需要事先约定好容差阈值比如最大相对误差不超过1e-4或者逐元素误差的平方均值低于某个上限。如果代理生成的代码误差超标流水线会拒绝采用并把误差报告反馈回去要求修正。3.4 自动化回归验证性能和正确性验证放在一起做是避免代理作弊的关键。所谓作弊指的是代理可能找到了一个性能极好但数值完全错误的实现或者只针对某一组输入形状做了优化换一组形状就退化。我们会准备多组shape分布与线上真实流量一致的shape、接近边界条件的最小shape、以及可能触发非对齐访问的随机shape。性能验证时每组shape跑几批随机数据计算稳定后的平均耗时。正确性验证时独立于性能测试跑一遍否则数据依赖会导致缓存结果污染。整个回归环境我建议做成一个独立任务串行执行。不要并行跑性能测试因为并发会带来资源争抢让耗时数据失真。我在头几次实验里吃过这个亏并行任务多开之后同一算子耗时波动达到了15%以上代理完全无法判断某个修改是否有效。回归结果最后以一张表格输出例如候选版本shape组耗时(ms)相对基线最大绝对误差是否通过v1_iter3shape_a0.082-23%2.1e-6通过v1_iter3shape_b0.1168%1.8e-6失败v1_iter4shape_a0.079-26%2.3e-6通过v1_iter4shape_b0.104-3%2.0e-6待定像这样即使某一组shape表现优秀只要其他shape拖后腿代理就必须继续迭代。4. 几个典型算子的优化过程复盘4.1 访存密集类算子调整数据排布比改循环更有效我们业务里有一个优化目标算子逻辑非常简单对一批向量做逐元素变换然后做归约求和。第一版kernel性能平平用代理分析profile摘要后发现实测显存带宽只有理论峰值的35%。这个指标一出来基本可以断定是访存模式出了问题——最可能的原因是线程读数据的顺序和显存中数据存放的顺序不一致。代理的第一版修改只是给循环加了展开因子。编译通过后跑benchmark带宽提升到42%小有收益但不理想。我把profile反馈给代理后它把注意力转向数据布局既然同一个线程要访问连续的多个数据点不如让每个线程一次性把连续数据读入寄存器再做后续运算减少内存请求次数。于是它做了一次关键改动把原来的每线程一个元素改成每线程连续四个元素。代码层面只是加了循环展开但实际上彻底改变了访存模式。实测带宽从35%跳到72%。这个例子让我意识到对访存密集算子LLM代理最大的价值是它敢于跳出调参数的框主动去改数据访问格局。4.2 计算密集类算子寄存器压力是隐藏瓶颈第二个场景是一个小规模的矩阵运算算子理论计算量不大但启动频率极高而且输入矩阵尺寸在运行时会随时变化。性能摘要显示计算吞吐率接近理论值但实际耗时波动很大。代理看到L2缓存命中率数据后判断问题不在访存而在过度分配寄存器导致的占用率下降。它给出的建议是缩小block尺寸并关掉编译器的一个激进优化选项。起初我不太理解为什么关掉优化反而能提升性能。跑完benchmark才明白这个算子太小了线程块太大反而导致一个block占用了过多计算单元使并发block数量下降调度器无法用更多block来隐藏延迟。这次优化过程最值得记录的是代理的迭代策略。第一次改动没有成功性能反而下降4%。代理根据回归报告迅速回滚并换了一种思路保留大block但显式限制每线程的寄存器数量让编译器把多余变量溢出到局部内存。结果成功把耗时压低了11%。整个过程只用了四轮迭代换成人工来做可能需要一个多小时。4.3 启动开销敏感的小算子把多次调用变成一次融合还有一种很典型的场景是小算子危机。业务里有个逐元素运算流程由三个连续的小kernel组成先做加法再取激活函数最后做乘加。每个kernel单独跑都很快但三个kernel串行执行启动开销占了总耗时的六成。代理在读源码时发现这三个操作都是逐元素且形状完全一致就建议融合成一个kernel。实现融合的方式很简单在一段循环里依次完成三次计算中间结果放在寄存器里避免三次读写显存。实测效果立竿见影整体耗时下降超过40%。这个案例说明LLM代理优化算子不只是在单kernel内部挖掘还能跨kernel做语义级的操作合并。原因在于它真的读懂了整个逻辑流程而自动化调优器很难做到这一步因为融合需要理解不同kernel之间的数据依赖。5. 常见问题与排查技巧实录5.1 代理生成的代码编译失败这是遇到频率最高的问题。原因通常有三类调用了不存在的内部函数、使用了错误的限定符、类型不匹配。早期系统对这种错误没有反馈代理每轮都在同一个地方出错。后来我把编译错误信息做了归一化处理提取错误发生的行号和错误类型拼成一段简短摘要和源码一起回传给代理。实践下来反馈编译错误后代理通常在下一轮就能自行修复。如果连续三轮编译失败我会强制终止迭代让代理先输出修改计划再生成代码避免它盲目打补丁。5.2 性能不升反降模型可能只针对当前shape优化得很好换一个shape就变慢。所以性能回归必须覆盖多组shape。另外GPU的耗时波动是个大陷阱我遇到过代理为了一次3%的提升跑了很多轮但实际上这些提升在噪声范围内完全无效。我的解决办法是引入阈值判定只有性能提升超过设定阈值比如10%才认为候选方案有效。在阈值内的波动直接忽略。这样可以大幅减少无效迭代也避免代理陷入无意义的微调。5.3 正确性误差超标LLM代理生成的代码经常会出现误差超标。多数情况是因为它使用了更激进的数学优化比如把某个小数运算换成更快的近似计算或者改变了累加顺序导致浮点误差被放大。处理方式不复杂主要有两步第一步是在提示词里明确不允许使用会改变计算语义的近似数学库函数第二步是在回归流水线里开启多组随机输入的误差检测。如果误差超标就把错误样例单独整理成文本让代理解释误差来源并提出修正。实测这个反馈循环很有效代理多数情况下能主动降低优化强度或者改回逐元素顺序累加。5.4 上下文爆炸和噪声数据LLM代理的上下文窗口再大也有上限。迭代十几轮之后历史记录会变得很长。如果不做筛选模型会被大量无关旧数据干扰。我会控制每次喂给模型的内容量保留当前源码、最新profile摘要、最近三到五轮的结果反馈以及一份经验总结文件。更早的历史迭代记录折叠成一个简短的已尝试方案列表。这样既能给模型足够的记忆又不会让它淹没在细节里。关于噪声数据建议在性能测试前先做preheat。让GPU先跑几轮预热然后再正式计时。preheat之后数据的稳定性提升非常明显。6. 落地建议与后续演进6.1 先单算子试点再建立批量流程如果你正在考虑把LLM代理引入团队建议不要一上来就追求全业务覆盖。先挑一个最有代表性的算子搭好完整的闭环跑通之后再做第二个。第一个算子能帮你暴露大量工程细节比如profile数据格式、误差阈值确定、反馈消息长度限制等等。我们第一次搭闭环时代理有将近一半的迭代浪费在沟通不畅上后来靠调整prompt和摘要格式才解决。单算子跑通后再逐步扩展到同类型的算子家族。可以把已经沉淀下来的经验文件做成模板让代理在新的优化任务里自动参考。这样做的效果是第二次优化同类型算子时迭代轮数明显减少。6.2 给代理装上安全护栏LLM代理自主优化虽然效率高但风险也真实存在。我在这套流程里最坚持的一点是任何候选kernel都不能绕过回归验证直接上线。哪怕是代理自己说保证没问题也必须按流程走一遍编译、正确性、性能测试。另外建议给代理设定最大迭代次数。当迭代超过预设上限且性能没有明显改善时自动停止并保留最优版本。我见过一些代理在陷入局部最优后会开始做出越来越奇特的改动浪费算力不说还可能引发生产环境的兼容性问题。护栏不是限制代理能力而是确保它的创造力在可控范围内发挥。6.3 下一步从单代理到多代理协同我个人比较看好的下一步演进是把一个全局优化目标拆给多个专项代理一个代理专门负责分析访存特征一个负责loop级优化一个负责编译选项调优。它们之间通过共享记忆池协作。这样做的价值在于不同优化维度需要的上下文差异很大拆开之后每个代理的上下文都更聚焦效果也会更稳定。不过多代理也带来新的工程复杂度比如结果汇总、冲突消解、共同决策机制。这些目前还在探索阶段。我觉得2026下半年真正值得期待的不是某个模型单独变强而是围绕agent的工具链、数据规范和协作框架越来越成熟让更多普通性能工程师也能用上这套AI优化师。最后分享一点我个人体会LLM代理做kernel优化最好的定位是一个能熬夜迭代的性能工程实习生而不是全知全能的自动优化神。给它清晰的输入、及时的反馈和严格的上线标准能极大地解放人的精力把我们从每天重复的调参和看日志里抽出来去做更重要的架构级优化。如果你对这方向有兴趣完全可以拿一个算子在本地环境里先跑起来很快你就会发现那种亲手把代理从乱改代码调教成有理有据做优化的过程本身就很有成就感。

相关新闻

systemd日志系统journald架构解析:从文件格式到性能优化

systemd日志系统journald架构解析:从文件格式到性能优化

systemd的日志系统journald,说起来大家天天都在用,但真正一行行读过它代码的人并不多。说实话,我一开始也以为日志系统嘛,无非是收消息、写文件,直到啃了一段时间journald的源码,才发现这套设计远比表面看上…

2026/10/14 9:55:39 阅读更多 →
MySQL 从入门到实战(07):索引实战——慢查询定位与优化

MySQL 从入门到实战(07):索引实战——慢查询定位与优化

索引实战:慢查询定位与优化 本篇所有慢查询日志和 EXPLAIN 输出在本机 MySQL 8.0.46 实测。 核心问题:线上 SQL 慢了,怎么一步步定位到根因? 一、第一步:开启慢查询日志 慢查询日志是排查性能问题的第一入口。 -- 动态开启(重启失效) SET GLOBAL slow_query_log = ON;…

2026/10/14 9:55:39 阅读更多 →
Unity全局光照着色器原理与GI数据采样机制解析

Unity全局光照着色器原理与GI数据采样机制解析

1. 为什么Unity自带着色器里几乎找不到“全局光照”四个字? 刚接触Unity光照系统的新手常会陷入一个典型误区:打开 UnityCG.cginc 或 Lighting.cginc ,满屏搜索“GI”“GlobalIllumination”“Lightmap”,结果一无所获——连个…

2026/10/14 9:55:39 阅读更多 →

最新新闻

在河北开发直播 APP,怎么挑选靠谱的软件公司?

在河北开发直播 APP,怎么挑选靠谱的软件公司?

河北不少创业者、企业都想搭建自己的直播 APP,带货直播、付费课程、娱乐打赏、私域直播等需求越来越多。但直播属于音视频高并发项目,技术门槛远高于普通商城和管理系统。很多本地软件公司只会做简单小程序,并不具备流媒体开发经验&#xff0…

2026/10/15 0:47:40 阅读更多 →
Python requests实现人人网自动登录:Cookie、验证码与会话管理全攻略

Python requests实现人人网自动登录:Cookie、验证码与会话管理全攻略

简介:这份人人网(校内)自动登录的Java实现,面向需要模拟登录校内平台的开发者、测试人员或学生。由于网上流传的登录代码多针对旧版校内接口,往往无法直接套用,作者梳理了当前人人网登录流程并编写出简易可…

2026/10/15 0:47:40 阅读更多 →
软件开发想要少踩坑,产品经理才是项目的 “翻译官” 和总设计师

软件开发想要少踩坑,产品经理才是项目的 “翻译官” 和总设计师

很多人做软件定制,关注点只放在程序员、代码、服务器上,觉得只要有开发就能把项目做出来,常常忽略产品经理这个角色。等到项目推进一半,才发现功能逻辑混乱、需求来回改动、做出来的产品和自己预想完全不符,返工不断、…

2026/10/15 0:47:40 阅读更多 →
QML与C++交互:上下文属性、类型注册与单例详解

QML与C++交互:上下文属性、类型注册与单例详解

1. 先想清楚一个问题:QML和C为什么要互相打交道接触Qt QML开发的人应该都有这种感觉:QML写界面确实快,声明式语法、属性绑定、动画、状态切换,一套组合拳下来,界面代码量比传统Widget写法少一大截。但界面做得再漂亮&a…

2026/10/15 0:47:40 阅读更多 →
SpringBoot文件上传临时目录失效异常解析与解决方案

SpringBoot文件上传临时目录失效异常解析与解决方案

1. 问题背景与核心需求拆解文件上传这个功能,几乎每个后端项目都会碰到。不管是用户头像、Excel批量导入、还是附件管理,只要涉及文件从客户端传到服务端,就绕不开multipart/form-data这套机制。SpringBoot 默认集成了 StandardServletMultip…

2026/10/15 0:47:40 阅读更多 →
区间DP解“拿糖果”:从贪心误区到最优策略实战解析

区间DP解“拿糖果”:从贪心误区到最优策略实战解析

说实话,我第一次看到“拿糖果”这道题的时候,差点把它当成热身题给秒了。题面本身非常朴素:有 n 堆糖果排成一行,每堆糖果数量用一个整数数组表示,两个人轮流从最左端或最右端拿走一整堆,直到全部取完&…

2026/10/15 0:46:40 阅读更多 →

日新闻

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

1. 为什么选择容器化方式部署 LoRa 网络服务LoRa 物联网项目落地时,网络服务器是整个链路的核心枢纽。它负责接收网关上报的数据包、完成去重与解密、再把有效载荷分发给上层应用。早期大家习惯把网络服务器直接装在物理机上,依赖一堆系统库和特定版本的…

2026/10/15 0:00:46 阅读更多 →
共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

1. 共享推理服务里,扩缩容到底难在哪做过大模型推理服务部署的人,大概都经历过这样的场景:一个团队共用一套推理集群,A 业务跑的是 7B 的小模型,B 业务跑的是 72B 的大模型,C 业务白天流量高、晚上几乎归零…

2026/10/15 0:00:46 阅读更多 →
Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

1. 引子:一次内核恐慌引发的追查先从一个真实场景说起。某次我给一台老旧的嵌入式设备折腾系统裁减,为了把启动时间压进两秒以内,我手贱地把一串自认为“没用”的 systemd 服务给 disable 了,其中就包括systemd-remount-fs.servic…

2026/10/15 0:00:46 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/10/14 3:29: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/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/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练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/14 7:53:34 阅读更多 →