AI Agent操作调试器:REA工作流与x64dbg-MCP实战解析
最近我把 REA 这套工作流和 x64dbg-MCP 接在了一起让 AI Agent 能直接操作反编译器和调试器。整个逆向工程的玩法变了——不再是人肉盯汇编、手动下断点而是让大模型自己执行调试指令、读内存、判断路径。第一版跑通的时候我整个人是有点兴奋的毕竟从“AI 给我建议、我来操作”到“AI 自己操作、我来审核”这一步跨得不小。这篇东西写给三类人安全研究员、恶意样本分析师以及在做 AI Agent 应用开发的工程师。如果你正在纠结“大模型到底能不能碰调试器”这篇应该能给你一个比较完整的答案。1. 为什么逆向工程需要 Agent 化1.1 传统逆向的痛点大多数时间不是分析烧脑而是操作重复做过逆向的人都有这种体验真正让人消耗精力的往往不是“看不懂汇编”而是“反复执行同一套操作”。拿到一个未知样本后标准流程基本是载入调试器、在入口点下断、运行、看导入表、定位可疑 API、在GetProcAddress附近下断、跟调用栈、改内存、恢复运行、再继续。一轮分析下来真正需要人脑做判断的时间可能只占三分之一剩下三分之二都在重复机械操作。更麻烦的是这些操作非常依赖上下文切换。你在 x64dbg 里看着反汇编窗口脑子里同时还要记着“刚才那个字符串是哪条指令引用的”“这个寄存器是从哪个模块来的”“上一步的假设到底验证了没有”。一旦中间被打断重连一遍状态成本很高。我试过用脚本把常见动作写成批处理但脚本的问题在于“不会随机应变”。样本一旦加了壳、混淆了控制流脚本的固定逻辑就失效了。而通用大模型虽然有“随机应变”的能力但它只能看文本摸不到调试器。于是瓶颈就变成了分析能力在模型那边操作能力在我手里两边对不上。1.2 MCP 和 x64dbg-MCP 是什么AI Agent 和调试器之间的标准转接口MCP 全称是 Model Context Protocol简单说就是一套让 AI 模型调用外部工具的标准协议。你可以把它类比成一个万能插座模型只要学会了“插这个插座”就能通过同一套接口控制各种工具不必为每个工具单独学一套 API 格式。x64dbg-MCP 就是把这个插座接到了 x64dbg 上。它把调试器里的常用命令封装成一个个“工具”比如获取寄存器、设置断点、单步执行、读取内存、搜索字符串引用等。Agent 在分析过程中不再需要人去复制地址、点击按钮它自己就能通过 MCP Server 把命令发给 x64dbg拿到结果后再决定下一步做什么。我把这套完整的工作流简称为 REARead读取反汇编、字符串、引用 → Execute下断点、单步、修改寄存器 → Assess对比假设、验证结果。这三个步骤循环起来就是 Agent 在调试器里自主分析的最基本形态。这套东西适合谁如果你是做样本分析的可以让 Agent 自动跑完 80% 的常规路径如果你搞 CTF可以拿它来做自动化解题脚本如果你在做 AI 应用开发x64dbg-MCP 也是一个很典型的“让 Agent 操作专业工具”的样板工程。2. 整体架构REA 和 x64dbg-MCP 是怎么连起来的2.1 三层分工Agent、MCP Server、x64dbg 插件整套系统在我的实现里分了三层每层只干一件事。这个分层方式不是拍脑袋而是为了出问题时能最快定位。层级职责关键技术点Agent 编排层拆解任务、调用工具、维护上下文支持 MCP 协议的客户端、系统提示词MCP Server定义工具列表、校验参数、格式化返回结果MCP SDK、Python 服务x64dbg 插件接收命令、调用调试器 API、返回执行结果x64dbg 插件 SDK、Socket 通信Agent 编排层是最上层的“大脑”它负责把任务拆成可执行的小步骤。比如“找 OEP”这个大目标会被拆成“读取当前栈顶指针” “下一个内存断点” “执行到返回” “单步一次”这样一系列小动作。MCP Server 是连接层它把 Agent 发来的结构化工具调用转换成字符串命令再通过网络发给 x64dbg 插件。插件是最底层的手脚它在 x64dbg 进程内运行能直接调用调试器 API。2.2 一次典型请求的完整链路为了让你对系统运行有一个直观认识我描述一次完整请求Agent 分析到一半决定“我需要看看当前寄存器状态”。它会向 MCP Server 发送一个工具调用请求比如get_registers。MCP Server 收到后把这个请求包装成一条简单的文本指令GetRegisters通过 TCP 发送给 x64dbg 插件。插件读取当前线程的寄存器值拼成 JSON 格式的字符串返回给 MCP Server。MCP Server 再把这段文本作为工具结果交回给 Agent。从 Agent 发出请求到它收到结果通常只需要几十毫秒。真正费时间的反而是 Agent 自己的思考过程也就是大模型在推理“下一步该调什么工具”。这也是为什么这套系统不能单纯追求指令执行速度更要把每一步返回的数据组织得足够清晰减少模型反复试错。2.3 为什么选 x64dbg 而不是其他调试器选 x64dbg 不是因为它最完美而是因为它最适合做 MCP 桥接。第一x64dbg 是开源的插件 SDK 文档清楚我可以快速写一个插件在调试器进程内跑起来。第二它对 x86 和 x64 都支持日常样本分析几乎都用得上。第三它自带大量命令行命令很多操作直接用DbgCmdExec就能执行不需要对每条指令单独写 API 封装。第四相比那些闭源调试器x64dbg 的命令接口更稳定不会被某个版本更新打乱。我对比过几款主流调试器之后最终还是回到 x64dbg核心原因是“改造自由度足够高”。做 Agent 化调试器不是简单给调试器加个命令行而是要在它内部构造一个能收发指令的服务端。插件机制越开放这套东西做起来越顺。3. 实操从零搭一套 Agent 逆向助手3.1 环境准备需要哪些组件这里我给出一个最小可用环境的组件清单。因为 MCP 生态更新很快我不写死版本号但思路是通用的。组件作用推荐配置Agent 客户端负责对话和工具调用支持 MCP 协议的客户端即可x64dbg核心调试器最新稳定版x32/x64 都要准备Python运行 MCP Server3.10 及以上MCP SDK快速暴露工具接口官方 Python SDKx64dbg 插件桥接调试器和 MCP Server自研或社区开源实现听起来组件不少但实际上真正需要自己动手的只有“x64dbg 插件”和“MCP Server 的工具函数列表”。其他部分都是现成的。3.2 MCP Server 注册工具和插件桥接逻辑我的 MCP Server 是用 Python 写的核心思路是把每个调试操作封装成一个mcp.tool()函数。下面是一个极简示例。from mcp.server.fastmcp import FastMCP import socket mcp FastMCP(x64dbg-mcp) def x64dbg_exec(cmd: str) - str: 把指令发给 x64dbg 插件返回原始结果。 with socket.create_connection((127.0.0.1, 9600), timeout5) as s: s.sendall(cmd.encode(utf-8)) return s.recv(65536).decode(utf-8) mcp.tool() def get_registers() - str: 获取当前线程寄存器值返回 JSON 字符串。 return x64dbg_exec(GetRegisters) mcp.tool() def set_breakpoint(address: str) - str: 在指定地址下断点。 return x64dbg_exec(fSetBreakpoint {address}) if __name__ __main__: mcp.run()这里要注意一点MCP Server 本身不直接操作调试器它只是把文本指令转发给插件。插件侧的逻辑更简单它只需要在 x64dbg 里创建一个 TCP 服务端接收一行命令然后用 x64dbg 的DbgCmdExecDirect去执行并返回结果。伪代码大概是# 这是 x64dbg 插件内部的逻辑示例 def on_tcp_command(cmd): if cmd.startswith(SetBreakpoint): addr cmd.split()[1] DbgCmdExecDirect(fbp {addr}) return OK elif cmd GetRegisters: regs { eip: GetRegValue(eip), eax: GetRegValue(eax), stack: ReadStack(4) } return json.dumps(regs)不需要给每个操作都写一套 x64dbg API 封装能用命令字符串表达的就直接用命令字符串能省很多事。3.3 让 Agent 自动分析一个样本完整交互演示我拿一个加了简单压缩壳的演示程序模拟项目 X来走一遍流程。任务设定是找到程序的 OEP并且在入口点附近识别关键 API 调用。Agent 的第一步通常是收集信息。它调用list_modules拿到加载模块列表发现程序的入口模块地址范围在0x00401000 - 0x00405000左右。然后它调用get_current_entrypoint得到程序入口点0x00401234。接下来 Agent 会自己分析这个入口点看起来是在壳的引导代码里真正的主模块代码还没解压出来。它决定用 ESP 定律来找 OEP。Agent 先调用get_registers读取当前栈顶值esp0x0012FF80然后在esp 4对应的地址上下一个断点。Agent 的下一条指令是run也就是让程序跑起来。x64dbg 会在断点处停下来。Agent 再次读取寄存器发现当前地址已经落在主模块代码段里。它继续执行了几次单步然后调用get_disassembly查看当前位置附近的指令看到典型的push ebp; mov ebp, esp; sub esp, ...函数序言结构。到这里Agent 得出结论这个位置就是 OEP。整个过程它没有问过我一次全部是自己决定下一步要调什么工具。我在旁边只做了一件事审核它最终给出的结论和分析路径是否合理。4. 核心实现细节让 Agent 真正看懂反汇编4.1 不要一股脑喂反汇编函数摘要优先很多人第一次做 Agent 化工具时最容易犯的错是把一大堆反汇编代码直接丢给模型。这在样本函数只有几十条指令时没问题但真实程序里一个函数动辄几百上千条指令。你把 2000 条指令堆给模型上下文窗口直接爆掉模型开始胡言乱语。我的做法是给 Agent 提供两层接口。第一层是get_function_summary(address)返回函数边界、指令条数、调用了哪些子函数、被哪些地方引用、里面出现了哪些字符串。这一层信息量很紧凑适合让 Agent 建立全局认知。第二层才是get_disassembly(start, count)只在 Agent 需要看具体指令语义时才调用。比如我上面的演示里Agent 判断“这里是不是 OEP”首先看的是函数摘要确认当前位置是一个函数入口然后才取少量指令看函数序言。这样的交互方式符合人做逆向时的习惯也最省 token。4.2 断点管理Agent 下断点之前必须设置上限断点是动态分析里的核心资源但也是最容易翻车的地方。Agent 如果每发现一个可疑地址就下一个断点几十个断点挂在那里调试器会明显变卡甚至失去响应。我加了两道保险。第一道是断点总数限制默认最多同时存在 8 个断点。Agent 每次设置新断点前可以查询现有断点列表如果数量超限它会收到提示必须先清理旧断点。第二道是断点 ID 机制每个断点设置后返回唯一 IDAgent 可以精确删除某个断点而不是用clear_all一股脑清光。断点策略还涉及软断点和硬件断点的选择。分析普通代码我会让 Agent 优先用软断点只有遇到反调试或者代码自校验时才切换到硬件断点。这需要 MCP Server 在工具参数里暴露type字段引导模型根据场景选择。这些细节在文档里不会写但实际调几次就会发现没有断点上限的 Agent就像刚到新环境的小孩什么都想摸一下结果就是系统被它折腾崩溃。4.3 寄存器与内存数据要带语义如果直接给 Agent 一个寄存器值eax0x7C810000它很难快速判断这是什么。但如果返回eaxntdll.dll0xA000Agent 就能立刻意识到这是系统 DLL 的地址不是在用户模块里分析重心会自然转移。所以我的 MCP Server 在做get_registers时会自动做符号化处理把地址解析成“模块名 偏移”的格式解析不了才返回原始数字。同样读取栈顶数据时我不只返回 4 个字节的十六进制而是额外标注每个值是否指向某个模块、是否是返回地址。这个实现本身不难x64dbg 里有符号解析 API插件侧调用一下就行。但对 Agent 的分析质量影响非常大。模型擅长处理“这个地址指向LoadLibraryA的导入项”这种语义化信息不擅长自己把0x7C801A5B换算成模块偏移。4.4 引用搜索和字符串提取的去重与排序另一个高频操作是找交叉引用。比如 Agent 想知道“哪里调用了这个关键 API”它会调用search_references(address)。这个工具返回的是一个引用列表每条包含指令地址、指令内容、所属函数摘要。如果不做限制这个列表可能返回几百条记录。我的工具会默认截断到 50 条并按地址排序再标注每条引用所属函数的名字。这样 Agent 可以快速聚焦到最可疑的函数而不是在一堆地址里大海捞针。字符串搜索同理。x64dbg 里有搜索字符串引用的命令但返回结果经常包含重复项和无意义数据。我会在 MCP Server 侧做一次聚合把字符串按内容分组引用次数多的排前面。Agent 看到“字符串error被 12 处代码引用”和看到“地址0x405000是字符串”两种信息密度完全不一样。5. 常见问题与排查技巧实录5.1 MCP 连接超时或工具未响应我首次跑通时遇到最多的就是超时。表现是 Agent 发起工具调用后一直转圈最后报错。排查思路按顺序来先确认 x64dbg 插件有没有起来Socket 服务有没有监听端口再用命令行客户端往端口发一条GetRegisters看能不能拿到结果最后检查 MCP Server 日志看请求到底卡在哪一环。这里有一个很容易被忽略的点Agent 客户端本身会设置工具调用的超时时间默认经常只有 10 秒。如果 Agent 执行了一个比较重的操作比如大范围内存搜索插件处理时间可能超过 10 秒这时不是你的实现有问题而是超时配置太短。我后面把 MCP 工具超时调到了 120 秒再把内存搜索类的操作做成异步通知问题就消失了。5.2 调试器崩溃或目标进程被杀Agent 对调试器的破坏力远超普通人。它会尝试在各种奇怪的地址下断点、往只读内存里写数据、在系统 DLL 中执行代码。我踩过一次很深的坑Agent 在某个系统库地址上写了一个字节直接导致整个调试器进程崩溃分析到一半的数据全丢了。从那以后所有“写”操作都加了白名单和备份机制。MCP 工具write_memory必须带module参数只有用户模块地址才允许写入写入前插件自动保存原始字节写入后返回备份地址。Agent 后续如果需要恢复可以调用restore_memory(backup_id)。破坏性操作上我的原则是Agent 可以自由读写操作必须留后路。这不是限制 Agent 能力而是让它在试错过程中不至于把调试器搞死。5.3 Agent 分析和人工判断差异大Agent 经常给出“看起来很专业但实际是错的”结论。有一次它分析一个函数调用认为某个参数是文件路径结果继续分析时读了一个完全不存在的文件导致流程跑偏。排查之后发现问题不在模型本身而在工具返回的数据缺少一个关键字段调用约定。Agent 不知道这个函数是cdecl、stdcall还是fastcall自然无法正确判断参数位置。我在get_function_summary里增加了调用约定识别把参数个数、出入栈方式都结构化返回这个问题立刻改善。这件事给我的经验是与其让 Agent “更聪明”不如让工具“更具体”。模型分析出错时先看是不是工具没有给足决策信息再考虑要不要修改提示词。5.4 反调试与循环陷阱遇到反调试程序时Agent 的表现比较头大。它可能刚下完断点目标进程就检测到调试器然后退出。我的处理方式是在 MCP Server 里增加一个apply_anti_debug_bypass工具它会自动在常用反调试 API 上下断点并强制返回安全值。比如IsDebuggerPresent这类检测函数直接让它返回 0Agent 就能继续分析真实逻辑。循环陷阱也是常见问题。Agent 可能会在某个无意义的路径上反复单步自己却意识不到。我给执行类工具加了步数预算默认单步最多 5000 次。超过次数就自动停止并返回“执行次数已达上限请考虑改变策略”。这个限制看起来粗暴但比让 Agent 无限跑下去要安全得多。6. 我现在的一些体会和接下来打算做的6.1 一个让我印象深刻的翻车现场有一次我让 Agent 分析一个带反调试的样本它刚拿到入口点就一口气设置了十几个硬件断点结果 x64dbg 直接卡死。修复后我给整套系统加了三道保险工具调用超时、断点总数限制、写内存前备份。从那以后Agent 再怎么折腾崩溃率都明显降下来了。这个经历让我意识到Agent 化调试器最大的难点不是接口封装而是如何设计一套“安全护栏”让模型有足够的自由探索空间同时又不会把调试验证环境搞崩。护栏太紧Agent 什么都做不了护栏太松系统随时崩溃。这个度需要在实际使用里不断拿捏。6.2 我认为 Agent 逆向还值得挖的方向现在我已经把 x64dbg-MCP 用作日常样本分析的主力工具但还有很多想法还没来得及落地。一个是批量化分析。x64dbg 单进程调试的限制还在但可以做一个调度层让 Agent 按队列一批一批处理样本自动提取指标特征、生成行为报告。另一个方向是做模糊测试辅助让 Agent 根据运行覆盖率决定下一轮的输入变异策略比单纯随机变异更聪明。还有一个更实用的方向不同调试器之间的 MCP 工具接口标准化。现在这个插件只适配 x64dbg但 MCP 协议层本身是通用的。如果以后有更多调试器也暴露 MCP 接口那 Agent 就可以在同一个任务里无缝切换各种分析工具真正成为跨平台的分析底座。我现在已经很习惯这种工作方式先让 Agent 跑一遍常规路径我只需要在关键节点介入看一眼。逆向工程走到这一步至少对我自己来说Agent 时代确实已经来了。

