优化: 缓存命中字段解析与提示词前缀稳定化
- openai 兼容口径补解析嵌套 cached_tokens - cache 显示区分无数据与真零,估算轮不渲染 - 轨迹展开折叠空过程记录行降噪 - token 统计行恒完整可见不截断 - openai_compat 纳入 system 稳定易变拆分 - 系统警示与主题标记改尾部注入不位移前缀 - 工具结果视图压缩按入库时刻冻结 - 会话内工具集冻结仅增不减 - anthropic 缓存补消息级断点,设置页加开关 - 补 intent 测试对 Agent domain 覆盖
This commit is contained in:
@@ -1003,6 +1003,21 @@ pub struct PerConvState {
|
||||
pub workflow_id: Option<String>,
|
||||
/// T4 工作流 DAG 摘要(预计算的活跃路径文本,避免运行时加载 DAG)
|
||||
pub workflow_dag_summary: Option<String>,
|
||||
/// 跨轮工具集冻结(前缀稳定):首次意图裁剪结果按工具名冻结,后续轮只增不减。
|
||||
///
|
||||
/// 治「每轮按末条 user 消息重新 intent 裁工具 → tools 数组跨轮变化 → 前缀断」:
|
||||
/// tools 数组在请求里位于 system 之后、消息之前,数组字节一变,自动前缀缓存
|
||||
/// (DeepSeek/GLM/Qwen)与 Anthropic 显式缓存全部失效。新意图带来的工具并入冻结集,
|
||||
/// 已并入的不移除。None = 尚未冻结(首轮裁剪时写入);纯问候空工具集不进本字段
|
||||
/// (仅作用当轮请求)。随会话销毁不落库(对齐 pinned_goals 语义)。
|
||||
pub frozen_tool_names: Option<Vec<String>>,
|
||||
/// tool_result 视图压缩决策冻结(content 稳定哈希 → 是否压缩)。
|
||||
///
|
||||
/// 治「压缩阈值随 history_tokens 增长漂移 → 同一条历史第 N 轮发全文、第 N+1 轮变摘要
|
||||
/// → 轮中前缀断」:决策按消息首次进入请求视图时刻一次性判定并冻结,后续轮沿用同一视图。
|
||||
/// 仍为 view-only(不落库改历史,仅影响发送视图);键用内容哈希而非位置(裁剪/压缩后
|
||||
/// 位置漂移,内容不变)。随会话销毁不落库。
|
||||
pub tool_view_decisions: std::collections::HashMap<u64, bool>,
|
||||
}
|
||||
|
||||
/// 单个目标记录(含状态追踪)。
|
||||
@@ -1066,6 +1081,8 @@ impl PerConvState {
|
||||
working_context: df_ai::context_helpers::WorkingContext::new(),
|
||||
workflow_id: None,
|
||||
workflow_dag_summary: None,
|
||||
frozen_tool_names: None,
|
||||
tool_view_decisions: std::collections::HashMap::new(),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user