Replies: 1 comment
-
|
先给结论,再分别展开。核心判断:部分需要——机制(压缩算法/skill 抢救/trim 策略)应保持全局共享,真正需要 per-agent 的是「是否/何时触发」和「摘要强调什么」这两类"旋钮"。 现状(代码层面的事实)
Q1:是否需要? 需要,但是选择性的,原因是不同 agent 的"上下文经济学"差异很大:
所以需求是真实的。但要点明一个边界:因为压缩写回的是线程共享的 checkpoint,per-agent 配置在"一个线程长期被同一个 agent 使用"时最有意义;如果用户在线程里中途切换 agent,A agent 的激进压缩会永久影响 B agent 看到的历史。这点要在设计里承认(当前 run 的 agent 决定压缩策略,但摘要一旦写入即为线程共享)。 Q2(1):阈值是否都需要支持自定义? 不建议把每个阈值都做成 per-agent——那是配置面爆炸。 建议"分层覆盖 + 回退全局默认",与 AgentConfig 现有的 model / tool_groups / skills per-agent 覆盖模式保持一致:
落地方式:给 AgentConfig 增加一个可选字段,比如 summarization: SummarizationOverrides | No _create_summarization_middleware(lead_agent/agent.py:79)里用"agent 覆盖 → 全局app_config.summarization"合并后再构造中间件。agent 本身按 agent_name 在构建期解析,与 model/tool_groups/skills 的解析时机一致,不破坏"agent 缓存复用"假设。 Q2(2):summary_prompt —— 整体自定义 vs BASE + 个性化要求? 强烈推荐 BASE 模板 + 个性化要求,而不是整段替换。 三个理由,都和代码里既有的隐性契约有关:
具体建议:
一句话总结 ▎ 需要做 per-agent,但只暴露 enabled/trigger/keep/model_name 这几个"行为旋钮"(覆盖式回退 性化 summary_focus 而非整段替换,以保住 {messages} 占位符与预算/语义契约。实现上扩展AgentConfig(当前会丢未知字段)并在 _create_summarization_middleware 处合并配置即可,与现有 model/tool_groups/skills 的 per-agent 覆盖模式一致。 |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
想探讨上下文压缩是否需要针对不同智能体做定制的问题
1:是否需要?
2:如果需要,哪些需要支持自定义呢?
(1)压缩配置中的阈值是否都需要支持自定义
(2)压缩提示词是否需要支持自定义,如果需要的话,是整个summary_prompt都自定义配置,还是采取BASE基础压缩模板 + 个性化压缩要求 的方式呢?
Beta Was this translation helpful? Give feedback.
All reactions