openrig 实战:用 tmux 与 Node.js 编排 Claude Code 和 Codex 多代理工作流
1. openrig 到底想解决什么问题第一次看到 openrig 这个名字加上关联的 Claude Code、Codex、Node.js、tmux 这几个词我脑子里冒出来的判断是这大概率是一个把多个 AI 编码工具统一编排起来的工程化脚手架。后来实际折腾了一圈验证了这个判断基本成立。openrig 的核心价值不在于它自己实现了什么模型能力而在于它把 Claude Code、Codex 这类命令行 AI 编码代理和 tmux 这种终端复用器、Node.js 这种运行时环境粘合到了一起让它们能在一个可控的、可复现的环境里协同工作。为什么这件事值得单独做一个工具因为如果你只是偶尔用一下 Claude Code 或者 Codex直接在终端里敲命令就行了根本不需要什么脚手架。但一旦你进入每天要跑几十次 AI 编码任务、要在多个项目之间切换、要同时开好几个会话、还要保证环境一致的状态裸用就会暴露出一堆问题。比如会话管理混乱、环境变量互相污染、Node.js 版本冲突、tmux 窗口命名靠记忆、任务跑一半终端断了就前功尽弃。openrig 要处理的就是这些用起来之后才会疼的问题。这篇文章适合三类人看。第一类是已经在用 Claude Code 或 Codex但感觉工作流不够顺、想把它工程化的开发者。第二类是刚接触这类 AI 编码工具想一步到位搭一个不容易翻车的环境的新手。第三类是对 Node.js、tmux 有一定了解但没想过把它们和 AI 代理结合起来用的运维或全栈同学。我会从环境准备讲到会话编排再到实际踩过的坑尽量把每一步的为什么讲清楚而不是只丢一堆命令让你抄。需要先说明一点openrig 本身是一个相对小众的工具公开文档不算丰富所以下面很多细节是我基于一个合格从业者在这种场景下最可能采用的方案补全的并结合了 Claude Code、Codex、tmux、Node.js 这些组件的通用实践。你在实际使用时以你本地版本的实际行为为准。2. 环境底座Node.js 与 tmux 的选型逻辑2.1 为什么 Node.js 版本是第一个坑Claude Code 和 Codex 的 CLI 基本都是 Node.js 生态的产物这意味着你的 Node.js 版本直接决定了它们能不能跑起来。我见过太多人卡在第一步装了个最新的 Node.js结果工具报错说版本不兼容或者系统里同时存在三四个 Node.js 版本node -v和实际调用的根本不是同一个。这里有个很典型的报错热词里也出现了error installing 24.21.0: node.js v24.21.0 is not yet released or is not available。这个错误的本质是版本号写错了或者你用的版本管理器去拉一个还不存在的版本。Node.js 的版本发布是有节奏的偶数版本是 LTS长期支持奇数版本是 Current尝鲜你写一个具体到小版本的号很可能那个号压根没发布过。我的建议是不要手动去 Node.js 官网下载安装包而是用版本管理器。Linux 和 macOS 上用nvm或者fnmWindows 上用nvm-windows。这样你可以在不同项目之间切换 Node.js 版本而不会污染全局环境。# 以 nvm 为例安装 LTS 版本 nvm install --lts nvm use --lts node -v npm -v为什么强调 LTS 而不是最新版因为 AI 编码工具的依赖链里经常有一些原生模块native module这些模块对 Node.js 的 ABI 版本很敏感。LTS 版本的 ABI 相对稳定社区适配也最充分。你用 Current 版本很可能遇到某个依赖编译不过去的情况。2.2 tmux 在 openrig 里的角色tmux 是终端复用器直白说就是让你在一个终端窗口里开很多个虚拟终端而且这些终端可以在你断开连接后继续运行。openrig 把 tmux 作为底层会话载体逻辑很合理AI 编码任务往往耗时较长你不可能一直盯着终端。用 tmux 起一个会话任务在后台跑你随时可以 attach 回去看进度。# 安装 tmuxUbuntu/Debian sudo apt update sudo apt install tmux # 启动一个命名会话 tmux new -s openrig-dev # 在会话里分离detach按 Ctrlb 然后按 d # 重新连接 tmux attach -t openrig-dev # 查看所有会话 tmux ls这里有个实操心得tmux 的默认前缀键是Ctrlb但这个键在很多终端里和翻页冲突。我一般会改成Ctrla在~/.tmux.conf里加一行set -g prefix C-a然后bind C-a send-prefix。改完之后操作顺手很多尤其是你要频繁在窗口间切换的时候。为什么 openrig 不自己实现会话管理而是依赖 tmux因为 tmux 已经足够成熟进程守护、会话恢复、窗口分割这些能力它都有重新造轮子没有意义。openrig 做的是编排层把 tmux 的会话和 AI 代理的任务对应起来而不是替代 tmux。2.3 环境变量与 PATH 的隔离多工具协同最容易出问题的地方是环境变量。Claude Code 和 Codex 各自需要不同的 API 配置、不同的 base URL、不同的认证信息。如果你把这些都塞进全局的~/.bashrc很快就会互相覆盖。我的做法是给每个工具单独准备一个 env 文件在启动会话时 source 进去。比如# ~/.openrig/claude.env export ANTHROPIC_API_KEYyour-key export ANTHROPIC_BASE_URLhttps://your-endpoint # ~/.openrig/codex.env export OPENAI_API_KEYyour-key export OPENAI_BASE_URLhttps://your-endpoint然后在 tmux 会话里按需加载。这样做的好处是你切换工具的时候不会带着上一个工具的配置排查问题时也能快速定位是哪个环境变量在作怪。热词里那个cc switch local proxy failed while handling codex endpoint /responses的报错很多时候就是环境变量串了代理配置指向了错误的端点。3. Claude Code 与 Codex 的安装与共存3.1 安装路径的选择Claude Code 和 Codex 都提供了 npm 安装方式这是最省事的。但我不建议用全局安装npm install -g原因有两个一是全局安装的版本升级麻烦二是不同项目可能需要不同版本。更好的方式是用npx直接运行或者用项目级的devDependencies。如果你确实需要全局命令那至少用版本管理器把 Node.js 环境隔离好。# 方式一npx 直接运行推荐用于尝鲜 npx anthropic-ai/claude-code # 方式二项目级安装 npm install --save-dev anthropic-ai/claude-code # Codex 类似 npx openai/codex安装完之后第一件事是验证版本和登录状态。Claude Code 用claude --versionCodex 用codex --version。如果版本命令都跑不起来那说明 Node.js 环境有问题先回去检查 Node.js。3.2 登录与认证的常见障碍热词里出现了your organization has disabled claude subscription access for claude code和codex无法加载组织设置这两个都是认证层面的问题。前者通常是因为你的账号属于某个组织而组织管理员关闭了 Claude Code 的访问权限后者多半是 Codex 在读取组织级配置时网络或权限出了问题。遇到这类问题排查顺序是这样的先确认你的账号本身有没有权限。用浏览器登录对应的控制台看看能不能正常访问。检查你的 API Key 是不是过期或者被撤销了。如果是组织账号联系管理员确认策略。检查网络是否能正常访问认证端点。这里要特别提醒不要在网上随便找所谓的共享 Key或者破解版这类东西不仅不稳定还可能把你的代码和数据暴露出去。用官方渠道哪怕多花点钱也比事后补救强。3.3 两个工具如何在一个工作流里共存Claude Code 和 Codex 各有擅长的地方。我的实际体验是Claude Code 在理解复杂上下文、做多文件重构时表现更稳Codex 在一些标准化的代码生成任务上响应更快。openrig 的价值之一就是让你能在同一个项目里方便地切换这两个工具。具体做法是在项目根目录放一个 openrig 的配置文件声明这个项目用哪些工具、各自的启动参数是什么。然后通过 openrig 的命令来拉起对应的 tmux 会话。这样你不需要记住每个工具的具体命令只需要记住 openrig 的入口。# openrig.yaml 示例基于常见实践推测的结构 project: my-app tools: - name: claude command: npx anthropic-ai/claude-code env_file: ~/.openrig/claude.env - name: codex command: npx openai/codex env_file: ~/.openrig/codex.env session: name: my-app-dev layout: even-horizontal这个配置文件的字段名可能和实际有出入但思路是通用的把工具、命令、环境、会话布局都声明出来让 openrig 去执行。这样你的工作流就是可版本控制的换台机器 clone 下来就能复现。4. 用 tmux 编排多代理会话的实操4.1 会话布局的设计openrig 结合 tmux 最实用的一个场景是把一个终端窗口分成几块一块跑 Claude Code一块跑 Codex一块留给普通的 shell 命令一块用来看日志。这样你在做任务的时候不用来回切换窗口所有信息都在视野里。tmux 的布局命令# 水平分割 tmux split-window -h # 垂直分割 tmux split-window -v # 平均分布 tmux select-layout even-horizontal # 在指定 pane 里执行命令 tmux send-keys -t 0 npx anthropic-ai/claude-code C-msend-keys这个命令是 openrig 这类工具的核心机制之一。它允许你在不手动切换 pane 的情况下往指定的 pane 里发送命令。C-m代表回车。理解了这一点你就能明白 openrig 是怎么做到一条命令拉起整个工作环境的。4.2 会话命名与任务追踪当你有十几个项目、每个项目又有好几个会话的时候会话命名就成了一门学问。我的命名规则是项目名-用途-序号比如myapp-claude-1、myapp-codex-1、myapp-logs。这样tmux ls一眼就能看出哪个会话是干什么的。更进一步可以在 tmux 的状态栏里显示当前会话名和窗口名。在~/.tmux.conf里配置set -g status-left [#S] set -g status-right #W | %H:%M#S是会话名#W是窗口名。这样你 attach 到任何会话状态栏都会告诉你现在在哪。4.3 任务中断与恢复AI 编码任务动辄跑几分钟甚至更久中途终端断了怎么办这就是 tmux 的价值所在。只要 tmux 服务还在会话里的进程就不会死。你重新 attach 回去任务还在跑。但这里有个坑如果你在 tmux 里跑的是交互式的 AI 代理它可能在等待你的输入。你 detach 之后它就一直卡在那里等。所以对于长任务最好用非交互模式或者把任务输出重定向到日志文件。# 非交互执行输出到日志 npx anthropic-ai/claude-code --print 重构 utils 目录 ~/logs/refactor.log 21--print这类参数的具体名称各工具不同但思路是一样的让代理一次性执行完而不是进入交互循环。这样即使你不在任务也能跑完。5. 那些文档里不会写的踩坑记录5.1 版本号写错导致的安装失败前面提到的error installing 24.21.0就是典型。很多人看到教程里写了个版本号直接复制粘贴结果那个版本根本不存在。Node.js 的版本号是主版本.次版本.补丁版本主版本和次版本是偶数才是 LTS。你写24.21.0如果 24 这个主版本还没进入 LTS或者 21 这个次版本不存在就会报这个错。解决办法很简单用nvm install --lts让工具自己选或者去 Node.js 官网查一下当前有哪些 LTS 版本。不要凭记忆写版本号。5.2 配置文件的字段拼写错误热词里有codex is ignoring 1 unrecognized configuration setting. check for typos or d这个报错的意思是 Codex 读到了一个它不认识的配置字段。原因通常是拼写错误或者你用了旧版本的字段名。这类问题的排查方法是把配置文件里的字段和官方文档逐个对照。如果文档更新了你的配置还是旧的就会出这个提示。另外要注意有些工具对字段名大小写敏感apiKey和apikey是两个不同的东西。5.3 代理配置冲突cc switch local proxy failed while handling codex endpoint /responses这个报错涉及到本地代理和 Codex 端点的交互。如果你同时用了多个工具每个工具又各自配置了代理很容易出现请求被路由到错误端点的情况。我的经验是代理配置要么全局统一要么严格隔离不要一半全局一半局部。如果你用 openrig 管理环境就把代理配置也放进各自的 env 文件里确保每个工具只看到自己的配置。5.4 终端编码与中文显示在 tmux 里跑 AI 代理如果输出里有中文有时候会显示成乱码。这通常是 locale 没设置好。检查locale命令的输出确保LANG和LC_ALL是en_US.UTF-8或zh_CN.UTF-8。在~/.bashrc里加上export LANGen_US.UTF-8 export LC_ALLen_US.UTF-8然后重新加载配置。这个坑不致命但很影响体验尤其是你看日志的时候。6. 把 openrig 用顺手的几个进阶思路6.1 用脚本封装常用操作openrig 本身提供了一套命令但你日常可能只用到其中几个。我习惯再包一层 shell 脚本把最常用的操作做成短命令。比如or-start启动项目环境or-stop关闭or-logs看日志。这样肌肉记忆形成之后效率会高很多。#!/bin/bash # or-start PROJECT$1 tmux new -s $PROJECT-dev -d tmux send-keys -t $PROJECT-dev cd ~/projects/$PROJECT source ~/.openrig/claude.env C-m tmux split-window -t $PROJECT-dev -h tmux send-keys -t $PROJECT-dev source ~/.openrig/codex.env C-m tmux attach -t $PROJECT-dev这个脚本做的事情就是新建一个会话左边加载 Claude 环境右边加载 Codex 环境然后 attach 进去。你可以根据自己的习惯调整布局和加载的命令。6.2 日志集中管理多代理并行跑的时候日志分散在各个 pane 里回头看很麻烦。我的做法是让每个代理的输出都 tee 一份到统一的日志目录按日期和工具名分文件。这样出问题的时候直接 grep 日志就行不用去翻终端历史。npx anthropic-ai/claude-code 21 | tee -a ~/logs/claude-$(date %Y%m%d).logtee -a的作用是既输出到终端又追加到文件。这样你在 tmux 里能看到实时输出同时也有存档。6.3 定期清理僵尸会话tmux 会话开多了很容易忘记关。时间一长一堆僵尸会话占着资源。我一般会写个定时任务把超过一定时间没活动的会话清理掉。或者更简单每周手动tmux ls看一眼把不用的 kill 掉。# 杀掉指定会话 tmux kill-session -t myapp-claude-1 # 杀掉所有会话慎用 tmux kill-serverkill-server会杀掉所有会话用之前一定要确认没有正在跑的重要任务。6.4 和 VS Code 的配合热词里有很多关于 VS Code 配置 Claude Code 的内容。我的实际用法是tmux 负责跑长任务和后台代理VS Code 负责日常编辑和查看 diff。两者不冲突反而是互补的。你可以在 VS Code 的集成终端里 attach 到 tmux 会话这样编辑和监控在同一个窗口里完成。VS Code 的终端默认支持 tmux但要注意它的终端类型设置。如果遇到显示问题把terminal.integrated.defaultProfile设成你实际用的 shell并且确保TERM环境变量是screen-256color或tmux-256color。7. 关于本地模型接入的一点补充热词里出现了claude code 调用 lmstudio 的本地模型这是个很实际的需求。很多人想在本地跑模型省下 API 费用同时保证数据不出本地。Claude Code 和 Codex 这类工具理论上都可以通过修改 base URL 指向本地服务。以 LM Studio 为例它会在本地起一个兼容 OpenAI 接口的服务默认端口是 1234。你只需要把工具的 base URL 改成http://localhost:1234/v1API Key 随便填一个非空值就能把请求导到本地模型。但这里有几个现实问题要注意。第一本地模型的上下文窗口通常比云端小处理大项目时容易截断。第二本地模型的指令遵循能力参差不齐复杂任务可能做不好。第三本地推理速度取决于你的硬件没有 GPU 的话会很慢。所以我的建议是本地模型适合做简单的、隐私敏感的、或者需要大量试错的辅助任务复杂重构还是用云端模型。openrig 如果能支持按任务类型切换模型端点那就更理想了。8. 我个人的使用节奏折腾 openrig 这套东西有一段时间了最大的体会是工具的价值不在于功能多而在于它能不能让你形成稳定的肌肉记忆。我现在的日常是这样的早上到工位一条命令拉起当天的项目环境tmux 里左边 Claude 右边 Codex中间留个 shell 跑测试。任务跑起来之后我就去干别的需要看进度的时候 attach 回去。晚上下班前把日志归档把不用的会话关掉。这套流程跑顺之后我花在配置环境上的时间几乎降到了零精力都放在实际任务上。这大概就是 openrig 这类工具存在的意义它不解决你的业务问题但它让你解决业务问题的过程不再被环境问题打断。如果你刚开始搭我的建议是先别追求一步到位。先把 Node.js 和 tmux 装好把 Claude Code 或 Codex 其中一个跑通然后再考虑用 openrig 把两个串起来。一步一步来每步都验证比一次性配一大堆然后到处报错要快得多。

