把CUDA-Q量子程序接入Amazon Bedrock AgentCore的实践指南
把 CUDA-Q 的量子程序挂进 Amazon Bedrock AgentCore本质上是在做一件事让大模型 Agent 把自然语言问题翻译成量子计算的 API 调用再把量子程序的运行结果翻译回自然语言。很多人听到“量子计算 Agent”的第一反应是炫技但真跑通之后你会发现这套组合解决的不是前沿研究问题而是落地门槛问题终端用户不该去写 cudaq.kernel大模型也不该在对话里凭空生成量子线路代码两边中间需要一个受控的、可审计的工具层。这篇文章来自我自己近期做的一个 POC 集成测试我尽量把从架构选型、CUDA-Q 服务封装、AgentCore 工具注册到线上排查的完整链路拆开讲。适合两类人看一类是想把量子算法能力开放给业务方使用的平台工程师另一类是已经在 Bedrock 生态里做 Agent 工具集成、正好想接量子后端的开发者。1. 为什么是 CUDA-Q AgentCore集成思路拆解1.1 这套组合解决的真实问题先说实话量子计算本身到现在还是个专业度极高的领域算法、线路编译、采样统计、误差处理每一层都有门槛。CUDA-Q 的价值在于它把量子编程的门槛往下压了一截支持用 Python 写量子线路底层可以跑在 GPU 模拟器上甚至能跟 cuQuantum 这类加速库配合把中小规模线路的模拟速度提上去。但即便有了 CUDA-Q一个业务方想算一个分子的基态能量他依然需要一个懂量子计算的工程师帮他写线路、调参、读结果。AgentCore 解决的是另一头的题它让大模型具备多步推理、状态记忆和工具编排的能力。Agent 可以理解“帮我算一下 H2 分子的基态能量”这种模糊意图然后自动决定调用哪个工具、传什么参数、怎么解读返回值。把 CUDA-Q 封装成 AgentCore 可以注册的工具之后用户面对的不再是 Python 脚本和量子线路而是一个能听懂人话、又能执行专业计算的中间层。这里有个关键判断为什么不直接让大模型写 cudaq 代码一句话不可控。模型生成的代码大概率有语法错误更危险的是它可能写出一条语义上完全错误但语法合法的线路比如把哈密顿量映射错最后返回一个看似合理实则错误的结果。通过 AgentCore 工具调用你能把量子程序固化成测试过的版本参数枚举也限定在 schema 里模型只能做“选择”和“传参”不能自由发挥。1.2 架构选型与替代方案对比我最初考虑过三条技术路线最后选了 CUDA-Q AgentCore这里分享下取舍过程。方案优势劣势适用场景直接用 Bedrock 的 Function Calling CUDA-Q路径最短不需要额外组件没有多轮状态管理工具编排逻辑要自己写复杂任务容易断快速验证、单个量子工具LangChain 或自研编排框架 CUDA-Q灵活方便自定义思维链维护成本高认证、记忆、限流都要自己做稳定性靠自身已有自研 Agent 框架的团队AgentCore 独立 CUDA-Q 工具服务编排托管化工具无状态可扩展职责清晰需要理解 AgentCore 工具协议有一层适配成本生产级接入、多个量子工具并存我最后选了第三条。原因很实际AgentCore 把记忆、上下文管理和多工具编排这些通用能力托管了我可以把精力集中在“量子计算服务本身”这一件事上。CUDA-Q 服务以独立微服务部署既可以给 Agent 用以后也可能给其他系统直接调 API复用性更好。1.3 关键设计决策真正动手前有三个设计决策需要先定下来它们直接影响后面能不能顺利上线。第一个是异步优先。量子模拟不是毫秒级操作VQE 这类变分算法要迭代几十轮每轮还要做采样统计跑一两分钟很常见。Agent 工具调用如果同步等待很容易触发网关超时。所以我把接口设计成“提交任务返回 task_id 查询任务状态”两个接口Agent 先提交然后轮询结果拿到结果后再生成最终回答。第二个是无状态服务。CUDA-Q 程序本身是有状态的但封装成服务时必须做成无状态任务参数全部放在请求体里。这样服务才能横向扩展也方便后续接消息队列。我在 POC 里直接用 FastAPI 的 BackgroundTasks 演示但生产环境建议换成独立任务队列不能让一个量子任务把 GPU 实例的进程占死。第三个是结果结构化。工具返回给 Agent 的数据必须是结构化 JSON不能是自由文本。模型对自由文本的理解不稳定但结构化的 energy、variance、status 字段它理解起来准确得多。后面 3.2 节我会给出具体的 JSON 结构。2. 核心组件细节与接口衔接2.1 CUDA-Q 编程模型的三个关键点要封装 CUDA-Q得先懂它最常用的三层能力。第一层是量子线路构建。CUDA-Q 用cudaq.kernel装饰器定义一个量子内核函数里面通过量子门操作构建线路。下面这个 Bell 态是最简单的验证脚本import cudaq cudaq.kernel def bell_state(): q cudaq.qvector(2) h(q[0]) x.ctrl(q[0], q[1]) counts cudaq.sample(bell_state) print(counts)跑通这个脚本输出类似{ 00: 512, 11: 512 }的结果说明你的 CUDA-Q 环境和底层模拟器都正常。这个脚本不要急着删后面做服务预热会用到。第二层是 GPU 模拟加速。CUDA-Q 背后关联的是 cuQuantum 生态在多 GPU 环境下可以做分布式采样。这层能力在真实业务场景里很关键线路宽度一大CPU 模拟直接卡死GPU 模拟还能扛一扛。但注意多 GPU 分布式的配置比单卡复杂得多环境变量、网络通信、节点发现都要处理。POC 阶段用单卡就够。第三层是量子和经典的混合编程。这是 CUDA-Q 区别于很多量子框架的地方。VQE 这类变分算法本质上是在经典和量子之间来回切换量子部分做线路采样得到能量期望值经典部分用优化器更新参数然后带着新参数再跑一次量子线路。CUDA-Q 允许你在同一个程序里自由混写经典逻辑和量子逻辑这让 VQE 的实现非常顺。2.2 AgentCore 的扩展方式是工具协议AgentCore 接入外部能力的基本方式是“工具”这是 Agent 类产品一贯的设计。一个工具的本质是一份 OpenAPI 风格的 schema 加一个可被调用的 HTTP 端点。Agent 在推理时看到这份 schema判断当前用户的意图是否需要调用工具如果需要就从意图里抽取参数组装成一次真实的 API 调用。这里有一个很多人会忽略的关键点AgentCore 的编排模型不是靠代码逻辑决定调用哪个工具的它靠的是工具描述和参数 schema。也就是说你给工具起什么名字、写什么描述、定义的参数有哪些、每个参数怎么解释直接决定模型会不会用、用得好不好。我自己踩过的一个坑是初始版本工具描述写的是“Quantum computation tool”结果 Agent 经常把经典计算问题也往这个工具上带。改成“Use this tool ONLY when the user asks about molecular ground state energies, quantum optimization, or quantum circuit sampling. For any classical calculation, do not call this tool.” 之后误调用率明显下降。工具描述本质上是你写给模型看的“使用说明书”写得越明确模型判断越准。2.3 两边的协议差异与适配层CUDA-Q 是运行在 GPU 环境里的 Python 程序AgentCore 需要的是一个符合工具协议的外部 HTTP 服务。这两者之间的适配层就是你自己的业务服务。我在 POC 里用 FastAPI 写了一个薄薄的适配服务做了三件事把 Agent 传来的自然语言级参数映射成 CUDA-Q 程序能识别的算法参数。比如 Agent 传来algorithmvqe和moleculeH2服务内部要把这个字符串解析成对应的费米子哈密顿量、初始参数向量、优化器配置。把 CUDA-Q 的长耗时任务改成异步生命周期。前面说过提交任务立刻返回 task_id计算完成后结果写入任务存储查询接口按 task_id 返回状态。这个模式跟常见的异步机器学习推理服务完全一致。把计算用的 GPU 资源做并发控制。一个 GPU 实例同时跑太多量子任务显存就爆了。我在服务里加了一个简单的信号量限制同时运行的量子任务数量超出部分排队等待。协议差异的核心其实只有一个CUDA-Q 是交互式的Agent 工具是请求-响应式的。适配层就是那座桥。3. 实操从量子服务到 Agent 工具3.1 环境准备与验证先准备一台带 GPU 的实例规格按需求来。POC 阶段我用的是一张 T4 级别的卡就够跑小分子体系如果后面要模拟更宽的线路建议直接上一个显存更大的实例。实例镜像建议选择带 CUDA 和 cuQuantum 的基础镜像可以省掉很多底层环境问题。基础环境装好后安装 Python 依赖pip install cudaq pip install fastapi uvicorn pydantic装完先不急着写服务用前面那个 Bell 态脚本验证环境。能正常输出 counts说明 CUDA-Q 核心和 GPU 模拟器都能跑。如果报错八成是底层 CUDA 库没配对或者 cuQuantum 没装好。这里建议直接检查基础镜像版本和 CUDA driver 版本是否匹配。3.2 封装一个可被 Agent 调用的量子服务我的服务目录结构大概是这样的quantum-service/ ├── main.py # FastAPI 应用 ├── quantum_runner.py # CUDA-Q 程序封装 ├── schemas.py # 请求/响应数据结构 └── task_store.py # 任务状态存储核心代码不复杂main.py 长这样from fastapi import FastAPI, BackgroundTasks from pydantic import BaseModel import uuid import quantum_runner app FastAPI() task_store {} class QuantumRequest(BaseModel): algorithm: str vqe # vqe / qaoa / sample molecule: str H2 # 分子标识 iterations: int 50 # 最大迭代次数 class TaskResponse(BaseModel): task_id: str status: str # running / done / failed result: dict | None None app.post(/quantum/submit, response_modelTaskResponse) async def submit(req: QuantumRequest, background_tasks: BackgroundTasks): task_id str(uuid.uuid4()) task_store[task_id] {status: running, result: None} background_tasks.add_task(run_quantum_task, task_id, req) return {task_id: task_id, status: running, result: None} app.get(/quantum/status/{task_id}, response_modelTaskResponse) async def get_status(task_id: str): return {task_id: task_id, **task_store.get(task_id, {status: not_found, result: None})} def run_quantum_task(task_id: str, req: QuantumRequest): try: result quantum_runner.run(req.algorithm, req.molecule, req.iterations) task_store[task_id] {status: done, result: result} except Exception as e: task_store[task_id] {status: failed, result: {error: str(e)}}quantum_runner.run 内部会根据 algorithm 分发到不同的 CUDA-Q 程序。以 VQE 为例核心逻辑是构造分子哈密顿量、初始化参数、循环迭代量子线路采样拿到能量期望值经典优化器更新参数直到收敛。每个算法都要用 CUDA-Q 写出独立的内核函数这部分是整个服务里唯一“硬核”的地方没有捷径可走。服务启动后先手动测试curl -X POST http://localhost:8000/quantum/submit \ -H Content-Type: application/json \ -d {algorithm: vqe, molecule: H2, iterations: 50}拿到 task_id 后再轮询/quantum/status/{task_id}状态变成 done 后返回的 result 类似{ energy: -1.136847, variance: 8.5e-05, iterations: 32, unit: Hartree }这个结构就是 Agent 最终用来生成回答的数据。注意把单位放进 JSON不然 Agent 可能会自己猜猜错的概率不低。3.3 在 AgentCore 里注册量子工具服务跑起来之后把它注册成 AgentCore 可调用的工具。通用做法是创建一个 action group 或工具定义提供一份 OpenAPI schema。我给工具写的 schema 片段如下openapi: 3.0.0 info: title: Quantum Compute Service version: 1.0.0 paths: /quantum/submit: post: operationId: submitQuantumTask summary: 提交一个量子计算任务 parameters: - name: algorithm in: query required: true schema: type: string enum: [vqe, qaoa, sample] description: 使用的量子算法类型 - name: molecule in: query required: true schema: type: string description: 分子标识例如 H2 或 LiH - name: iterations in: query required: false schema: type: integer default: 50 description: VQE 最大迭代次数 /quantum/status/{task_id}: get: operationId: getQuantumTaskStatus summary: 查询量子任务状态 parameters: - name: task_id in: path required: true schema: type: stringschema 里的 description 字段一定要认真写。Agent 不会读你的业务文档它唯一能“理解”工具用途的就是这些描述文本。enum 用来限制算法类型能有效避免模型传一个不存在的算法名进来。注册好之后给工具配一个明确的工具描述我把核心工具的描述写成Use this tool to run quantum chemistry and quantum optimization tasks. This includes computing molecular ground state energies, sampling quantum circuits, and solving combinatorial optimization problems with QAOA.然后就可以在 AgentCore 里建一个会话测试了。3.4 端到端验证我验证时用的是这样一句自然语言用 VQE 算法估算 H2 分子的基态能量。Agent 完整执行链路如下[用户] 用 VQE 算法估算 H2 分子的基态能量 [Agent 推理] 用户意图是量子化学计算调用 submitQuantumTask [工具调用] submitQuantumTask(algorithmvqe, moleculeH2, iterations50) [工具返回] task_id7f3a2c91, statusrunning [Agent 推理] 任务未完成轮询 getQuantumTaskStatus [工具调用] getQuantumTaskStatus(task_id7f3a2c91) [工具返回] energy-1.136847, variance8.5e-05, iterations32 [Agent 最终回答] H2 分子在用 VQE 算法估算下的基态能量约为 -1.136847 Hartree。这个链路里最值得关注的是第二次工具调用任务没有同步返回结果Agent 能根据第一次返回的 status 判断“需要继续查”然后自动发起轮询。这是异步任务设计之所以可行的前提——编排层足够聪明知道什么时候该等、什么时候该查。如果 Agent 在拿到 running 状态后直接给用户说“任务正在执行”体验就差很多。4. 常见问题与排查技巧实录4.1 问题速查表做这个集成我踩了不少坑整理成一张排查表照着定位比自己瞎试快得多。现象可能原因排查和解决Agent 一直不调用量子工具工具描述没有包含意图相关的关键词或者与其他工具描述混淆重写工具描述把“quantum”、“molecular energy”、“VQE”等关键词放进描述里调用一次后超时报错没有用异步设计Agent 在等待同步调用返回改成 submit status 两段式异步接口CUDA-Q 报错找不到 cuQuantum底层 CUDA/cuQuantum 库缺失或版本不匹配换成官方基础镜像确认驱动和库版本一致返回结果 JSON 解析失败工具返回了非 JSON 的日志或异常堆栈在服务入口捕获所有异常统一输出{error: ...}GPU 显存不够任务崩溃并发任务太多或线路过宽服务内加并发信号量限制同时运行的量子任务数量Agent 传错参数或漏传参数schema 里参数描述不清晰模型无法理解在 OpenAPI schema 里给每个参数加 description 和 example结果数值看起来不合理分子数据映射错误或迭代没收敛检查分子哈密顿量构造调大迭代次数把 variance 字段暴露给 Agent 做判断4.2 性能调优与成本控制第一个值得做的优化是预热。CUDA-Q 第一次编译一个 kernel 有固定开销可能好几秒。我在服务启动后先跑一个最小线路做预热后续请求就不用承担编译开销了。这个技巧很小但对首次调用延迟的改善非常明显。第二个是结果缓存。对于同一个分子、同一个算法、同一组参数量子模拟结果是确定的不接真实硬件时。我用分子标识 算法 迭代次数做哈希命中缓存就直接返回不用再占 GPU。在 POC 里命中的请求响应时间从几十秒降到几十毫秒。第三个是并发控制不能省。量子模拟是典型的显存密集型任务不加控制的话三个任务同时跑就能把一个实例的显存打满。我用了一个简单的信号量把并发数限制到 1其他任务排队。排队逻辑不用复杂Agent 本来就会轮询排一会儿队问题不大。真到生产环境建议把任务队列独立出去并考虑多实例横向扩展。4.3 扩展方向与一点个人体会这套集成后续可以延展的空间还挺大。一个是工具协议标准化MCP 现在越来越通用可以考虑把量子服务包装成 MCP server这样不光 AgentCore 能用其他支持 MCP 的 Agent 框架也能直接接。另一个是接真实量子后端CUDA-Q 本身支持对接真实量子硬件服务层不用大改把 runner 里的后端从 GPU 模拟切到真实的量子计算资源即可。再一个是给 Agent 配知识库把分子数据库、算法适用范围这些资料放进去Agent 对参数的猜测会更准用户问“这个分子用 VQE 行不行”时也能给出更可靠的判断。最后说一点个人体会。这个项目做完我最大的感受是Agent 工具集成里真正难的不是把服务跑起来而是理解大模型编排工具的“脾气”。模型不是按代码逻辑执行工具它是按描述文本做语义匹配的。所以工具描述、参数说明、返回结果的结构化程度这些看起来“文案性质”的工作实际决定整个系统好不好用。你把工具描述写清楚了Agent 就像个靠谱的调度员写不清楚再强大的模型也会蒙圈。这个经验做任何 Agent 工具接入都适用不只是量子计算这一特殊场景。

