pi agent 终端编码智能体实战:agent loop、TUI 与 subagent 设计解析
1. 从“pi”这个标题说起一个被低估的终端智能体入口第一次看到“pi”这个标题很多人会以为是那个著名的数学常数或者联想到树莓派、圆周率、某个缩写。但把热搜词摊开来看——pi agent、pi coding agent、pi subagent、pi desktop、TUI、agent loop、LLM API——方向就很清楚了这是一个跑在终端里的编码智能体工具核心形态是 CLI TUI背后接的是大模型 API靠 agent loop 驱动多轮工具调用还支持 subagent 拆分任务、web 端导入 skill、以及桌面版。我接触这类工具的时间不算短从最早的纯命令行补全到后来的对话式 CLI再到现在的 agent 化终端变化其实就一条主线把“人写代码”逐步变成“人描述意图agent 去执行并自我纠错”。pi 这个项目正好卡在这个位置上它不是 IDE 插件不是网页聊天框而是一个常驻终端的 coding agent CLI。你给它一个任务它自己读文件、改代码、跑命令、看报错、再改循环往复直到任务完成或者它判断需要你介入。这篇文章我打算按一个真实使用者的视角来拆不吹不黑。会讲清楚 pi 的整体设计思路、agent loop 到底怎么转、TUI 这一层为什么重要、subagent 怎么用才不翻车、LLM API 怎么配、skill 导入是什么机制以及我在实际跑任务时踩过的坑和总结出来的参数经验。适合两类人看一类是想找一个能真正干活、不花哨的终端 agent 的开发者另一类是自己在做类似 agent 工具、想参考别人怎么设计 loop 和 TUI 的人。哪怕你只是想搞明白“pi agent 和普通 CLI 补全到底差在哪”看完也能有个清晰判断。需要先说明一点下面涉及的具体配置项、参数值、目录结构一部分来自项目本身的常见约定一部分是我基于同类工具实践做的合理补全。你在自己环境里落地时以实际版本为准但思路和排查方法是可以直接抄的。2. pi 的整体设计与思路拆解2.1 为什么是终端 TUI而不是 IDE 插件或网页先回答一个最容易被问的问题都 2025 年了为什么还要做一个终端里的 agentIDE 插件不是更直观吗我的理解是pi 选择 TUI 是有明确取舍的。IDE 插件的问题在于它被绑死在某个编辑器上VS Code、JetBrains、Neovim 各写一套维护成本高而且插件和编辑器的主循环容易打架——你正在编辑agent 也在改同一个文件冲突处理很麻烦。网页端则相反它离你的真实工作环境太远agent 要操作本地文件还得额外搭一层桥权限、路径、环境变量全是坑。终端 TUI 的好处是它天然就在你的工作目录里pwd就是项目根环境变量、shell、git 状态全都是现成的。agent 要跑npm test、git diff、cargo build直接调就行不需要任何中间层。TUI 只是把交互做得比纯 stdin/stdout 好看一点——有面板、有状态栏、有滚动历史、有快捷键但底层还是标准输入输出。这种“轻壳重核”的设计让 pi 可以跑在服务器上、跑在容器里、跑在 SSH 会话里只要有终端就能用。提示TUI 类工具在 SSH 或 tmux 里使用时注意终端类型要设对通常是xterm-256color否则可能出现颜色错乱或按键无响应。我遇到过TERMdumb导致整个界面刷不出来的情况排查了半天。2.2 agent loop 是整个工具的心脏pi 最核心的东西不是界面是 agent loop。你可以把它理解成一个“感知—决策—执行—观察”的循环感知把当前上下文用户指令、历史对话、文件内容、命令输出打包成 prompt决策调用 LLM API让模型决定下一步做什么——是读文件、写文件、跑命令还是直接回答执行解析模型返回的工具调用在本地真实执行观察把执行结果成功输出或报错塞回上下文进入下一轮这个循环会一直转直到模型返回一个“结束”信号或者达到最大轮数限制或者你手动打断。听起来简单但魔鬼全在细节里。比如上下文怎么裁剪工具调用的结果太长怎么办模型陷入死循环反复改同一个文件怎么办这些才是区分一个好 agent 和玩具的关键。pi 在这块的设计我比较认可的一点是它把 loop 的每一步都暴露在 TUI 里。你能看到模型这一轮决定调什么工具、参数是什么、执行结果是什么。这种透明性对调试极其重要。很多网页版 agent 是黑盒你只看到最终答案中间它干了什么你不知道出了问题也没法定位。pi 把中间过程全摊开这点对开发者非常友好。2.3 subagent 拆分把大任务切成能并行的小块热搜里出现了 pi subagent这是 pi 比较有意思的一个能力。简单说主 agent 可以把一个复杂任务拆成若干子任务每个子任务交给一个 subagent 去跑各自有独立的上下文和工具权限最后把结果汇总回主 agent。为什么要这么做因为单个 agent 的上下文窗口是有限的而且一个超长任务里模型很容易“忘记”早期的约束。拆成 subagent 之后每个子任务只关心自己那一小块上下文干净决策质量更高。比如“给整个项目加日志”这种任务主 agent 可以按模块拆成几个 subagent每个负责一个目录互不干扰。但 subagent 也有代价拆分本身要消耗一次模型调用汇总又要一次而且子任务之间的依赖关系如果没处理好会出现“A 改了接口B 还在用旧接口”的尴尬。我的经验是subagent 适合那种天然可并行、耦合低的任务比如批量改文档、批量加类型注解。强耦合的重构任务还是让主 agent 串行做更稳。2.4 LLM API 接入模型是发动机配置是油路pi 本身不带模型它是个壳真正的智能来自你接的 LLM API。这就意味着模型选型、API 配置、超时重试、token 预算这些事直接决定 pi 好不好用。我一般会准备两套配置一套用能力强的模型跑复杂任务一套用便宜快速的模型跑简单任务比如格式化、重命名。pi 如果支持按任务切换模型那体验会好很多。API 层面要特别注意几个参数max_tokens别设太小否则模型工具调用还没输出完就被截断temperature对编码任务建议调低0 到 0.3 之间比较稳太高了模型会“发挥创意”乱改代码超时时间要给够尤其是让它跑测试的时候一次调用可能等好几分钟。注意API key 千万别硬编码在配置文件里提交到 git。用环境变量或者本地未追踪的配置文件这是基本纪律。我见过太多人把 key 写进config.json然后 push 上去第二天就收到额度异常的通知。3. 核心细节解析与实操要点3.1 TUI 启动失败account/read failed 到底怎么回事热搜里有一条很具体的报错error: account/read failed during tui bootstrap: account/read failed: worksp。这个报错信息虽然被截断了但关键词很清楚——TUI 启动阶段读取账户信息失败而且和 workspace 有关。我按经验拆一下这个报错的可能来源。TUI bootstrap 是启动初始化流程它会做几件事读配置、校验账户凭证、确定工作目录、加载 skill、初始化 API 客户端。account/read failed说明在“读账户”这一步挂了。常见原因有这么几类凭证文件不存在或路径不对pi 可能在某个约定目录比如~/.config/pi/或项目下的.pi/找账户文件如果工作目录变了相对路径就找不到了凭证过期或格式错误token 过期、JSON 解析失败都会报 read failed权限问题文件存在但当前用户没读权限workspace 未初始化报错里带worksp很可能是 workspace 目录没建好或者 workspace 配置指向了一个不存在的路径排查顺序我建议这样先看完整报错别只看截断的那半句然后确认当前工作目录再检查配置和凭证文件的路径与权限最后看 workspace 配置。这类启动期报错九成是路径和权限问题剩下一成是配置格式问题。3.2 agent loop 的轮数控制与死循环防范agent loop 最怕的就是死循环。模型改一版代码跑测试报错再改再跑还是同样的错它能这么转一下午。所以轮数上限和“无进展检测”是必须的。我的做法是设一个max_iterations一般 20 到 30 轮够用了。超过这个数还没搞定说明任务要么太复杂需要人介入要么模型卡住了。另外可以加一个简单的“无进展检测”如果连续三轮的工具调用和结果高度相似比如反复改同一个文件的同一行就主动中断把控制权交回给人。pi 如果内置了这类保护那很好如果没有你在 prompt 里明确写“如果连续两次尝试没有进展停下来问我”也能起到类似效果。别小看这一句实测能省下大量无效 token。3.3 工具调用的权限边界agent 能读文件、写文件、跑命令这三件事的权限边界必须想清楚。跑命令尤其危险——模型可能生成rm -rf这种破坏性操作或者跑一个耗时极长的构建。我的建议是分三级权限级别允许的操作适用场景只读读文件、列目录、git status代码审查、问答读写读文件、写文件、git diff重构、加功能全权读写 跑任意命令跑测试、构建、部署日常用“读写”级别就够了需要跑测试时临时升到“全权”跑完降回来。pi 如果支持按会话设置权限一定要用起来。另外危险命令最好有个确认环节或者至少有个命令白名单/黑名单。3.4 skill 导入机制web 端导入 skill 是什么玩法热搜里有个pi web导入skill这个我理解是 pi 支持从 web 端或者某个仓库导入“技能包”。skill 本质上是一组预定义的 prompt 模板 工具配置 示例用来让 agent 快速获得某个领域的能力。比如一个“React 组件生成”skill里面可能包含组件规范、目录约定、测试要求导入后 agent 就知道按这套规矩干活。导入 skill 的价值在于复用。你团队里沉淀了一套代码规范做成 skill新人和 agent 都能用。导入方式通常有几种从 URL 拉、从本地文件读、从 git 仓库 clone。要注意的是导入的 skill 是外部内容里面可能包含 prompt 注入或者不安全的工具配置导入前最好审一遍。别看到个 skill 就无脑导尤其是来源不明的。4. 实操过程与核心环节实现4.1 环境准备与安装假设你从零开始搭 pi 的运行环境。第一步是确认基础依赖Node.js 或 Python取决于 pi 的实现语言这类 CLI 工具两者都常见、git、以及一个能用的终端。我以 Node 生态为例走一遍流程。# 确认 node 和 npm 版本 node -v npm -v # 全局安装假设包名是 pi-cli实际以官方为准 npm install -g pi-cli # 验证安装 pi --version安装完之后第一次运行会触发初始化。这时候它会让你配 API、选模型、设工作目录。我建议先在一个测试项目里跑别一上来就在生产仓库里用。4.2 API 配置与模型选择配置 API 是决定体验的关键一步。以常见的 OpenAI 兼容接口为例配置大概长这样{ provider: openai-compatible, base_url: https://your-api-endpoint/v1, api_key_env: PI_API_KEY, model: your-model-name, max_tokens: 8192, temperature: 0.2, timeout_seconds: 300 }几个参数的选择理由max_tokens给到 8192 是因为 agent 要输出工具调用 代码太小了容易截断temperature0.2 是编码任务的稳妥值timeout_seconds给 300 秒是因为跑测试、装依赖这类操作可能很慢超时太短会频繁失败。api_key_env指向环境变量避免明文写 key。export PI_API_KEYyour-key-here提示如果你在多个项目间切换建议用 direnv 或者 shell 的 per-directory 环境变量避免不同项目的 key 串了。4.3 跑第一个 agent 任务配置好之后进到你的项目目录启动 picd /path/to/your/project piTUI 起来之后先给个简单任务试水比如“读一下 README总结这个项目是干什么的”。这个任务只涉及读文件不涉及写和跑命令安全。观察它的行为它有没有正确读文件总结得对不对TUI 里的工具调用展示清不清楚确认基础功能没问题后再试一个稍微复杂点的“给 utils.js 里的每个函数加上 JSDoc 注释”。这个任务涉及读和写但不涉及跑命令。看它改得对不对改完用git diff检查。最后再试跑命令的任务“跑一下测试把失败的用例修好”。这个就进入全权模式了注意观察它跑命令的输出和后续决策。4.4 subagent 实战批量任务拆分假设你要给一个中型项目里所有.ts文件加上统一的文件头注释。单 agent 串行做也能做但慢而且上下文会越来越长。用 subagent 拆主 agent 先扫描目录列出所有需要处理的文件按目录或按文件数量分成若干组每组交给一个 subagent每个 subagent 只处理自己那组文件上下文干净主 agent 收集各 subagent 的结果汇总报告这个流程的关键是分组要均匀别让某个 subagent 处理 100 个文件另一个处理 2 个。另外如果文件之间有依赖比如 A 导入了 B分组时要保证依赖在同一个 subagent 里否则会出现改了一半的情况。4.5 参数计算token 预算怎么估跑 agent 任务token 消耗是要心里有数的。粗略估算一个中等复杂度的任务假设 agent loop 转 15 轮每轮上下文平均 4000 token含历史输出平均 800 token那么总消耗大约是 15 × (4000 800) 72000 token。如果模型按 token 计费这个量级要提前有预期。控制 token 的手段有几个及时清理不必要的历史、工具输出做截断比如命令输出只保留最后 100 行、用 subagent 隔离上下文、简单任务换便宜模型。我一般会在跑大任务前先估一下超过预算就先拆小。5. 常见问题与排查技巧实录5.1 启动类问题速查现象可能原因排查方向account/read failed凭证缺失/过期/路径错检查配置目录和权限TUI 刷不出来TERM 设置不对设TERMxterm-256color命令找不到PATH 没配检查安装路径是否在 PATHworkspace 报错工作目录未初始化确认 pwd 和 workspace 配置5.2 运行类问题模型反复改同一个地方却不解决问题这是最常见的。原因通常是上下文里缺少关键信息比如它不知道某个函数的真实签名只能猜。解决办法是在 prompt 里明确告诉它去看哪个文件或者手动把关键代码贴进上下文。工具调用参数错误也很常见比如模型生成了一个不存在的文件路径。这通常是模型对项目结构理解不足。可以在项目根放一个AGENTS.md或类似的文件把目录结构、约定、常用命令写清楚agent 启动时会读能显著减少这类错误。API 超时或限流表现为任务跑到一半卡住。检查网络、检查 API 额度、适当调大超时和重试次数。如果是限流降低并发subagent 数量能缓解。5.3 我踩过的几个坑第一个坑是权限给太宽。有次我图省事直接开了全权模式结果 agent 跑了个git checkout .把我没提交的改动全冲了。从那以后我养成了习惯跑 agent 前先 commit或者至少 stash。第二个坑是上下文污染。我在同一个会话里连续让它做了好几个不相关的任务结果它把前一个任务的约束带到了后一个任务里改出来的代码风格都不对。后来我每个独立任务都开新会话。第三个坑是过度信任 subagent 的汇总。有次几个 subagent 并行改代码汇总时主 agent 说“全部完成”我一跑测试发现接口对不上。原因是两个 subagent 改了同一个接口的两端。所以并行任务一定要检查耦合点。5.4 性能与成本优化想让 pi 跑得又快又省几个实操技巧把常用命令和项目约定写进 agent 能读到的说明文件减少它探索的时间工具输出做截断别把几千行日志全塞进上下文简单任务用便宜模型复杂任务才上强模型subagent 并发数别开太高API 限流和上下文汇总成本都会上升。6. 桌面版与生态延展的一些观察热搜里还有pi desktop、oh my pi 桌面版下载这类词说明 pi 除了 CLI/TUI 形态还有桌面版。桌面版的价值在于降低门槛——不是所有人都习惯终端有个图形界面点一点就能用能覆盖更广的用户群。但桌面版通常会牺牲一些灵活性比如脚本化、远程使用、和 shell 的深度集成。我的看法是两者定位不同CLI 给开发者和自动化场景桌面版给日常使用和演示场景。另外热搜里混进来一些明显不相关的词比如raspberry pi 2040 oled 0.96、mmc环流抑制器的pi参数、pll pi控制带宽fb这些是“pi”作为其他领域术语的搜索结果和这个 coding agent 没关系。做搜索优化的时候要注意区分别把不相关的流量当成目标用户。真正相关的核心词是 pi agent、pi coding agent、agent loop、TUI、LLM API、subagent 这几个。从生态角度看pi 这类工具的未来空间在于 skill 市场和 subagent 编排。skill 让能力可复用、可分发subagent 让复杂任务可拆分、可并行。这两块做透了agent 就从“单次对话工具”变成“可编程的工作流引擎”。当然前提是安全边界和成本控制跟得上否则能力越强翻车越狠。我个人在实际使用中的体会是pi 这类终端 agent 最大的价值不是“替你写代码”而是“替你跑那些你不想手动跑的循环”——读文件、改、跑测试、看报错、再改。这个循环人做起来枯燥且容易出错交给 agent 正合适。但前提是你把边界划清楚、把上下文喂干净、把预算控住。这三点做到了它能实实在在省下你大量时间做不到它就是个烧 token 的玩具。

