fix: 修复自动 compact 阈值推导回退与模型元数据校验#309
Conversation
Codecov Report❌ Patch coverage is 📢 Thoughts on this report? Let us know! |
|
/simplify |
处理结果已完成 已修复项
Simplifier 检查已调用 code-simplifier 子代理复核,上述改动已是最小且清晰实现,无需进一步简化。 验证
未处理项:无(仅按本次触发评论范围执行)。 |
- fallback when resolver returns zero/negative without error - add regression tests for zero/negative resolver outputs - align compact/config docs with implicit-threshold behavior Generated with [codeagent](https://github.com/qbox/codeagent) Co-authored-by: Yumiue <188874804+Yumiue@users.noreply.github.com>
|
/review |
| Compact: agentcontext.CompactOptions{ | ||
| DisableMicroCompact: cfg.Context.Compact.MicroCompactDisabled, | ||
| AutoCompactThreshold: autoCompactThreshold(cfg), | ||
| AutoCompactThreshold: s.autoCompactThreshold(ctx, cfg), |
There was a problem hiding this comment.
prepareTurnSnapshot() 每轮都会调用 s.autoCompactThreshold(ctx, cfg)。在隐式阈值模式下,这会进入 resolver 并触发 ListProviderModelsSnapshot(),从 catalog store 读取快照(可能是磁盘 JSON 读+反序列化)再合并模型描述,属于热路径上的重复开销。建议把该阈值按 provider+model+相关 auto_compact 配置 做 run 内缓存,只有这些输入变化时才重新解析。
|
/simplify |
处理结果已按本次 本次修复与简化
验证
提交与推送
未完成项:无。 |
- cache derived auto compact threshold per run using provider/model/auto_compact key - recompute only when key changes to avoid repeated resolver snapshot lookups in hot path - simplify run flow by extracting session lock binding and self-healing prompt injection helpers - add runtime tests for cache hit and key-change recompute behavior Generated with [codeagent](https://github.com/qbox/codeagent) Co-authored-by: Yumiue <188874804+Yumiue@users.noreply.github.com>
|
/code 修复编译报错 |
处理结果已修复本分支编译报错并完成验证,问题是 本次改动
验证结果
提交与推送
未执行项:无。 |
|
/code 解决测试失败 |
处理结果已按“解决测试失败”完成修复并推送到当前 PR 工作分支。 修复内容
验证结果
提交与推送
未完成项:无。 |
背景
context.auto_compact.input_token_threshold <= 0的隐式模式下,provider/catalog 查询失败会把自动压缩静默降成0,没有走保底阈值。provider.yaml.models缺少 fail-fast 校验,错误配置会被悄悄吞掉。本次修改
internal/config/state新增自动 compact 阈值解析器,provider 选择、catalog 输入或 snapshot 查询失败时统一回退到fallback_input_token_threshold。models增加id、context_window、max_output_tokens和重复模型 ID 的校验,错误配置在加载阶段直接失败。/etc/passwd这类绝对路径的安全判定漏洞。验证
go test ./internal/config/... ./internal/runtime ./internal/app ./internal/gateway/handlers ./internal/tools/bash说明
go test ./...仍会被当前主线internal/tui/infra的既有平台测试问题阻塞,本 PR 没有扩大范围处理那部分历史问题。