1 unstable release

0.1.0 Feb 3, 2025

#578 in Database interfaces

Download history 119/week @ 2025-02-03

119 downloads per month

MIT/Apache

49KB
919 lines

Chimera

库的作用:

Chimera 是一个基于Rust语言编写的智能代理库,旨在处理复杂的决策过程。它通过集成LLM(大语言模型)、工具调用以及内存管理等功能,能够执行各种任务和交互,并根据需求动态调整策略。

使用示例:

以下是一个简单的使用示例,展示了如何初始化并配置一个Chimera Agent,注册工具,并处理用户消息。

use chimera::{
    Agent, LLMClient, ShortTermMemory, LongTermMemory, Tool,
    types::{AgentConfig, Message},
};

// 假设我们有一个LLM客户端、短期记忆和长期记忆的实现
struct SimpleLLM;
impl LLMClient for SimpleLLM {
    // 实现方法...
}

struct SimpleShortTermMemory;
impl ShortTermMemory for SimpleShortTermMemory {
    // 实现方法...
}

struct SimpleLongTermMemory;
impl LongTermMemory for SimpleLongTermMemory {
    // 实现方法...
}

// 假设我们有一个工具的实现
struct SimpleTool;
impl Tool for SimpleTool {
    fn name(&self) -> String {
        "simple_tool".to_string()
    }

    async fn execute(&self, _args: serde_json::Value) -> Result<serde_json::Value> {
        // 执行逻辑...
        Ok(serde_json::json!({"result": "success"}))
    }
}

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let llm = SimpleLLM;
    let short_term_memory = SimpleShortTermMemory;
    let long_term_memory = SimpleLongTermMemory;

    // 初始化Agent
    let mut agent = Agent::new(long_term_memory, short_term_memory, llm)
        .with_config(AgentConfig::default().system_prompt("You are a helpful assistant."));

    // 注册工具
    agent.register_tool(SimpleTool);

    // 处理用户消息
    let response = agent.handle_message("Hello! What can you do for me?".to_string()).await?;
    println!("Agent Response: {}", response);

    Ok(())
}

Generated by bot powered by chimera with qwen2.5-coder:32b

Dependencies

~5–12MB
~137K SLoC