Agent-Reach 实战:用 Python CLI 构建 AI Agent 工具调用能力
1. 从Agent-Reach这个名字说起它到底想解决什么问题第一次看到 Agent-Reach 这个项目名我的直觉是这大概率是一个围绕 AI Agent 能力边界做文章的工具。Reach 这个词在工程语境里通常指向触达——触达外部工具、触达远端服务、触达本地文件系统或者触达某个原本 Agent 够不着的能力。结合热搜词里高频出现的 CLI、AI Agent、Python、GitHub 这几个关键词基本可以判断这是一个用 Python 写的、以命令行方式驱动的 Agent 能力扩展项目。为什么我这么判断因为过去一年多AI Agent 的落地路径已经非常清晰了大模型负责推理和决策但真正干活的部分——读写文件、调用接口、执行脚本、抓取数据——必须靠外部工具来完成。Agent 本身是个大脑但它没有手。Agent-Reach 这类项目要做的就是给这个大脑装上一双能伸出去的手。这个定位决定了它的目标用户是谁。如果你只是想在网页对话框里聊聊天那用不上它但如果你想让 Agent 真正跑在你的机器上、操作你的文件、执行你的命令、串联你的工作流那这类 CLI 形态的 Agent 工具就是刚需。它适合三类人一是想入门 AI Agent 开发但被各种框架劝退的 Python 学习者二是需要把 Agent 接入自己本地环境做自动化的人三是想读懂 Agent 底层工具调用机制、不想只停留在调 API 层面的开发者。我见过太多人一上来就冲着 LangChain、AutoGPT 这类重型框架去结果卡在环境配置和抽象层里出不来。反而是这种轻量的 CLI 项目能让你在半小时内看到 Agent 真正动起来的样子。Agent-Reach 的价值就在这里——它把 Agent 的工具调用链路压缩到最小可运行单元让你能亲手摸到每一环。2. 拆解 Agent-Reach 的核心能力边界2.1 CLI 形态为什么是 Agent 工具的最优起点很多人会问都 2025 年了为什么 Agent 工具还要做成命令行做个漂亮的 Web UI 不好吗这个问题我认真想过答案其实很实在。CLI 是离操作系统最近的一层。Agent 要执行的能力——跑 Python 脚本、读写文件、调用系统命令、管理进程——本质上都是操作系统层面的操作。如果你套一层 Web 服务中间就多了 HTTP 协议、序列化、前端状态管理这一堆东西调试的时候你根本分不清是 Agent 决策错了还是前端传参错了还是后端接口挂了。CLI 把这些噪音全部砍掉输入输出直接走标准流Agent 的每一步决策你都能在终端里看得清清楚楚。从工程角度看CLI 还有个隐性优势它天然可组合。你可以把 Agent-Reach 的输出通过管道喂给下一个命令可以写进 shell 脚本做定时任务可以在 CI 里跑。这种Unix 哲学式的设计让 Agent 从一个孤立的对话玩具变成了工作流里的一个环节。我个人的经验是凡是能做成 CLI 的 Agent 能力优先做 CLI等逻辑稳定了再考虑包一层 UI这个顺序反过来做返工率极高。2.2 Python 作为实现语言的取舍逻辑热搜词里 Python 出现的频率极高从python安装教程到python下载cv2再到python构建邻接矩阵说明关注这个项目的人里有大量 Python 学习者。Agent-Reach 选 Python 作为实现语言我认为是经过权衡的。Python 的优势在于生态。AI Agent 要调用的东西——大模型 SDK、HTTP 客户端、文件处理库、数据解析工具——Python 的库覆盖度是最全的。你想让 Agent 读个 PDF、解析个 JSON、调个模型接口pip 一行就装好了。换成 Rust 或者 Go虽然性能和部署有优势但生态成熟度差一截很多模型厂商的官方 SDK 甚至只维护 Python 版本。但 Python 也有代价。启动速度慢、依赖管理容易乱、打包分发麻烦这些都是真实存在的问题。所以如果你看到 Agent-Reach 在依赖管理上用了比较克制的策略——比如尽量用标准库、把第三方依赖压到最少——不要觉得它功能少这恰恰是成熟的做法。一个 Agent 工具如果依赖几十个包用户装到一半报错弃坑的概率会非常高。我在实际项目里踩过这个坑早期为了图方便引入了一个功能很全但依赖树极深的库结果在用户机器上因为某个间接依赖的版本冲突直接崩掉排查了两天才定位到。从那以后我给自己定了个规矩Agent 类工具的依赖能少一个是一个。2.3 工具调用Agent 真正伸手的地方Agent-Reach 最核心的机制一定是工具调用Tool Calling。这是 Agent 区别于普通聊天机器人的分水岭。原理上工具调用是这样的你给大模型一份工具清单每个工具包含名称、功能描述、参数结构。模型在推理时如果判断需要执行某个动作就会输出一个结构化的调用请求比如调用 read_file参数是 path/tmp/data.txt。你的程序解析这个请求真正去执行再把结果塞回给模型模型基于结果继续推理。这个循环可以跑很多轮直到任务完成。这里有个关键细节很多人忽略工具的描述文本质量直接决定 Agent 的调用准确率。描述写得太笼统模型会乱调参数说明不清楚模型会传错值。我见过一个案例某个工具的参数叫target描述只写了目标结果模型一会儿传文件名、一会儿传 URL、一会儿传 ID全乱套。后来把描述改成要读取的本地文件绝对路径例如 /home/user/report.txt准确率立刻上去了。所以如果你在用 Agent-Reach 或者类似工具花时间打磨工具描述比调模型参数更划算。2.4 与 GitHub 生态的衔接方式热搜词里 GitHub 相关的内容占了很大比重从github打不开到github镜像站再到github使用教程说明这个项目的分发和协作高度依赖 GitHub。Agent-Reach 作为开源项目它的价值不只是代码本身还有围绕它形成的使用范例、issue 讨论和二次开发。对使用者来说从 GitHub 获取这类工具有几个实操要点。第一优先看 release 页面而不是直接 clone main 分支release 版本通常经过测试main 分支可能处于半成品状态。第二看 README 里的环境要求部分Python 版本、系统依赖这些信息如果缺失说明项目成熟度还不够要有心理准备。第三翻 issue 区尤其是带 bug 标签的能提前知道哪些坑已经有人踩过。我个人的习惯是用任何开源工具前先花十分钟扫一遍最近的 issue往往能省下后面两小时的排查时间。3. 把 Agent-Reach 跑起来环境准备与首次运行3.1 Python 环境的干净搭建在动手之前环境一定要干净。我强烈建议用虚拟环境不要往系统 Python 里直接装东西。原因很简单Agent 类项目依赖变动频繁一旦污染了全局环境后面其他项目出问题你根本找不到原因。具体操作上先确认 Python 版本。Agent 类项目一般要求 3.9 以上3.10 或 3.11 是比较稳妥的选择。用python --version或python3 --version确认。如果版本太低去 Python 官网下载新版安装包安装时记得勾选Add Python to PATH这一步漏了后面命令行找不到 python 命令是新手最常见的坑。然后创建虚拟环境python -m venv agent-reach-envWindows 下激活agent-reach-env\Scripts\activatemacOS 和 Linux 下激活source agent-reach-env/bin/activate激活成功后命令行前面会出现(agent-reach-env)前缀。这时候再装依赖就只影响这个环境。用完deactivate退出干干净净。提示如果你在 Windows 上执行激活脚本时报禁止运行脚本的错误这是 PowerShell 的执行策略限制。用管理员身份打开 PowerShell执行Set-ExecutionPolicy RemoteSigned后确认即可。这个坑我见过太多人卡住。3.2 依赖安装中的常见报错与处理依赖安装这一步是新手弃坑率最高的环节。我把常见的几类问题梳理一下。第一类是网络问题。pip 默认从官方源拉包国内访问经常超时。解决办法是换国内镜像源比如清华源pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple第二类是编译依赖缺失。有些包带 C 扩展安装时需要编译器。Linux 上通常要装python3-dev和build-essentialmacOS 上要装 Xcode Command Line Tools。报错信息里如果出现 gcc failed 或 Microsoft Visual C 14.0 is required基本就是这个原因。第三类是版本冲突。如果 requirements.txt 里某个包和已装的包版本不兼容pip 会报 ResolutionImpossible。这时候不要硬装先看看是不是虚拟环境没激活或者之前装过旧版本。实在不行就删掉虚拟环境重建比手动解决依赖冲突快得多。我个人的经验是装依赖时加-v参数看详细日志报错时能快速定位是哪一步出的问题。另外把安装过程完整记录下来下次换机器能直接复用省得重新踩一遍。3.3 模型接入的配置思路Agent-Reach 要跑起来必须接一个大模型作为推理引擎。这里涉及几个配置项模型服务地址、API 密钥、模型名称。配置方式通常有两种环境变量或者配置文件。环境变量更安全不会把密钥写进代码仓库。典型做法是在项目根目录建一个.env文件写入MODEL_API_KEY你的密钥 MODEL_BASE_URL服务地址 MODEL_NAME模型名称然后在代码里用python-dotenv之类的库加载。注意.env一定要加进.gitignore否则密钥泄露是分分钟的事。我见过有人把密钥直接提交到公开仓库结果被人扫到盗刷损失不小。模型选择上Agent 场景对模型的指令遵循能力要求比较高尤其是工具调用的格式稳定性。有些模型聊天很流畅但一到结构化输出就乱这种不适合做 Agent 的推理引擎。建议先用小任务测试看模型能不能稳定输出符合格式的工具调用请求再决定是否长期使用。3.4 首次运行从一条命令到一次完整工具调用环境配好后第一次运行建议从最简单的任务开始比如让 Agent 读取一个本地文件并总结内容。这样能验证整条链路模型能不能理解任务、能不能正确选择工具、工具执行结果能不能回传、模型能不能基于结果生成最终回答。运行的时候把日志级别调到 debug观察每一步的输出。你会看到类似这样的流程用户输入 → 模型推理 → 输出工具调用请求 → 程序执行工具 → 结果回传 → 模型二次推理 → 最终回答。这个循环跑通一次你就真正理解 Agent 的工作机制了。如果卡在某一步按这个顺序排查模型有没有返回工具调用返回的格式对不对程序有没有正确解析工具执行有没有报错结果有没有成功回传逐环节定位比盲目改代码高效得多。4. 工具调用链路里那些文档不会写的坑4.1 工具描述写不好Agent 就会乱伸手前面提过工具描述的重要性这里展开讲。工具描述本质上是给模型看的使用说明书它的质量直接决定调用准确率。我总结了几条写描述的原则。第一功能描述要具体到场景不要写处理数据要写读取指定路径的 CSV 文件并返回前 N 行内容。第二参数说明要包含类型、格式和示例比如path字符串本地文件的绝对路径例如 /data/sales.csv。第三明确边界告诉模型什么情况下不该用这个工具比如此工具仅支持 CSV 格式其他格式请使用 xxx 工具。还有一个容易被忽略的点工具数量不要太多。有研究表明当工具数量超过一定阈值模型的调用准确率会明显下降。所以如果 Agent-Reach 支持动态加载工具建议按任务场景分组一次只暴露相关的几个工具而不是把所有工具一股脑塞给模型。4.2 上下文膨胀多轮工具调用后的性能衰减Agent 跑多轮任务时上下文会快速膨胀。每一轮的工具调用请求和返回结果都会追加到对话历史里几轮下来 token 数就上去了。这带来两个问题一是成本上升二是模型对早期信息的注意力下降容易忘记最初的任务目标。处理办法有几个。一是对工具返回结果做截断或摘要比如读取大文件时只返回关键片段而不是全文。二是定期清理历史把已经完成的子任务的中间过程压缩掉。三是把长期需要的信息写进系统提示词而不是依赖对话历史传递。我在实际项目里遇到过 Agent 跑了七八轮之后开始跑偏的情况明明任务是整理文件它突然开始分析文件内容。排查后发现就是上下文太长早期指令被淹没了。后来加了历史压缩逻辑问题就解决了。4.3 错误处理工具执行失败后 Agent 该怎么办工具执行失败是常态网络会断、文件会不存在、权限会不足。关键是失败之后 Agent 怎么反应。如果错误信息直接抛给模型模型可能会重试同样的操作陷入死循环。更好的做法是把错误分类给出可操作的提示。比如文件不存在就提示模型检查路径权限不足就提示换路径或告知用户网络超时就建议稍后重试。另外要设置重试上限。我一般设 3 次超过就终止任务并返回明确的失败原因。没有上限的重试是灾难既烧钱又浪费时间。4.4 安全边界别让 Agent 拿到不该拿的权限这是最容易被忽视但后果最严重的问题。Agent 能执行工具就意味着它能操作你的系统。如果工具里有执行任意 shell 命令这种能力而模型又被诱导去执行恶意命令后果不堪设想。防护措施有几层。第一工具能力最小化只开放任务必需的不要图省事给一个万能执行器。第二对危险操作加确认机制比如删除文件、修改系统配置这类执行前要求用户确认。第三对工具参数做校验路径限制在工作目录内命令做白名单过滤。我个人的原则是Agent 的工具权限按如果这个操作被恶意触发最坏后果是什么来评估。承受不了最坏后果的就不给这个权限。5. 从能跑到好用Agent-Reach 的进阶玩法5.1 把常用操作封装成自定义工具Agent-Reach 跑通之后最有价值的扩展方向是把你自己的常用操作封装成工具。比如你经常要处理某类数据、调用某个内部接口、执行某套固定流程都可以包成工具让 Agent 调用。封装的时候注意几点。一是工具要单一职责一个工具只做一件事不要搞万能工具。二是返回值要结构化方便模型理解JSON 是通用选择。三是做好异常处理工具内部出错要返回清晰的错误信息而不是直接抛异常。我自己的做法是维护一个工具库按业务领域分类。每次有新需求先看能不能复用已有工具不能就新增一个。时间长了这个工具库就成了 Agent 的能力底座越用越顺手。5.2 多工具编排让 Agent 完成复杂任务单个工具能做的事有限真正的威力在于多工具编排。比如一个整理下载文件夹的任务Agent 需要列出文件 → 按类型分类 → 创建目标文件夹 → 移动文件 → 生成报告。这一串操作涉及多个工具Agent 要自己规划顺序、处理依赖、应对中间失败。编排能力考验的是模型的规划能力。任务描述越清晰模型规划越靠谱。所以给 Agent 下任务时把目标、约束、期望输出说清楚比让它自己猜要高效得多。如果发现模型规划能力不够可以考虑引入任务分解的中间层先用一个模型把大任务拆成子任务列表再逐个执行。这样虽然多了一步但稳定性提升明显。5.3 日志与可观测性出问题时怎么查Agent 系统最麻烦的地方在于出问题时你很难一眼看出是哪一环坏了。所以日志和可观测性必须提前做好。至少要记录这些信息每次模型调用的输入输出、每次工具调用的参数和结果、每轮循环的耗时、token 消耗。有了这些出问题时能快速定位。我习惯把日志按会话 ID 分组一个任务的完整链路能串起来看。更进一步可以做可视化把 Agent 的决策过程画成时间线哪一步慢、哪一步错一目了然。不过这是锦上添花先把基础日志做扎实更重要。5.4 性能优化响应速度和成本控制Agent 的响应速度受几个因素影响模型推理速度、工具执行速度、循环轮数。优化方向也对应这几个。模型层面能用小模型搞定的任务就别上大模型工具调用的格式遵循能力很多中小模型已经够用。工具层面耗时的操作考虑异步化不要让 Agent 干等。循环层面减少不必要的轮次比如把多个独立工具调用合并到一轮里。成本控制上最有效的是控制上下文长度和减少无效调用。我见过一个案例Agent 因为工具描述不清反复调用同一个工具试错token 消耗是正常情况的五倍。把描述改清楚成本立刻降下来。6. 关于 Agent-Reach 这类工具我踩过之后的几点体会用 Agent 工具这一年多我最大的体会是Agent 的能力上限不取决于模型多强而取决于你给它的工具和约束设计得多好。模型是通用的大脑但工具是专用的手脚。手脚设计得合理普通模型也能干出漂亮的活手脚设计得糟糕再强的模型也白搭。第二个体会是别追求一步到位。很多人一上来就想搭一个全自动的 Agent 系统结果复杂度爆炸调都调不动。正确的路径是从单个工具、单个任务开始跑通了再加工具、加场景逐步扩展。Agent-Reach 这种轻量 CLI 工具正好适合这个渐进路径。第三个体会是关于调试心态。Agent 的行为有随机性同样的输入两次运行结果可能不同。所以调试时不要指望复现而要关注概率。一个任务跑十次成功八次那问题就在那两次失败里去分析失败案例的共同点比纠结单次结果有意义得多。最后说个实操小技巧给 Agent 写任务描述时用角色 目标 约束 输出格式这个结构效果比随便写一句话好很多。比如你是一个文件整理助手目标是把下载文件夹里的文件按类型分类约束是不能删除任何文件输出格式是分类结果的 Markdown 表格。这种结构化的指令模型理解起来准确率高得多这也是我在大量实践中总结出来的最省事的写法。