相关新闻

梯度下降工程实录:从原理到GPU显存的全链路调优

梯度下降工程实录:从原理到GPU显存的全链路调优

1. 这不是数学课,是机器学习的“方向盘”校准术你刚跑完一个线性回归模型,loss曲线像坐过山车——前10轮狂跌,中间30轮在0.8附近横跳,最后20轮几乎纹丝不动。你调了学习率、换了初始化方式、加了正则项,结果还是卡在局…

2026/10/14 10:27:44 阅读更多 →
技术学习策略:如何高效构建核心竞争力

技术学习策略:如何高效构建核心竞争力

1. 技术学习的现实困境 最近几年有个现象特别有意思:技术圈子里隔三差五就会冒出个新框架、新工具,搞得不少同行特别焦虑。我身边就有这样的朋友,天天追着学新技术,Vue3刚上手就急着学React18,Kubernetes还没搞明白又去…

2026/10/14 10:27:44 阅读更多 →
openrig 实战:用 Node.js 与 tmux 统一管理 Claude Code 和 Codex

openrig 实战:用 Node.js 与 tmux 统一管理 Claude Code 和 Codex

1. 从“openrig”这个名字说起:它到底想解决什么问题第一次看到“openrig”这个词,我脑子里蹦出来的不是某个具体产品,而是一种很典型的开发者工具命名思路——open 代表开放、可扩展,rig 在英文里有“装配、搭建、成套设备”的意…

