公益站的codex压缩上下文踩坑记录
- 内容介绍
- 文章标签
- 相关推荐
非常感谢大佬们提供的公益站,
记录一下我遇到的情况,有些站点不支持 /v1/responses/compact 接口,响应404,导致codex在压缩上下文时直接中断,我深入研究了一下,也可以在 /v1/responses 接口添加 context_management 和 compact_threshold参数实现 /compact 接口,但是经过我测试,不支持 /v1/responses/compact 接口的通过 /v1/responses 方式实现压缩也无效,返回的响应格式是普通对话,而不是带 encrypted_content 参数的压缩对话
头疼,一点办法也没有,希望各位公益站大佬可以支持这个压缩接口
测试方法:
上下文需要大于1000才会触发压缩
CONTENT=$(python - <<'PY'
print("记住:ORBIT-7319\n" + ("x " * 1200))
PY
)
curl https://code.claudex.us.ci/v1/responses \
-H "Authorization: Bearer OPENAI_API_KEY" \
-H "Content-Type: application/json" \
-d "$(jq -n --arg content "$CONTENT" '{
model: "gpt-5.4",
store: false,
stream: false,
max_output_tokens: 16,
context_management: [{type:"compaction", compact_threshold:1000}],
input: [{role:"user", content:$content}]
}')"
网友解答:
--【壹】--:
我发现之前对话都消失了,请问怎么把之前的信息都同步过来,积攒了好久的内容都没了
--【贰】--:
我在vscode里用的codex插件, 官方订阅的, 请问怎么手动触发压缩上下文呢? 插件没找到对应的命令, 我要求他压缩上下文他只说要压缩但是不干
--【叁】--:
有没有修改model_providers中的name呢? 如果是name = “OpenAI” 那么走的是gpt-5.4-openai-compact这种模型接口,如果你配置的不是这个name那就是默认走gpt-5.4就能压缩。
--【肆】--:
可以一键同步
--【伍】--:
实际上codex-cli自己也没在用/responses的context_management,即便是加上也未必生效喔。
要加就直接一步到位,/responses/compact。
详细解释可看:
这个影响蛮大的。codex两条路径,一条是老款的 摘要提示词模板+v1/responses 有感压缩,输出的是人类可读的摘要信息,信息密度低,容易跑偏,压缩后大概率codex会根据摘要去重新去爬上下文,如发起grep或重新索引文档之类的,这个过程相当耗时。
另一条是走二进制的无感压缩路线,调用的是/v1/responses/compact,输出的是 高信息密度,压缩率更高的encrypted_content字段 ,个人猜测里面也可能包含了一些模型层面需要的缓存或者参数之类的东西在里面,总之看不见具体内容,体验下来确实精度更高效果更佳,在用户侧这边,codex只会提示一下内容已经compact,完全没有人类可读的输出,会话可以无缝地往下走,速度非常快。
[model_providers.axonhub] name = "OpenAI"这样配置name可触发第二个路径,但现在因为/v1/responses/compact转发报错用不了,超阈值压缩失败,直接无法继续对话了。
[Feature/功能]: 支持 /responses/compact 端点转发
已打开 09:14AM - 01 Mar 26 UTC 已关闭 06:23AM - 28 Mar 26 UTC ha0xin enhancement### Pre-submission Checklist / 提交前检查 - [x] I have searched the [existing issues…](https://github.com/looplj/axonhub/issues) and this feature has not been requested / 我已搜索现有 issues,此功能尚未被提出 - [x] I have read the [documentation](https://github.com/looplj/axonhub#readme) / 我已阅读文档 ### Problem Statement / 问题描述 添加Codex渠道后,在codex中使用 /compact 命令压缩上下文,出现 ``` Error running remote compact task: stream disconnected before completion: expected value at line 1 column 1 ``` 报错,查找源代码发现 Axonhub 不支持 `/responses/compact` 端点 注:`.codex/config.toml` 中name需要为字符串 `OpenAI`,才能调用`/responses/compact` ```toml [model_providers.axonhub] name = "OpenAI" ``` ### Proposed Solution / 期望方案 支持 `/responses/compact` 请求转发 ### Alternatives Considered / 备选方案 _No response_ ### Feature Category / 功能分类 API Compatibility / API 兼容性 ### Additional Context / 其他补充信息 _No response_
--【陆】--:
感谢分享
--【柒】--:
vscode插件不支持这个功能,但是可以在终端压缩后回到插件对话
--【捌】--:
image1392×2001 358 KB
这样返回算支持吗
--【玖】--:
返回数据这样应该就是可以用了吧,在newapi也是也是显示通过
image1920×1472 502 KB
--【拾】--:
佬研究的很深学到了
这个项目看起来还不错
因为部分公益站不支持 /responses/compact 接口,很多时候无法使用这个功能,挺可惜的
--【拾壹】--:
刚才找了下,在codex下有个state_5.sqlite,里面threads表model_provider字段改一下好像就可以?
请问站内佬的脚本可以同步到新model_provider吗?
--【拾贰】--:
哇真可以了!
大佬太强了,我下午还和ai对话半天还是没找到原因
--【拾叁】--:
如果是codex的话对话记录是跟着provider走的,切换回来就行,并没有丢失,如果想拷贝记录站内之前有个佬做了个脚本,可以搜下关键词
--【拾肆】--:
这个看起来是普通对话,类似这种就是压缩对话
image1758×2691 319 KB
--【拾伍】--:
感谢佬,数据同步过来了
--【拾陆】--:
你是指怎么resume对话吧,你要在cc switch里,把model_provider的名字用同一个,找不回来是因为你切换账户的时候名字不一样
image655×258 23.6 KB
--【拾柒】--:
对,这个就是压缩对话
非常感谢大佬们提供的公益站,
记录一下我遇到的情况,有些站点不支持 /v1/responses/compact 接口,响应404,导致codex在压缩上下文时直接中断,我深入研究了一下,也可以在 /v1/responses 接口添加 context_management 和 compact_threshold参数实现 /compact 接口,但是经过我测试,不支持 /v1/responses/compact 接口的通过 /v1/responses 方式实现压缩也无效,返回的响应格式是普通对话,而不是带 encrypted_content 参数的压缩对话
头疼,一点办法也没有,希望各位公益站大佬可以支持这个压缩接口
测试方法:
上下文需要大于1000才会触发压缩
CONTENT=$(python - <<'PY'
print("记住:ORBIT-7319\n" + ("x " * 1200))
PY
)
curl https://code.claudex.us.ci/v1/responses \
-H "Authorization: Bearer OPENAI_API_KEY" \
-H "Content-Type: application/json" \
-d "$(jq -n --arg content "$CONTENT" '{
model: "gpt-5.4",
store: false,
stream: false,
max_output_tokens: 16,
context_management: [{type:"compaction", compact_threshold:1000}],
input: [{role:"user", content:$content}]
}')"
网友解答:
--【壹】--:
我发现之前对话都消失了,请问怎么把之前的信息都同步过来,积攒了好久的内容都没了
--【贰】--:
我在vscode里用的codex插件, 官方订阅的, 请问怎么手动触发压缩上下文呢? 插件没找到对应的命令, 我要求他压缩上下文他只说要压缩但是不干
--【叁】--:
有没有修改model_providers中的name呢? 如果是name = “OpenAI” 那么走的是gpt-5.4-openai-compact这种模型接口,如果你配置的不是这个name那就是默认走gpt-5.4就能压缩。
--【肆】--:
可以一键同步
--【伍】--:
实际上codex-cli自己也没在用/responses的context_management,即便是加上也未必生效喔。
要加就直接一步到位,/responses/compact。
详细解释可看:
这个影响蛮大的。codex两条路径,一条是老款的 摘要提示词模板+v1/responses 有感压缩,输出的是人类可读的摘要信息,信息密度低,容易跑偏,压缩后大概率codex会根据摘要去重新去爬上下文,如发起grep或重新索引文档之类的,这个过程相当耗时。
另一条是走二进制的无感压缩路线,调用的是/v1/responses/compact,输出的是 高信息密度,压缩率更高的encrypted_content字段 ,个人猜测里面也可能包含了一些模型层面需要的缓存或者参数之类的东西在里面,总之看不见具体内容,体验下来确实精度更高效果更佳,在用户侧这边,codex只会提示一下内容已经compact,完全没有人类可读的输出,会话可以无缝地往下走,速度非常快。
[model_providers.axonhub] name = "OpenAI"这样配置name可触发第二个路径,但现在因为/v1/responses/compact转发报错用不了,超阈值压缩失败,直接无法继续对话了。
[Feature/功能]: 支持 /responses/compact 端点转发
已打开 09:14AM - 01 Mar 26 UTC 已关闭 06:23AM - 28 Mar 26 UTC ha0xin enhancement### Pre-submission Checklist / 提交前检查 - [x] I have searched the [existing issues…](https://github.com/looplj/axonhub/issues) and this feature has not been requested / 我已搜索现有 issues,此功能尚未被提出 - [x] I have read the [documentation](https://github.com/looplj/axonhub#readme) / 我已阅读文档 ### Problem Statement / 问题描述 添加Codex渠道后,在codex中使用 /compact 命令压缩上下文,出现 ``` Error running remote compact task: stream disconnected before completion: expected value at line 1 column 1 ``` 报错,查找源代码发现 Axonhub 不支持 `/responses/compact` 端点 注:`.codex/config.toml` 中name需要为字符串 `OpenAI`,才能调用`/responses/compact` ```toml [model_providers.axonhub] name = "OpenAI" ``` ### Proposed Solution / 期望方案 支持 `/responses/compact` 请求转发 ### Alternatives Considered / 备选方案 _No response_ ### Feature Category / 功能分类 API Compatibility / API 兼容性 ### Additional Context / 其他补充信息 _No response_
--【陆】--:
感谢分享
--【柒】--:
vscode插件不支持这个功能,但是可以在终端压缩后回到插件对话
--【捌】--:
image1392×2001 358 KB
这样返回算支持吗
--【玖】--:
返回数据这样应该就是可以用了吧,在newapi也是也是显示通过
image1920×1472 502 KB
--【拾】--:
佬研究的很深学到了
这个项目看起来还不错
因为部分公益站不支持 /responses/compact 接口,很多时候无法使用这个功能,挺可惜的
--【拾壹】--:
刚才找了下,在codex下有个state_5.sqlite,里面threads表model_provider字段改一下好像就可以?
请问站内佬的脚本可以同步到新model_provider吗?
--【拾贰】--:
哇真可以了!
大佬太强了,我下午还和ai对话半天还是没找到原因
--【拾叁】--:
如果是codex的话对话记录是跟着provider走的,切换回来就行,并没有丢失,如果想拷贝记录站内之前有个佬做了个脚本,可以搜下关键词
--【拾肆】--:
这个看起来是普通对话,类似这种就是压缩对话
image1758×2691 319 KB
--【拾伍】--:
感谢佬,数据同步过来了
--【拾陆】--:
你是指怎么resume对话吧,你要在cc switch里,把model_provider的名字用同一个,找不回来是因为你切换账户的时候名字不一样
image655×258 23.6 KB
--【拾柒】--:
对,这个就是压缩对话

