【拯救 5.6 Sol(2)】让 Codex 又快又准的原生模型工具

本帖使用社区开源推广,符合推广要求。我申明并遵循社区要求的以下内容:

  • 我的帖子已经打上 开源推广 标签: 是
  • 我的开源项目完整开源,无未开源部分: 是
  • 我的开源项目已链接认可 LINUX DO 社区: 是
  • 我帖子内的项目介绍,AI生成、润色内容部分已截图发出: 是
  • 以上选择我承诺是永久有效的,接受社区和佬友监督: 是

以下为项目介绍正文内容,AI生成、润色内容已使用截图方式发出


为codex添加五个模型能使用的原生工具
通过MCP的方式向模型暴露。Mac Linuc Windows的cli和app均支持

  • read工具(目前支持一切常规编码文本文件,pdf文字或图片模式读取,后续会添加office读取)
  • glob工具:用于查找文件
  • grep工具:查找文件内容
  • bash前后台终端工具(windows使用git bash,mac linux使用系统bash)
  • 一个小巧的replace工具,用于匹配词的批量替换,比如将某文档某个函数名批量替换为另一个

五大工具完全避免codex将注意力放在各种终端各种命令拼写上。这会显著提高模型完成任务速度和准确性。对于Windows用户,这意味着可以永久不再受powershell折磨。

安装方法

windos用户需要安装git:Git - Install for Windows

全局安装(需要node.js:Node.js — Download Node.js® ):

npm install --global fastctx

如遇404,无法找到包,或无法更新,运行(本次安装强制使用官方源安装):

npm install --global fastctx --registry=https://registry.npmjs.org/

之后终端直接输入

fastctx

进入控制终端。存在自动更新检查

FastCtx 解决什么问题

要理解本项目做了什么,需要理解codex本身是如何和电脑系统进行交互的
下列以read和grep为例

1. read:读取文件

原生 Codex 读取一个 GBK 文件的第 120~159 行,可能需要临时构造:

$offset = 120
$limit = 40
$line = $offset

$bytes = [IO.File]::ReadAllBytes('V:\repo\docs\legacy.txt')
$text = [Text.Encoding]::GetEncoding(936).GetString($bytes)

$text -split "\r?\n" |
  Select-Object -Skip ($offset - 1) -First $limit |
  ForEach-Object { "{0}`t{1}" -f $line++, $_ }

这里的代码页、分页、行号和“是否还有后续”都要由模型自己处理。
在FastCtx下

{
  "file_path": "V:/repo/docs/legacy.txt",
  "encoding": "gbk",
  "offset": 120,
  "limit": 40
}

工具调用结束后返回

文件文本
(Partial: lines 120-159 of 512 shown. Continue with offset=160.)

这能清晰的看出二者区别,让模型进行结构化的函数调用是一定比手动更加清晰,结果更明确。5.6sol是一个被codex拖累的模型,大量的注意力会放在命令拼写上而不是任务本身。

2. grep:搜索文件内容

原生 PowerShell 搜索整个项目:

Get-ChildItem -LiteralPath 'V:\repo' -Recurse -File -Force |
  Where-Object { $_.FullName -notmatch '[\\/]\.git[\\/]' } |
  Select-String -Pattern '^TODO$' -Context 1,1

Select-String 本身支持逐行正则搜索,但目录遍历规则需要模型自己拼接。

FastCtx 调用:

{
  "pattern": "^TODO$",
  "path": "V:/repo",
  "output_mode": "content",
  "context": 1
}

配置介绍

  • fastctx是一个mcp,他通过TUI进行安装,TUI可进行配置,更新检查,查看运行终端等操作。但模型调用环境随codex自动启动和终止,无需一直开着TUI。


详情见TUI选项和描述
需要注意的是

  • 输出档位是config.toml中的控制全局工具单次输出的最高长度。设置太高会导致上下文被快速占满,太低会导致模型产生太多读取次数。如果不知道这些什么意思,输出部分保持全默认
  • 扩展工具部分:bash终端启用后模型会使用我们提供的终端替代codex原始终端,windos强烈建议开启,linux和mac用户,如果需要我们提供的新功能,也可以开启

终端工具

fastctx提供这几个工具