2026/10/14 10:26:38 阅读更多 →

最新新闻

Vue3 零基础每日笔记(088·完结):从零到一——一个完整 Vue3 项目的成长复盘

Vue3 零基础每日笔记(088·完结):从零到一——一个完整 Vue3 项目的成长复盘

一、前言 第 88 篇,完结篇。回望 001 的环境搭建,到现在已经走完一条完整路线:环境 → 响应式 → 组件 → 组合式函数 → TS → 路由 → 状态 → 网络 → Element Plus → 性能 → 生态 → 部署。本篇把 88 篇收拢成一张技术地图、一份项目结…

2026/10/14 14:48:11 阅读更多 →
ClickStack 2026年1月版:实时协作与AI开发增强解析

ClickStack 2026年1月版:实时协作与AI开发增强解析

1. ClickStack 2026年1月版核心更新解析作为持续跟踪ClickStack技术栈的开发者,刚体验完2026年1月版本更新后,必须说这次迭代在性能优化和开发体验上带来了显著提升。这个面向全栈开发者的低代码平台,本月重点强化了实时协作、AI辅助和云原生…

2026/10/14 14:48:11 阅读更多 →
MATLAB工具箱选型与避坑:从安装授权到路径管理全指南

MATLAB工具箱选型与避坑:从安装授权到路径管理全指南