相关新闻

Codex+Superpowers+WSL实战:新手全栈开发工作流搭建指南

Codex+Superpowers+WSL实战:新手全栈开发工作流搭建指南

1. 这不是又一篇“安装教程”,而是一份真实踩过坑的WSLCodexSuperpowers组合实战手记Codex、Superpowers、WSL——这三个词凑在一起,对刚接触代码辅助工具的新手来说,像一份没写清楚配料表的食谱:知道最终要端出一盘热腾腾的“智能…

2026/10/9 6:54:42 阅读更多 →
AGP升级必看:从applicationVariants到androidComponents的变体API迁移指南

AGP升级必看:从applicationVariants到androidComponents的变体API迁移指南

如果你的工程还在用applicationVariants、libraryVariants这两个变体入口,那么最近升级 AGP 时大概率已经撞墙了。这两个老入口在 AGP 7.0 里被明确划入废弃区,AGP 8.0 开始直接查无此项,官方给出的替代路径就是androidComponents。我自己在维…

2026/10/9 6:53:41 阅读更多 →
superpowers技能包:为Codex CLI注入工程化执行流程

superpowers技能包:为Codex CLI注入工程化执行流程

说实话,第一次在终端里看到“superpowers”这个项目名的时候,我以为是哪个中二少年写的玩具脚本。直到我把它接进每天在用的 Codex CLI 工作流,跑完一个真正的 Java 服务重构任务,我才意识到这工具解决的问题有多接地气。如果你也…