相关新闻

从数组局限性到链表实现:单链表、双链表与循环链表完全解析

从数组局限性到链表实现:单链表、双链表与循环链表完全解析

从数组的局限性理解链表的诞生动机1.1 数组这个“老实人”的三处软肋我第一次接触链表时的反应,和很多初学者一样:数组用得好好的,非要搞个链表出来,这不是自己给自己找麻烦吗?等真正动手写程序、遇到实际业务场景之后…

2026/10/17 11:20:23 阅读更多 →
Mosaico快速上手教程:5分钟安装mosaicod并用Python SDK完成第一次连接

Mosaico快速上手教程:5分钟安装mosaicod并用Python SDK完成第一次连接

【免费下载链接】mosaico Mosaico - The data platform for Physical AI 项目地址: https://gitcode.com/gh_mirrors/mosai/mosaico 点击查看 免费下载 Mosaico 是面向机器人与 Physical AI 的开源数据平台。本教程带你用最快的方式完成 mosaicod 守护进程安装&…

2026/10/17 11:20:23 阅读更多 →
开源引擎OpenClaw:让经典老游戏在现代设备上重生

开源引擎OpenClaw:让经典老游戏在现代设备上重生

1. 先说清楚:OpenClaw到底是个什么东西1.1 “龙虾”这个外号是怎么来的最近怀旧游戏圈又聊起一个叫 OpenClaw 的项目,社区里有人叫它“龙虾”,有人叫它“爪子引擎”。名字听着挺萌,其实一点都不复杂:Claw 这个英文词翻…