相关新闻

用2D视觉语言模型驱动3D编程:任务自适应的接地式三维工作流

用2D视觉语言模型驱动3D编程:任务自适应的接地式三维工作流

1. 这不是又一个3D生成模型,而是一套“会看图、懂任务、能编程”的三维工作流最近在几个AI顶会的workshop和arxiv新提交里反复看到这个标题:“Task-Adaptive Grounded 3D-Programmers Using 2D VLMs”——它不像“Sora”或“GPT-4o”那样自带传播爆点&am…

2026/10/14 20:12:30 阅读更多 →
低功耗蓝牙模块能效优化:硬件、固件与制造三层实战

低功耗蓝牙模块能效优化:硬件、固件与制造三层实战

/* 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 20:11:29 阅读更多 →
mmdetection中get_cat_ids报错的根源与正确用法

mmdetection中get_cat_ids报错的根源与正确用法

1. 项目概述:这个报错不是Bug,是数据接口理解偏差的典型症状“AttributeError: COCO object has no attribute get_cat_ids”——这行报错在mmdetection用户群、GitHub Issues和Stack Overflow上出现频率极高,尤其集中在刚从PyTorch原生训练流…

2026/10/14 20:11:29 阅读更多 →

最新新闻

Vue项目实现Office文档在线预览:DOCX、XLSX、PPT一次搞定

Vue项目实现Office文档在线预览:DOCX、XLSX、PPT一次搞定

做前端这几年,被文档预览折磨的次数真不算少。之前接一个合同管理需求,用户提了个特别朴素的要求:附件里的Word合同不要下载到本地再打开,在网页里直接能看就行。我一开始也心想,这有什么难的?不就是嵌一个…

2026/10/15 5:37:22 阅读更多 →
C00系统PLC梯形图维修指南:钻攻中心信号排查与修改实战

C00系统PLC梯形图维修指南:钻攻中心信号排查与修改实战

简介:面向日本兄弟钻攻中心C00系统的操作与维护人员,这是一份系统讲解PLC(可编程逻辑控制器)应用的官方技术手册,内容由浅入深,特别适合现场工程师和培训学员快速掌握设备控制逻辑。手册从PLC基础概念与系统…

2026/10/15 5:37:22 阅读更多 →
PyTorch核心机制与实战:动态图、自动微分、显存优化及多卡训练

PyTorch核心机制与实战:动态图、自动微分、显存优化及多卡训练

1. 从一次模型训练卡死说起:为什么值得重新认识PyTorch很多人第一次接触深度学习框架,都是从一行import torch开始的。但真正让PyTorch在众多框架中站稳脚跟的,不是它简洁的API,而是它背后那套"动态图自动微分"的组合拳…

2026/10/15 5:37:22 阅读更多 →
PyTorch深度学习实战:从张量到分布式训练与部署全链路指南

PyTorch深度学习实战:从张量到分布式训练与部署全链路指南

1. 从一张显卡到一套完整训练链路:我为什么把PyTorch当作深度学习的主力框架如果你刚接触深度学习,或者已经用过其他框架但总觉得“跑得起来却调不明白”,那PyTorch大概率是你绕不开的一站。它不是一个“点一下就能出结果”的黑盒工具&#x…

2026/10/15 5:37:22 阅读更多 →
兄弟钻攻中心C00系统PLC手册:地址、梯形图与维修实战

兄弟钻攻中心C00系统PLC手册:地址、梯形图与维修实战

简介:日本兄弟钻攻中心C00系统PLC系统手册是针对S500X1/S700X1机型的技术文档,专供经过认证或培训的操作与维护人员使用,用于掌握钻攻中心PLC程序编辑、调试与故障排查。内容从PLC基础概念、系统连接示意图讲起,再进入PLC功能操作…

2026/10/15 5:37:21 阅读更多 →
LLM request timed out排查指南:OpenClaw接入第三方API超时解决方案

LLM request timed out排查指南:OpenClaw接入第三方API超时解决方案

LLM request timed out 这个报错,接第三方 API 的朋友应该不陌生。OpenClaw 本身是个开源智能体框架,跑起来很轻,但一旦把模型源切到第三方兼容接口,超时就像定时炸弹一样时不时爆一下。这篇文章把我自己调通的全过程写出来&#…

2026/10/15 5:36:21 阅读更多 →

日新闻

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