2026/10/9 6:53:41 阅读更多 →

最新新闻

Arthas v3.7.2:Java线上诊断与字节码热修改实战指南

Arthas v3.7.2:Java线上诊断与字节码热修改实战指南

简介:Arthas v3.7.2 是一款面向Java开发者、运维工程师及计算机专业学生的开源诊断工具,专为线上Java应用的无侵入式问题定位、性能分析与热调试设计,广泛适用于毕业设计、系统软件开发、模板建站及计算机案例研究等实践场景。资源包共2000个…

2026/10/9 12:28:46 阅读更多 →
Cognex Deep Learning GPU Allocation:GPU分配机制详解

Cognex Deep Learning GPU Allocation:GPU分配机制详解

Cognex Deep Learning GPU Allocation:GPU分配机制详解大家好 这里是「代码简单说」 记录 Cognex Deep Learning 4.2 中 GPU Allocation(GPU 分配)机制,方便后续配置多 GPU 环境、训练工具以及分析 GPU 利用率时快速查阅。SEO关键…

2026/10/9 12:28:46 阅读更多 →
基于Docker的分布式爬虫服务:架构、编排与踩坑实战

基于Docker的分布式爬虫服务:架构、编排与踩坑实战

简介:一份基于Docker的分布式爬虫服务项目资料,面向Python与爬虫方向的学习者、毕业设计及课程设计使用者。资源以Go语言实现核心爬虫服务,配套Docker容器化部署方案,涵盖单机抓取、客户端调用、服务端调度等完整模块,…