简介:一套汇总的MATLAB工具箱资源包,面向需要快速搭建算法环境的工程师与科研人员,覆盖图论最短路、最小生成树、线性规划与二次规划等典型数值计算方向,可作为二次开发、教学演示与实验验证的基础函数库。整个RAR压缩包内共计228…

2026/10/14 14:48:11 阅读更多 →
PHP 7.2.3树型论坛+采集顶帖机部署实战

PHP 7.2.3树型论坛+采集顶帖机部署实战

简介:一套基于PHP 7.2.3的树型论坛源码包,内置采集顶帖机,面向需要快速搭建社区论坛并实现内容自动更新的站长、个人开发者或运维人员。全包共计一千四百九十七个文件,压缩后大小约八点五五兆,以PHP、超文本标记语言、…

2026/10/14 14:48:11 阅读更多 →
AtomCode Dockerfile 评审规则全解析:从安全检查到层体积与运行时信号的正确实践

AtomCode Dockerfile 评审规则全解析:从安全检查到层体积与运行时信号的正确实践

人工智能AI Agent代码智能体自主智能体MCP ClientsCLI 【免费下载链接】atomcode Claude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source…

2026/10/14 14:48:11 阅读更多 →
Agent-Reach:构建Agent调度与编排的统一能力连接层

