Trellis的上下文注入可能导致缓存降低

Ma1r6K 2026-07-07 13:33 1

目前的话我的使用环境(Trellis0.6.5和pi)下基本上能够稳定复现这个问题,当然缓存既可能是客户端也可能是上游渠道,我这里只是提出一个现象,各位佬如果对token开支和缓存命中比较敏感的话可以自己去看看。


具体现象就是可能第一个请求是1w3的缓存,第二次就会掉到3k,然后第三次就是正常重建后的缓存。经过几天的收集和日志排查,我发现Trellis的before_agent_start每次都会通过buildContext()动态的注入task的文档内容到系统提示词。那么也就是说,user->assistant过程中如果你对task本身的prd等要注入的东西有改动,那么下次你发消息的时候,系统提示词的内容就会改变了。当然怎么做缓存肯定是基于上游渠道,所以这里只是我的观察。


这个也是他的设计,所以目前我的用法是如果观察到有对task相关文件的改动我就会开新对话continue来防止这种情况。在我的使用场景里是够用了,其实也可以直接改他的源码把他的注入改为注入到用户消息,不过考虑到他这么设计我就没折腾了…


看看有没有佬遇到过类似的问题,有没有什么处理方案。以上内容纯手写,markdown语法是我手动加的,希望各位捍卫社区正义的佬高抬贵手 ^-^

最新回复 (3)
  • 后仰跳投 07-07 13:59
    1

    缓存命中佬友是怎么观察的,看到很多帖子里佬友在说这个问题,但一直没怎么太关注过

  • Ma1r6K 楼主 07-07 14:07
    2

    可以用cpa-manager-plus的监控看到缓存命中的,如果你接了中转的话也可以去中转的日志看

  • 爱长草的云 07-07 14:09
    3

    确实使用trellis有经常遇到缓存不命中或者命中率降低的情况,但是没有去排查原因,就目前来看应该只是会造成额外消耗而对结果本身是没有影响的吧

* 帖子来源Linux.do
返回