Expand description
WorkflowClient — wraps SimpleAgentsClient and adds workflow run, stream, resume.
Because simple-agents-core cannot depend on simple-agents-workflow (that would create a
circular dependency), the workflow methods live here instead of on SimpleAgentsClient.
§Usage
use simple_agents_workflow::{WorkflowClient, WorkflowRunOptions, DefaultEventPrinter};
use simple_agents_core::SimpleAgentsClient;
use simple_agent_type::prelude::*;
use async_trait::async_trait;
use std::sync::Arc;
struct MyProvider;
#[async_trait]
impl Provider for MyProvider {
fn name(&self) -> &str { "mock" }
fn transform_request(&self, _req: &CompletionRequest) -> Result<ProviderRequest> {
Ok(ProviderRequest::new("http://example.com"))
}
async fn execute(&self, _req: ProviderRequest) -> Result<ProviderResponse> {
Ok(ProviderResponse::new(200, serde_json::json!({})))
}
fn transform_response(&self, _resp: ProviderResponse) -> Result<CompletionResponse> {
unimplemented!()
}
}
let client = WorkflowClient::from_client(
SimpleAgentsClient::new(Arc::new(MyProvider)),
);
let messages = vec![Message::user("Hello")];
// Run a workflow
let output = client.run("workflow.yaml", messages.clone(), WorkflowRunOptions::default()).await?;
// Stream a workflow
let output = client.stream("workflow.yaml", messages, &DefaultEventPrinter, WorkflowRunOptions::default()).await?;Structs§
- RunOptions
- Execution options for a workflow run.
- Workflow
Client - A client that wraps
SimpleAgentsClientand exposes workflow operations.
Enums§
- Workflow
Error - Error type for workflow operations.