2026/10/17 11:19:23 阅读更多 →

最新新闻

低查重AI教材生成工具实战:从查重机制到编写流程全解析

低查重AI教材生成工具实战:从查重机制到编写流程全解析

做教材编写这行久了,谁没被“查重率”三个字折腾过。早年间写教材是纯手工活儿,一个字一个字地抠;后来用AI辅助,效率是上来了,但生成的稿子拿去过查重,经常碰一鼻子灰。今天要聊的,是我最近深度…

2026/10/17 12:09:41 阅读更多 →
AI论文生成工具实用指南:定位、选型与全流程操作

AI论文生成工具实用指南:定位、选型与全流程操作

先聊个实际的:打开任何一个论文相关的论坛或者交流群,都能看到有人在问“AI写论文到底行不行”“哪款工具生成的内容能直接交”。我自己用AI辅助写作至少有两年多,经手修改的论文、报告、课程作业加起来几十篇,可以很负责任地说一…

2026/10/17 12:09:41 阅读更多 →
物理AI落地指南:从具身智能到仿真训练,职场人如何抓住机会

物理AI落地指南:从具身智能到仿真训练,职场人如何抓住机会

物理AI这个词,最近在技术圈里已经被聊烂了,但职场人听到它,往往是一脸茫然:感觉跟自己有点关系,又不知道具体是什么,更不知道该不该着急。我最初接触到这个概念的时候,也是被一堆名词绕得头晕—…

