59 lines
1.6 KiB
Rust
59 lines
1.6 KiB
Rust
use std::sync::Arc;
|
|
use nazarick_core::agent::base::BaseAgent;
|
|
use nazarick_core::agent::skill_registry::SkillRegistry;
|
|
use nazarick_core::memory::Memory;
|
|
use nazarick_core::summarizer::Summarizer;
|
|
use nazarick_core::traits::Agent;
|
|
use nazarick_core::types::AgentId;
|
|
use nazarick_core::llm::LlmProvider;
|
|
|
|
pub struct Sebas {
|
|
base: BaseAgent,
|
|
}
|
|
|
|
impl Sebas {
|
|
pub fn new(
|
|
agent_id: impl Into<String>,
|
|
shared_core_path: impl Into<String>,
|
|
soul_core_path: impl Into<String>,
|
|
llm: Box<dyn LlmProvider>,
|
|
registry: Arc<SkillRegistry>,
|
|
memory: Arc<dyn Memory>,
|
|
summarizer: Arc<dyn Summarizer>,
|
|
max_tokens: u32,
|
|
max_loops: u32,
|
|
history_window: usize,
|
|
summary_every: usize,
|
|
conversation_timeout_mins: u64,
|
|
) -> Self {
|
|
Self {
|
|
base: BaseAgent::new(
|
|
agent_id,
|
|
shared_core_path,
|
|
soul_core_path,
|
|
llm,
|
|
registry,
|
|
memory,
|
|
summarizer,
|
|
max_tokens,
|
|
max_loops,
|
|
history_window,
|
|
summary_every,
|
|
conversation_timeout_mins,
|
|
),
|
|
}
|
|
}
|
|
|
|
pub async fn init(&mut self) -> nazarick_core::types::Result<()> {
|
|
self.base.init().await
|
|
}
|
|
|
|
pub async fn chat(&mut self, user_message: &str) -> nazarick_core::types::Result<String> {
|
|
self.base.chat(user_message).await
|
|
}
|
|
}
|
|
|
|
impl Agent for Sebas {
|
|
fn id(&self) -> AgentId { self.base.id }
|
|
fn name(&self) -> &str { "Sebas Tian" }
|
|
} |