2026/10/9 12:28:46 阅读更多 →
JavaWeb蛋糕店源码跑通全流程:JSP+Servlet+MySQL实战解析

JavaWeb蛋糕店源码跑通全流程:JSP+Servlet+MySQL实战解析

简介:一份基于JavaWeb的蛋糕店网站系统源码,面向计算机专业学生的课程设计、毕业设计或期末大作业场景,项目经导师指导并获得97分好评,整体完整、可直接运行。系统采用Servlet/JSP与JavaBean分层设计,覆盖商品展示、购…

2026/10/9 12:28:46 阅读更多 →
DRNN动态递归神经网络:面向工业控制的自适应时序建模

DRNN动态递归神经网络:面向工业控制的自适应时序建模

简介:本资源是一篇聚焦非线性系统智能控制的学术论文,面向自动化、控制工程及人工智能方向的研究生、科研人员与工程师,重点解决传统线性模型难以建模的复杂系统控制难题。论文提出一种融合DRNN回归神经网络与自适应PID策略的新型控制算法&am…

2026/10/9 12:28:46 阅读更多 →
全国省份城市数据库表:MySQL行政区划表设计与导入实战

全国省份城市数据库表:MySQL行政区划表设计与导入实战

简介:这份资源面向需要在中国行政区划数据上做开发的 MySQL 使用者,提供一份可直接导入的全国省份城市数据库表脚本,适合搭建地理信息系统、物流管理、人口统计分析等需要地域信息的应用场景,也适合作为学习 SQL 建表与层级数据设…