2026/10/17 12:09:41 阅读更多 →
AD域控FSMO角色详解与迁移实战:五大角色职责、转移与抢占

AD域控FSMO角色详解与迁移实战:五大角色职责、转移与抢占

搞IT运维的朋友,尤其是管过域环境的老哥,一定对AD域控里的FSMO角色不陌生。作为Active Directory里五个不能同时由多台域控“商量着来”的特殊角色,它们就像是公司里审批流程必须经手的几把专用公章,谁拿着哪把章、这章现在放哪儿…

2026/10/17 12:09:41 阅读更多 →
React测试框架选型指南:从Jest到Vitest,组件测试的工程化落地

React测试框架选型指南:从Jest到Vitest,组件测试的工程化落地

1. 为什么React测试的选型会决定项目体验先说个我自己的经历。去年在某团队接手一个中后台项目,测试代码有三千多个用例,看上去覆盖率挺漂亮,但每次跑全量测试要十五分钟以上,而且随便改动一个公共组件,就会连带挂掉百…

2026/10/17 12:09:41 阅读更多 →
Kafka与RocketMQ选型对比:存储模型、事务消息与迁移避坑指南

Kafka与RocketMQ选型对比:存储模型、事务消息与迁移避坑指南

做消息中间件选型时,我见过太多团队在 Kafka 和 RocketMQ 之间反复横跳。日志链路那边 Kafka 几乎是默认答案,交易、订单、状态同步这边 RocketMQ 又是主力选手。两个系统都是分布式消息领域公认的标杆,从功能菜单看也都在做同一件事——把生…

2026/10/17 12:08:41 阅读更多 →

日新闻

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/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 阅读更多 →