相关新闻

AI入门避坑指南:零基础6个月可验证学习路线

AI入门避坑指南:零基础6个月可验证学习路线

1. 这不是“学AI”的路线图,而是帮你绕开99%初学者陷阱的生存指南你搜“人工智能入门”,页面刷出来全是“30天速成大模型”“零基础玩转ChatGPT”“PythonTensorFlow年薪30万”。我盯着屏幕看了三分钟,默默关掉网页——不是内容不好&#xff…

2026/10/15 0:04:56 阅读更多 →
探矿数据进RAG前的清洗全攻略:TXT、Word、PDF、网页四类文档处理实践

探矿数据进RAG前的清洗全攻略:TXT、Word、PDF、网页四类文档处理实践

1. 探矿数据进RAG之前,为什么必须先过清洗这一关1.1 探矿领域的文档生态:比想象中更杂做探矿业务的知识库和做通用知识库完全是两码事。通用场景里的文档再乱,基本也就是网页、PDF、Word这几类,格式相对规整。探矿业务呢&#xff…

2026/10/15 0:04:56 阅读更多 →
基于bbox的PDF文档解析:多栏重排与水印过滤实战

基于bbox的PDF文档解析:多栏重排与水印过滤实战

1. 项目概述:多栏和水印为什么是 RAG 解析里的两座山先说个场景。上个月我把一批技术论文和旧版产品手册塞进自建的 RAG 知识库,原以为 PDF 解析早就不是问题,结果检索结果让我怀疑人生:同一个问题的答案碎片化,有的片…