Agent-Reach:构建Agent调度与编排的统一能力连接层

"Agent-Reach"这个名字,最开始并不是我们拍脑袋起的。团队把十几个Agent接入生产环境之后,我发现自己面临一个特别尴尬的境地:每个Agent单独拉出来都能跑通Demo,但一旦组合起来,没有人能说清楚——系统里今天…

2026/10/14 14:47:08 阅读更多 →

日新闻

AnyPS5通用适配层设计:兼容性与性能的工程取舍

AnyPS5通用适配层设计:兼容性与性能的工程取舍

1. 从"AnyPS5"这个名字说起:它到底想解决什么问题第一次看到"AnyPS5"这个标题,我脑子里冒出来的第一个念头是:这大概率是一个围绕"跨平台运行"或者"通用适配"做文章的项目。名字里的"Any"…

2026/10/14 0:00:41 阅读更多 →
Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

1. 项目概述:Flutter跨平台二手交易应用开发作为一名长期从事移动应用开发的工程师,我最近完成了一个基于Flutter框架的二手物品交易平台项目。这个项目最吸引我的地方在于它完美结合了Flutter的跨平台优势与HarmonyOS的生态特性,实现了"…

2026/10/14 0:00:41 阅读更多 →
DFS算法解决飞机降落调度问题实战

DFS算法解决飞机降落调度问题实战

1. 项目背景与核心思路飞机降落问题是一个经典的调度优化场景,也是算法竞赛和面试中的高频题目。这个题目要求我们合理安排多架飞机的降落顺序和时间,确保所有飞机都能安全着陆而不发生冲突。在实际航空管制中,这类问题直接关系到飞行安全和机…

2026/10/14 0:00:41 阅读更多 →

周新闻

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

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

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

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

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

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

2026/10/13 16:22:04 阅读更多 →
影刀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/13 22:01:27 阅读更多 →
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/13 14:57:39 阅读更多 →
黑夜航拍船只数据集训练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 阅读更多 →