pub struct AgentFlowNode { /* private fields */ }Expand description
Agent 在 Graph 中的节点包装。
将 ToolUseLoop 适配为 FlowNode,使其可以作为 Graph 的节点执行。
§State 约定
- 输入:
state.get("messages")→Vec<serde_json::Value>或serde_json::Value数组 - 输出:
state.set("messages")→ 更新后的消息列表 - 自定义 key: 通过
message_key配置
§示例
ⓘ
use lellm_agent::AgentFlowNode;
use lellm_graph::{GraphBuilder, NodeKind};
let agent = AgentFlowNode::new("agent", tool_use_loop);
let mut graph = GraphBuilder::new("my_graph");
graph.node("agent", NodeKind::External(Arc::new(agent)));Implementations§
Source§impl AgentFlowNode
impl AgentFlowNode
Sourcepub fn new(name: impl Into<String>, loop_: ToolUseLoop) -> Self
pub fn new(name: impl Into<String>, loop_: ToolUseLoop) -> Self
创建新的 AgentFlowNode。
Sourcepub fn message_key(self, key: impl Into<String>) -> Self
pub fn message_key(self, key: impl Into<String>) -> Self
设置 State 中消息的 key(默认 “messages”)。
Sourcepub fn stream_events(self, enabled: bool) -> Self
pub fn stream_events(self, enabled: bool) -> Self
是否发射流式事件到 sink(默认 true)。
Trait Implementations§
Source§impl Clone for AgentFlowNode
impl Clone for AgentFlowNode
Source§fn clone(&self) -> AgentFlowNode
fn clone(&self) -> AgentFlowNode
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl FlowNode for AgentFlowNode
impl FlowNode for AgentFlowNode
Source§fn execute<'life0, 'life1, 'async_trait>(
&'life0 self,
state: &'life1 State,
) -> Pin<Box<dyn Future<Output = Result<NodeOutput, GraphError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn execute<'life0, 'life1, 'async_trait>(
&'life0 self,
state: &'life1 State,
) -> Pin<Box<dyn Future<Output = Result<NodeOutput, GraphError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
阻塞执行 — 运行完整的 Agent Loop。
Source§fn execute_stream<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
state: &'life1 State,
sink: &'life2 Sender<GraphEvent>,
span_id: SpanId,
) -> Pin<Box<dyn Future<Output = Result<StreamNodeResult, GraphError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn execute_stream<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
state: &'life1 State,
sink: &'life2 Sender<GraphEvent>,
span_id: SpanId,
) -> Pin<Box<dyn Future<Output = Result<StreamNodeResult, GraphError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
流式执行 — 运行 Agent Loop 并转发事件。
Source§fn metadata_hint(&self) -> NodeMetadata
fn metadata_hint(&self) -> NodeMetadata
节点元数据提示 — 静态声明节点的执行特征。 Read more
Auto Trait Implementations§
impl !RefUnwindSafe for AgentFlowNode
impl !UnwindSafe for AgentFlowNode
impl Freeze for AgentFlowNode
impl Send for AgentFlowNode
impl Sync for AgentFlowNode
impl Unpin for AgentFlowNode
impl UnsafeUnpin for AgentFlowNode
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more