use lellm_agent::{AgentBuilder, ToolUseLoop};
use lellm_core::{ChatResponse, ContentBlock, Message, TokenUsage};
use lellm_provider::{MockProvider, ResolvedModel};
use std::sync::Arc;
fn create_simple_agent() -> ToolUseLoop {
let response = ChatResponse::new(
vec![ContentBlock::text(
"你好!我是 LeLLM Agent,很高兴为你服务。".to_string(),
)],
TokenUsage::default(),
serde_json::json!(null),
);
let provider = Arc::new(MockProvider::reply_with(response));
let model = ResolvedModel {
context_window: None,
provider,
model: "test-model".to_string(),
};
AgentBuilder::new(model).build()
}
#[tokio::main]
async fn main() {
let agent = create_simple_agent();
println!("=== 非流式执行 ===");
let result = agent
.execute(vec![Message::User {
content: lellm_core::text_block("请介绍一下自己。".to_string()),
}])
.await
.expect("Agent 执行失败");
println!("停止原因: {:?}", result.stop_reason);
println!("迭代次数: {}", result.iterations);
println!("工具调用次数: {}", result.tool_calls_executed);
println!("\n最终回复:");
for block in &result.response.content {
if let ContentBlock::Text(t) = block {
println!("{}", t.text);
}
}
}