pub struct Agent { /* private fields */ }Implementations§
Source§impl Agent
impl Agent
pub fn new(name: impl Into<String>, config: Config) -> Self
Sourcepub fn builder(name: impl Into<String>) -> AgentBuilder
pub fn builder(name: impl Into<String>) -> AgentBuilder
Examples found in repository?
examples/basic_chat.rs (line 9)
4async fn main() -> helios_engine::Result<()> {
5 // Load configuration
6 let config = Config::from_file("config.toml")?;
7
8 // Create a simple agent
9 let mut agent = Agent::builder("BasicAgent")
10 .config(config)
11 .system_prompt("You are a helpful assistant.")
12 .build()?;
13
14 // Send a message
15 let response = agent.chat("Hello! How are you?").await?;
16 println!("Agent: {}", response);
17
18 // Continue the conversation
19 let response = agent.chat("What can you help me with?").await?;
20 println!("Agent: {}", response);
21
22 Ok(())
23}More examples
examples/custom_tool.rs (line 70)
65async fn main() -> helios_engine::Result<()> {
66 // Load configuration
67 let config = Config::from_file("config.toml")?;
68
69 // Create an agent with custom tool
70 let mut agent = Agent::builder("WeatherAgent")
71 .config(config)
72 .system_prompt("You are a helpful weather assistant. Use the weather tool to answer questions about weather.")
73 .tool(Box::new(WeatherTool))
74 .build()?;
75
76 // Ask about weather
77 let response = agent.chat("What's the weather like in New York?").await?;
78 println!("Agent: {}\n", response);
79
80 let response = agent.chat("How about in London, but in celsius?").await?;
81 println!("Agent: {}\n", response);
82
83 Ok(())
84}examples/agent_with_tools.rs (line 9)
4async fn main() -> helios_engine::Result<()> {
5 // Load configuration
6 let config = Config::from_file("config.toml")?;
7
8 // Create an agent with tools
9 let mut agent = Agent::builder("ToolAgent")
10 .config(config)
11 .system_prompt("You are a helpful assistant with access to tools. Use them when needed.")
12 .tool(Box::new(CalculatorTool))
13 .tool(Box::new(EchoTool))
14 .max_iterations(5)
15 .build()?;
16
17 println!("Available tools: {:?}\n", agent.tool_registry().list_tools());
18
19 // Test calculator tool
20 let response = agent.chat("What is 25 * 4 + 10?").await?;
21 println!("Agent: {}\n", response);
22
23 // Test echo tool
24 let response = agent.chat("Can you echo this message: 'Hello from Helios!'").await?;
25 println!("Agent: {}\n", response);
26
27 Ok(())
28}examples/multiple_agents.rs (line 9)
4async fn main() -> helios_engine::Result<()> {
5 // Load configuration
6 let config = Config::from_file("config.toml")?;
7
8 // Create multiple agents with different personalities
9 let mut math_agent = Agent::builder("MathAgent")
10 .config(config.clone())
11 .system_prompt("You are a math expert. You love numbers and equations.")
12 .tool(Box::new(CalculatorTool))
13 .build()?;
14
15 let mut creative_agent = Agent::builder("CreativeAgent")
16 .config(config)
17 .system_prompt("You are a creative writer who loves storytelling and poetry.")
18 .build()?;
19
20 println!("=== Math Agent ===");
21 let response = math_agent.chat("What is the square root of 144?").await?;
22 println!("Math Agent: {}\n", response);
23
24 println!("=== Creative Agent ===");
25 let response = creative_agent.chat("Write a haiku about programming.").await?;
26 println!("Creative Agent: {}\n", response);
27
28 Ok(())
29}pub fn name(&self) -> &str
pub fn set_system_prompt(&mut self, prompt: impl Into<String>)
pub fn register_tool(&mut self, tool: Box<dyn Tool>)
Sourcepub fn tool_registry(&self) -> &ToolRegistry
pub fn tool_registry(&self) -> &ToolRegistry
Examples found in repository?
examples/agent_with_tools.rs (line 17)
4async fn main() -> helios_engine::Result<()> {
5 // Load configuration
6 let config = Config::from_file("config.toml")?;
7
8 // Create an agent with tools
9 let mut agent = Agent::builder("ToolAgent")
10 .config(config)
11 .system_prompt("You are a helpful assistant with access to tools. Use them when needed.")
12 .tool(Box::new(CalculatorTool))
13 .tool(Box::new(EchoTool))
14 .max_iterations(5)
15 .build()?;
16
17 println!("Available tools: {:?}\n", agent.tool_registry().list_tools());
18
19 // Test calculator tool
20 let response = agent.chat("What is 25 * 4 + 10?").await?;
21 println!("Agent: {}\n", response);
22
23 // Test echo tool
24 let response = agent.chat("Can you echo this message: 'Hello from Helios!'").await?;
25 println!("Agent: {}\n", response);
26
27 Ok(())
28}pub fn tool_registry_mut(&mut self) -> &mut ToolRegistry
pub fn chat_session(&self) -> &ChatSession
pub fn chat_session_mut(&mut self) -> &mut ChatSession
pub fn clear_history(&mut self)
pub async fn send_message( &mut self, message: impl Into<String>, ) -> Result<String>
Sourcepub async fn chat(&mut self, message: impl Into<String>) -> Result<String>
pub async fn chat(&mut self, message: impl Into<String>) -> Result<String>
Examples found in repository?
examples/basic_chat.rs (line 15)
4async fn main() -> helios_engine::Result<()> {
5 // Load configuration
6 let config = Config::from_file("config.toml")?;
7
8 // Create a simple agent
9 let mut agent = Agent::builder("BasicAgent")
10 .config(config)
11 .system_prompt("You are a helpful assistant.")
12 .build()?;
13
14 // Send a message
15 let response = agent.chat("Hello! How are you?").await?;
16 println!("Agent: {}", response);
17
18 // Continue the conversation
19 let response = agent.chat("What can you help me with?").await?;
20 println!("Agent: {}", response);
21
22 Ok(())
23}More examples
examples/custom_tool.rs (line 77)
65async fn main() -> helios_engine::Result<()> {
66 // Load configuration
67 let config = Config::from_file("config.toml")?;
68
69 // Create an agent with custom tool
70 let mut agent = Agent::builder("WeatherAgent")
71 .config(config)
72 .system_prompt("You are a helpful weather assistant. Use the weather tool to answer questions about weather.")
73 .tool(Box::new(WeatherTool))
74 .build()?;
75
76 // Ask about weather
77 let response = agent.chat("What's the weather like in New York?").await?;
78 println!("Agent: {}\n", response);
79
80 let response = agent.chat("How about in London, but in celsius?").await?;
81 println!("Agent: {}\n", response);
82
83 Ok(())
84}examples/agent_with_tools.rs (line 20)
4async fn main() -> helios_engine::Result<()> {
5 // Load configuration
6 let config = Config::from_file("config.toml")?;
7
8 // Create an agent with tools
9 let mut agent = Agent::builder("ToolAgent")
10 .config(config)
11 .system_prompt("You are a helpful assistant with access to tools. Use them when needed.")
12 .tool(Box::new(CalculatorTool))
13 .tool(Box::new(EchoTool))
14 .max_iterations(5)
15 .build()?;
16
17 println!("Available tools: {:?}\n", agent.tool_registry().list_tools());
18
19 // Test calculator tool
20 let response = agent.chat("What is 25 * 4 + 10?").await?;
21 println!("Agent: {}\n", response);
22
23 // Test echo tool
24 let response = agent.chat("Can you echo this message: 'Hello from Helios!'").await?;
25 println!("Agent: {}\n", response);
26
27 Ok(())
28}examples/multiple_agents.rs (line 21)
4async fn main() -> helios_engine::Result<()> {
5 // Load configuration
6 let config = Config::from_file("config.toml")?;
7
8 // Create multiple agents with different personalities
9 let mut math_agent = Agent::builder("MathAgent")
10 .config(config.clone())
11 .system_prompt("You are a math expert. You love numbers and equations.")
12 .tool(Box::new(CalculatorTool))
13 .build()?;
14
15 let mut creative_agent = Agent::builder("CreativeAgent")
16 .config(config)
17 .system_prompt("You are a creative writer who loves storytelling and poetry.")
18 .build()?;
19
20 println!("=== Math Agent ===");
21 let response = math_agent.chat("What is the square root of 144?").await?;
22 println!("Math Agent: {}\n", response);
23
24 println!("=== Creative Agent ===");
25 let response = creative_agent.chat("Write a haiku about programming.").await?;
26 println!("Creative Agent: {}\n", response);
27
28 Ok(())
29}pub fn set_max_iterations(&mut self, max: usize)
Auto Trait Implementations§
impl Freeze for Agent
impl !RefUnwindSafe for Agent
impl Send for Agent
impl Sync for Agent
impl Unpin for Agent
impl !UnwindSafe for Agent
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