2026/10/9 12:27:45 阅读更多 →

日新闻

Java时间API实战:LocalDate、Date与ZonedDateTime的转换与避坑指南

Java时间API实战:LocalDate、Date与ZonedDateTime的转换与避坑指南

Java时间API这个话题,隔三差五就会在群里被翻出来讨论一次。上周还有个同事线上处理一个订单超时问题,排查到最后发现是ZonedDateTime序列化后时区丢了,用户在下单当天晚上看到的时间整整差了8个小时。这类问题几乎每个做Java开发的人都遇到过…

2026/10/9 0:00:49 阅读更多 →
EasyTier实践:从NAT穿透到子网代理的异地组网部署与排错

EasyTier实践:从NAT穿透到子网代理的异地组网部署与排错

前几个月我手头有好几台机器需要互相访问:办公室台式机、家里 NAS、还有一台云主机。如果只是偶尔传个文件倒还好,问题是工作场景经常要在几处环境之间来回切换,每次都先登录跳板机再层层代理,实在折腾。我先后试过端口映射、自建…

2026/10/9 0:00:49 阅读更多 →
AI Agent工程实战:从七要素到七个决策点的系统设计指南

AI Agent工程实战:从七要素到七个决策点的系统设计指南

AI Agent 这个词在过去一年里被反复提及,但真正动手搭过一套能跑起来的 Agent 系统的人都知道,从"知道它是什么"到"让它稳定干活"之间隔着一整套工程决策。我前后参与过几个 Agent 项目的落地,从最初用现成框架拼装&…

2026/10/9 0:01:50 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:32 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:40 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 10:11:06 阅读更多 →

月新闻

我发现了一个新思路:用 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/8 21:13:17 阅读更多 →
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/8 15:26:17 阅读更多 →
黑夜航拍船只数据集训练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/9 6:17:20 阅读更多 →