feat(core): 为 CostTracker/ContextSlot/MergeStrategy 加 Clone+Serialize+Deserialize
Phase 17 前置 derive 改动: - CostTracker 加 Clone + Serialize + Deserialize(3 行)—— 用于 SessionSnapshot 序列化 cost_so_far 字段 - ContextSlot 加 Serialize + Deserialize(1 行)—— 用于 SessionSnapshot 序列化 slots HashMap - MergeStrategy 加 Serialize + Deserialize(1 行)—— 与 ContextSlot 一致 零破坏性:派生仅为新增能力,不修改现有行为。ContextSlot 的 save() 路径独立序列化 messages/meta/config,不走整体 serde,两组路径可共存。 Phase 17: Agent 执行引擎 — Step 1
This commit is contained in:
@@ -17,7 +17,7 @@ use crate::memory::store::MemoryStore;
|
||||
use crate::memory::types::{MemoryFilter, MemoryItem};
|
||||
|
||||
/// 上下文槽 —— 一段带策略配置的消息列表。
|
||||
#[derive(Debug, Clone)]
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
pub struct ContextSlot {
|
||||
/// 当前 slot 的唯一标识(同一个 session_id 内唯一)。
|
||||
pub id: String,
|
||||
@@ -107,7 +107,7 @@ pub enum DeriveStrategy {
|
||||
/// 合并策略 —— Phase 13 新增,控制 `ContextSlot::merge` 如何将子 slot 消息合入父 slot。
|
||||
///
|
||||
/// `#[non_exhaustive]` 预留未来扩展(如 `Summarize` 变体)。
|
||||
#[derive(Debug, Clone)]
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[non_exhaustive]
|
||||
pub enum MergeStrategy {
|
||||
/// 子 slot 消息追加到父 slot 末尾。
|
||||
|
||||
@@ -31,7 +31,7 @@ pub struct PromptTokensDetails {
|
||||
pub cached_tokens: Option<u32>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Default)]
|
||||
#[derive(Debug, Default, Clone, Serialize, Deserialize)]
|
||||
pub struct CostTracker {
|
||||
accumulated: Usage,
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user