工具 用途
run 前台执行 Bash 命令
run_background 启动后台 Bash 任务
job_output 增量读取后台任务输出
job_kill 终止后台任务的整个进程树
job_list 找回运行中及已留存的终态任务
  • run命令是前台终端,这是模型一次工具调用,模型会被挂起直到终端结束。存在timeout,但模型会自行选择前台还是后台终端。
  • run_background是启动一次后台终端,后台终端会运行在独立的和codex解耦的fastctx内核中,不和模型会话状态绑定,模型不会被挂起阻塞。
  • 模型能随时读取后台终端最新输出。终端内容会存储,任务存储上限即配置:所有会话后台终端输出内容在磁盘中总空间预算。若超出会自动从最老的进行清理(不影响运行中终端)
  • 后台终端无超时参数只要电脑不关机,进程不崩溃就会一直运行。这么做是为了避免长训练之类的终端任务被误杀。模型可手动终止,用户这边可以在TUI的任务界面看到具体信息。
  • 假如电脑意外重启,同一个会话下模型也可凭终端id查看输出

仓库地址

系列文章

1076 个赞
【拯救 5.6 Sol(1)】开箱即用、快速高效、减少上下文腐烂的Codex子代理实践
Codex日常拷打PowerShell
chatGPT APP天天跟powershell互搏怎么办
Codex Agent運行環境選擇
求问,CodeX有视觉理解能力吗
一句话,让codex为我节省70%token
【Codey】一个Codex Desktop优化增强工具(这次真没严重bug了)
CodeGraph + Fastctx + 子代理的 Codex 提示词分享
【开源推广】Codex Pro Max:一个基于Tauri v2开发的Codex增强工具,包含dashi-taskboard管理和DeepSeek Harness一键开启远程访问功能
有没有什么增强 Windows codex 的东西
站内开源项目与有意义教程的收集贴(施工ing)(9月6日)
分享一下我的Codex 全局Agent (环境是WSL Debian虚拟机 Codex cli + 重IO任务调用 powershell)
大家现在codex直接win11还是wsl2?
天天在网上看段子,没想到有一天自己成了段子
奥特曼,你搞砸了一切。(原标题:那个最帅的男人的星辰站,出来解释下呗?)
我自己使用的一个GPT pro 5x节省额度的配置
【求助】在codex中使用Trellis会话中报上下文窗口已满,要开新线程或者清理历史记录
Codex windows版本集成终端选择
寻找2个站内发过的项目 1个搜索的mcp 1个codex多分组切换的
一觉睡醒codex项目暂停了,遇到这样的情况如何让他自己重试呢?
[分享] Windows上DSH的使用方式 (解决PowerShell疯狂报错)
很多人问我 为什么Claude那么难弄还不用ChatGPT作为主力…
怎么gpt-6.1-sol又开始出现终端编码问题了
windows上codex使用shell水土不服?
悲报,被gpt5.6sol删盘了

:face_holding_back_tears:来追更了,这个系列的帖子每一个方法我都用了,好用爱用感谢佬

22 个赞

TUI会自动安装mcp,config.toml和agents.md只新增相关条目,不影响原有内容

8 个赞

佬友这个系列话题质量都好高啊:tieba_071:,帮助我解决了很多问题

12 个赞


windows11

11 个赞

这个包已经发了,可能npm推送需要时间

8 个赞

下会有 mac 系列的我再来,最好有支援 Intel 老核心的.

5 个赞

已经支持

7 个赞

试试
清除 npm 本地缓存:
npm cache clean --force
重新执行标准全局安装:
npm install --global fastctx@latest

可能是npm缓存问题,曾经遇到过

6 个赞


系统:windows11

3 个赞

有人安装成功吗?方便的话反馈一下什么操作系统。fastctx是一个主包指向各平台包。npm的全球cdn节点都需要传播时间

1 个赞

npm不确定什么原因,晚上回去看看。想提前体验或测试可以下载github release版本的

4 个赞

npm上面显示有,实际安装是404

2 个赞

镜像 CDN 上还没有从官方 registry同步这个文件,解决办法有2个:

  1. 要么把npm registry 改为官方源
npm config set registry https://registry.npmjs.org/ --location=user

注意这会写入用户级配置,如果你的网络环境不太好,就不要这么搞了(但是能访问linux.do应该就没这个困扰,对吧:panda:)

  1. 或者把单次安装命令强制切换成从官方 registry
npm install --global fastctx@0.1.0 --include=optional --prefer-online --offline=false --registry=https://registry.npmjs.org
15 个赞

mac也需要用这个么,win上确实都是各种问题

1 个赞

也可以装,免去大量终端命令拼写。

2 个赞

我Chovy,这项目也太爽了,Codex速度直接起飞了

6 个赞

佬,codex现在实际已经使用了codex app提供的Node REPL mcp进行文件读取等操作,你这个mcp和那个相比有优势吗?

4 个赞

佬,安装好了,但是这些配置都不知道要设置什么参数合适,直接用默认的有提升吗?

2 个赞

全默认,然后打开bash终端就行了

5 个赞