pub struct SimpleRecursiveAgent {
pub emitter: Arc<EventEmitter>,
/* private fields */
}Expand description
An agent that recursively attempts to solve a problem using available tools.
This agent uses an event-driven approach to manage the problem-solving process. It will continue attempting to solve the problem until it either succeeds, fails explicitly, or reaches the maximum number of iterations.
Fields§
§emitter: Arc<EventEmitter>The event emitter used to manage events
Implementations§
Source§impl SimpleRecursiveAgent
impl SimpleRecursiveAgent
Sourcepub fn new(broker: Arc<LlmBroker>) -> Self
pub fn new(broker: Arc<LlmBroker>) -> Self
Create a new SimpleRecursiveAgent with default settings.
§Arguments
broker- The LLM broker to use for generating responses
§Examples
ⓘ
use mojentic::agents::SimpleRecursiveAgent;
use mojentic::llm::LlmBroker;
use std::sync::Arc;
let broker = Arc::new(LlmBroker::new("qwen3:32b", gateway, None));
let agent = SimpleRecursiveAgent::new(broker);Sourcepub fn builder(broker: Arc<LlmBroker>) -> SimpleRecursiveAgentBuilder
pub fn builder(broker: Arc<LlmBroker>) -> SimpleRecursiveAgentBuilder
Create a SimpleRecursiveAgent builder for custom configuration.
§Arguments
broker- The LLM broker to use for generating responses
§Examples
ⓘ
use mojentic::agents::SimpleRecursiveAgent;
let agent = SimpleRecursiveAgent::builder(broker)
.max_iterations(10)
.system_prompt("You are a specialized assistant.")
.tools(vec![Box::new(SimpleDateTool)])
.build();Sourcepub async fn solve(&self, problem: impl Into<String>) -> Result<String>
pub async fn solve(&self, problem: impl Into<String>) -> Result<String>
Solve a problem asynchronously.
This method runs the event-driven problem-solving process with a 300-second timeout. The agent will continue iterating until:
- The task is completed successfully (“DONE”)
- The task fails explicitly (“FAIL”)
- The maximum number of iterations is reached
- The process times out (300 seconds)
§Arguments
problem- The problem or request to be solved
§Returns
The solution to the problem
§Examples
ⓘ
let solution = agent.solve("Calculate the factorial of 5").await?;
println!("Solution: {}", solution);Auto Trait Implementations§
impl Freeze for SimpleRecursiveAgent
impl !RefUnwindSafe for SimpleRecursiveAgent
impl Send for SimpleRecursiveAgent
impl Sync for SimpleRecursiveAgent
impl Unpin for SimpleRecursiveAgent
impl !UnwindSafe for SimpleRecursiveAgent
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