找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

2965

积分

0

好友

401

主题
发表于 3 小时前 | 查看: 4| 回复: 0

与其每次向 AI 模型倾倒大量文档,不如为它构建几个专门的 CLI 小工具。近日,OpenAI Codex 团队的成员 Nick Baumann 公开分享了他们如何解决上下文过长问题的实战经验。

Nick Baumann的X个人主页截图

他的核心思路是:虽然 MCP 连接器(如 Slack、Linear、Sentry 等)解决了数据访问问题,但原始数据往往过于庞大且杂乱。这些数据中混杂了大量工具输出、失败的尝试、中间过程,以及临时有用的上下文,对当前任务大多已经无效,却会严重占用 token。

在这种情况下,Nick 的解决方案是分两步走:首先用 Codex 创建 CLI 工具;第二步是把 CLI 包裹进 Skill。他称之为“Agent友好型 CLI”——这种工具能够搜索、缩小范围、重试、管道输出、写入大文件、查看帮助,并根据上一步结果生成下一步命令。

Codex线程:检索过去的对话记录

Codex 的原始会话档案太嘈杂,如果直接把整个存档丢给模型,虽然它能读取,但实际效果并不理想:上下文过长会导致推理速度变慢;输出噪音增多,模型容易被无关历史干扰;频繁使用时,效率低下,体验很差。

Codex Threads工具界面截图

Nick 的解决方案是:不要让 Codex 直接读原始存档,而是让它通过专门的 CLI 工具来读取自己的历史线程。

codex-threads --json sync
codex-threads --json messages search "build a CLI" --limit 20
codex-threads --json threads resolve "tweet idea"
codex-threads --json threads read <session-id>
codex-threads --json events read <session-id> --limit 50

保留一个本地可搜索的 ~/.codex/sessions 索引,然后给出 Codex 命令来搜索、解析和读取旧线程。

“当我想把一个思路转化为一种技能时,这一点尤其有用。很多好的技能都是从找出这个思路中做得好的部分,然后保留这种模式开始的。”

Slack-cli:让 Codex 自己去 Slack 里挖掘关键信息

当答案隐藏在一个很难查找的线程中时,手动搜索的难度很大。

Slack-cli搜索操作终端截图

Nick Baumann 开发了一个专属的 Slack-cli 工具,让 Codex 能够读取 Slack 中的信息——例如,为什么做出了应用服务器身份验证的决定,其他人是否也遇到了相同的本地开发故障,或者评审者在发布渠道中已经达成了什么共识。

当 Codex 拥有这个 CLI 工具 时,它可以通过广泛搜索、解析具体线索、提取附近的上下文、引用重要信息来高效获取所需数据。

slack-cli search "app server auth" --all-pages --max-pages 3 --json
slack-cli resolve-permalink "https://openai.slack.com/archives/..."
slack-cli read-thread L143 123522523239.633199 --json
slack-cli context R152 25723525099.626199 --before 5 --after 5 --json

Nick 强调:Slack-cli 仍然使用已获批准的 Codex 应用网关,并非权限规避方案。它采用相同的访问模型,只是将其塑造成代理可以组合的命令。

Typefully-cli:让 Codex 专注写内容,而不是每次都重学 API

Nick Baumann 用 Codex 编写和排期大量内容时,主要依赖 Typefully 这个工具。Typefully 的 API 虽然设计得不错,但每次让 Codex 帮忙写草稿,它都需要重新“学习”整个 API,这显然非常低效。

他的解决办法是:开发一个轻量且专注的 typefully-cli,只包含实际使用的少数操作,让 Codex 每次都能快速、准确地调用,而不用反复处理复杂的完整 API。

typefully-cli --json drafts list --social-set <id> --limit 20
typefully-cli --json drafts read --social-set <id> <draft-id>
typefully-cli --json drafts create --social-set <id> --body-file draft.json
typefully-cli --json media upload --social-set <id> ./image.png
typefully-cli --json media upload --social-set <id> ./image.png
typefully-cli --json queue schedule-read --social-set <id>

Codex 读取了 API 文档,把 typefully-cli 构建成一个小型的 Rust 二进制文件,可以从任何仓库运行。

同样,围绕这个 CLI 的 Skill 和二进制文件一样重要。Codex 需要被明确“教导”如何正确使用这个工具。Nick 在把 typefully-cli 包装成 Skill 时,加入了以下核心规则:

  • 要求输出使用 JSON 格式,便于结构化处理;
  • 默认行为是创建草稿,而不是直接操作正式内容;
  • 当 Shell 命令引用变得复杂烦人时,优先使用 --body-file 从文件读取内容;
  • 除非用户明确要求,否则绝不发布、调度、删除或覆盖任何内容。

有用的部分很简单:如果我不断给 Codex 提供相同的文档、导出数据、日志或 API 异常情况,我通常希望停止解释,而是给它一个指令。将那个命令行界面(CLI)封装成一个 Skill,这样 Codex 就能记住如何使用。

具体的操作手册可以在 OpenAI 开发者文档中找到:https://developers.openai.com/codex/use-cases/agent-friendly-clis

参考链接:Nick Baumann 的 X 帖子:https://x.com/nickbaumann_/status/2042705384306336083

本文经验分享源自 OpenAI Codex 团队实战,更多技术讨论欢迎访问 云栈社区 交流。




上一篇:马斯克XChat应用上线实测:无需手机号、Rust构建的端到端加密通信工具
下一篇:从直流到交流:三极管放大电路分析的4个核心步骤与实战技巧
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-4-15 04:27 , Processed in 0.598904 second(s), 40 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表