pub trait MergeStrategy<S>: Send + Sync {
// Required methods
fn merge(branches: Vec<S>) -> Result<S, WorkflowError>;
fn default_instance() -> Self;
}Expand description
并行分支合并策略 — Graph 层职责,非 State 内建属性。
将多个并行分支执行后产生的状态合并为一个。 合并规则由 Graph 编排层决定,而非 State 自身。
§职责边界
- State = 数据
- MergeStrategy = 并行语义
- ExecutionEngine = 调度 + commit
- Node = Mutation Producer
§示例
ⓘ
// 为 AgentState 定义合并策略
pub struct AgentStateMerge;
impl MergeStrategy<AgentState> for AgentStateMerge {
fn merge(branches: Vec<AgentState>) -> Result<AgentState, WorkflowError> {
// messages: concat, iterations: max, tokens: sum
}
}
// ParallelNode 使用
ParallelNode::builder()
.merge_strategy(AgentStateMerge)
.branch("search", search_node)
.branch("analyze", analyze_node)
.build();Required Methods§
Sourcefn merge(branches: Vec<S>) -> Result<S, WorkflowError>
fn merge(branches: Vec<S>) -> Result<S, WorkflowError>
合并多个并行分支的状态。
branches 按注册顺序排列(与 ParallelNode 的 branch 注册顺序一致)。
Sourcefn default_instance() -> Self
fn default_instance() -> Self
创建策略的默认实例(供 ParallelNodeBuilder 使用)。 对于无状态策略(如 StateMerge、LastWriteWins),直接返回自身。
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".