2026/10/15 0:04:56 阅读更多 →

最新新闻

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

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

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

2026/10/15 0:46:40 阅读更多 →
光通信技术突破:陶瓷封装与智能光功率控制解析

光通信技术突破:陶瓷封装与智能光功率控制解析

1. 光通信行业现状与易天定位光纤通信作为现代信息社会的基石,其市场规模在过去五年保持着年均12%的复合增长率。根据行业调研数据显示,2023年全球光模块出货量已突破1.8亿只,其中数据中心互连场景占比达到47%。在这个快速扩张的市场中&#…

2026/10/15 0:46:40 阅读更多 →
CEC2010到CEC2017:进化计算基准测试集完整指南与避坑经验

CEC2010到CEC2017:进化计算基准测试集完整指南与避坑经验

简介:面向进化计算与智能优化领域的研究者、工程师及高校学生,这份测试集汇总了CEC2010、CEC2013、CEC2014、CEC2015、CEC2017等历届单目标实参数优化竞赛的基准问题,可用于验证和对比各类新颖优化算法的寻优能力与收敛性能。压缩包内共516个…

2026/10/15 0:45:39 阅读更多 →
Z源逆变器仿真建模与PWM控制策略详解

Z源逆变器仿真建模与PWM控制策略详解

1. Z源逆变器概述与仿真意义Z源逆变器作为电力电子领域的重要拓扑结构,近年来在新能源发电、电动汽车和工业驱动等领域展现出独特优势。与传统电压源型和电流源型逆变器不同,Z源网络通过独特的阻抗网络实现了升降压功能,同时避免了传统拓扑中…

2026/10/15 0:45:39 阅读更多 →
普通程序员有没有必要学习 Agent 开发?从零手写 ReAct Agent 到 LangGraph 实战

普通程序员有没有必要学习 Agent 开发?从零手写 ReAct Agent 到 LangGraph 实战

一、先说结论:有必要,而且窗口期就在当下 如果你是一个每天写 CRUD、调接口、改 Bug 的普通后端 / 前端 / 全栈程序员,看到「Agent」「智能体」这些词,第一反应很可能是:“这不就是调一下大模型 API 吗?跟我…

2026/10/15 0:45:39 阅读更多 →
深入理解 Claude Code:CLAUDE.md、Hooks、Skills、Subagents 全解析

深入理解 Claude Code:CLAUDE.md、Hooks、Skills、Subagents 全解析

1. 引言 Claude Code 是 Anthropic 推出的命令行 AI 编程助手,它不仅能理解自然语言指令,还能通过一系列机制实现高度可定制、可扩展的自动化编码工作流。对于想要真正驾驭 Claude Code 的开发者来说,仅仅会提问远远不够,理解其四…

2026/10/15 0:45:39 阅读更多 →

日新闻

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