| Crates.io | agent |
| lib.rs | agent |
| version | 0.0.1 |
| created_at | 2025-11-19 17:05:09.658844+00 |
| updated_at | 2025-11-19 17:05:09.658844+00 |
| description | A flexible AI Agent SDK for building intelligent agents |
| homepage | |
| repository | |
| max_upload_size | |
| id | 1940427 |
| size | 91,264 |
一个灵活的 Rust AI Agent SDK,用于构建智能代理系统。
在 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<()> {
// 创建 Provider
let provider = Arc::new(OpenAIProvider::new("your-api-key"));
// 构建 Agent
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 是核心组件,负责协调消息、工具和执行流程。
支持多个 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?;
支持的提供商:
Memory 管理对话历史和上下文:
use agent::MemoryStore;
let memory = MemoryStore::with_max_size(100);
工具允许 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