AI Agent SDK
一个灵活的 Rust AI Agent SDK,用于构建智能代理系统。
特性
- 🤖 灵活的 Agent 架构 - 支持自定义执行器和工具
- 💾 内存管理 - 内置消息历史和上下文管理
- 🔧 工具系统 - 可扩展的工具注册和执行
- ⚡ 异步支持 - 基于 Tokio 的异步运行时
- 🎯 类型安全 - 完整的类型系统和错误处理
- 🌐 多模型支持 - 支持 OpenAI、Anthropic、Google、xAI、DeepSeek 等主流 LLM 提供商
安装
在 Cargo.toml 中添加:
[dependencies]
agent = "0.1.0"
快速开始
use agent::{Agent, Result};
use agent::provider::openai::OpenAIProvider;
use std::sync::Arc;
#[tokio::main]
async fn main() -> Result<()> {
let provider = Arc::new(OpenAIProvider::new("your-api-key"));
let mut agent = Agent::builder()
.name("MyAgent")
.description("A helpful assistant")
.system_prompt("You are a helpful AI assistant")
.model("gpt-4")
.temperature(0.7)
.provider(provider)
.build();
let response = agent.run("Hello, how are you?").await?;
println!("Agent: {}", response);
Ok(())
}
核心概念
Agent
Agent 是核心组件,负责协调消息、工具和执行流程。
Model Providers
支持多个 LLM 提供商,统一的接口设计:
use agent::{Message, ModelConfig, ModelProvider};
use agent::provider::openai::OpenAIProvider;
let provider = OpenAIProvider::new("your-api-key");
let config = ModelConfig {
model: "gpt-4".to_string(),
temperature: 0.7,
max_tokens: Some(1000),
..Default::default()
};
let messages = vec![Message::user("Hello!")];
let response = provider.complete(messages, &config).await?;
支持的提供商:
- OpenAI - GPT-4, GPT-3.5 等
- Anthropic - Claude 3 系列
- Google - Gemini Pro
- xAI - Grok 系列
- DeepSeek - DeepSeek Chat
Memory
Memory 管理对话历史和上下文:
use agent::MemoryStore;
let memory = MemoryStore::with_max_size(100);
Tools
工具允许 Agent 执行特定任务:
use agent::{Tool, ToolRegistry};
use async_trait::async_trait;
use serde_json::Value;
struct CalculatorTool;
#[async_trait]
impl Tool for CalculatorTool {
fn name(&self) -> &str { "calculator" }
fn description(&self) -> &str { "Performs calculations" }
async fn execute(&self, params: Value) -> Result<Value> {
Ok(Value::String("42".to_string()))
}
}
let tools = ToolRegistry::new()
.register(Arc::new(CalculatorTool));
许可证
MIT