Expand description
§claude-agent
Rust SDK for building AI agents with Anthropic’s Claude.
This crate provides a production-ready, memory-efficient way to build AI agents using the Anthropic Messages API directly, without CLI subprocess dependencies.
§Quick Start
use claude_agent::query;
#[tokio::main]
async fn main() -> Result<(), claude_agent::Error> {
let response = query("What is 2 + 2?").await?;
println!("{}", response);
Ok(())
}§Full Agent Example
use claude_agent::{Agent, AgentEvent, ToolAccess};
use futures::StreamExt;
use std::pin::pin;
#[tokio::main]
async fn main() -> Result<(), claude_agent::Error> {
let agent = Agent::builder()
.model("claude-sonnet-4-5")
.tools(ToolAccess::all())
.working_dir("./project")
.build()
.await?;
let stream = agent.execute_stream("Fix the bug").await?;
let mut stream = pin!(stream);
while let Some(event) = stream.next().await {
match event? {
AgentEvent::Text(text) => print!("{}", text),
AgentEvent::Complete(result) => {
println!("Done: {} tokens", result.total_tokens());
}
_ => {}
}
}
Ok(())
}Re-exports§
pub use agent::Agent;pub use agent::AgentBuilder;pub use agent::AgentConfig;pub use agent::AgentEvent;pub use agent::AgentMetrics;pub use agent::AgentModelConfig;pub use agent::AgentResult;pub use agent::AgentState;pub use agent::BudgetConfig;pub use agent::DEFAULT_COMPACT_KEEP_MESSAGES;pub use agent::ExecutionConfig;pub use agent::PromptConfig;pub use agent::SecurityConfig;pub use agent::SystemPromptMode;pub use agent::ToolStats;pub use auth::ClaudeCliProvider;cli-integrationpub use auth::ApiKeyHelper;pub use auth::Auth;pub use auth::AwsCredentialRefresh;pub use auth::AwsCredentials;pub use auth::ChainProvider;pub use auth::Credential;pub use auth::CredentialManager;pub use auth::CredentialProvider;pub use auth::EnvironmentProvider;pub use auth::ExplicitProvider;pub use auth::OAuthConfig;pub use auth::OAuthConfigBuilder;pub use budget::BudgetStatus;pub use budget::BudgetTracker;pub use budget::ModelPricing;pub use budget::OnExceed;pub use budget::PricingTable;pub use budget::PricingTableBuilder;pub use budget::TenantBudget;pub use budget::TenantBudgetManager;pub use client::AnthropicAdapter;pub use client::BetaConfig;pub use client::BetaFeature;pub use client::CircuitBreaker;pub use client::CircuitConfig;pub use client::CircuitState;pub use client::Client;pub use client::ClientBuilder;pub use client::ClientCertConfig;pub use client::CloudProvider;pub use client::CountTokensRequest;pub use client::CountTokensResponse;pub use client::EffortLevel;pub use client::ExponentialBackoff;pub use client::FallbackConfig;pub use client::FallbackTrigger;pub use client::File;pub use client::FileData;pub use client::FileDownload;pub use client::FileListResponse;pub use client::FilesClient;pub use client::GatewayConfig;pub use client::ModelConfig;pub use client::ModelType;pub use client::NetworkConfig;pub use client::OutputConfig;pub use client::ProviderAdapter;pub use client::ProviderConfig;pub use client::ProxyConfig;pub use client::Resilience;pub use client::ResilienceConfig;pub use client::RetryConfig;pub use client::UploadFileRequest;pub use client::strict_schema;pub use client::transform_for_strict;pub use common::Named;pub use common::Provider;pub use common::SourceType;pub use common::ToolRestricted;pub use context::ContextBuilder;pub use context::FileMemoryProvider;pub use context::InMemoryProvider;pub use context::LeveledMemoryProvider;pub use context::MemoryContent;pub use context::MemoryLevel;pub use context::MemoryLoader;pub use context::MemoryProvider;pub use context::PromptOrchestrator;pub use context::RoutingStrategy;pub use context::RuleIndex;pub use context::SkillIndex;pub use context::StaticContext;pub use hooks::CommandHook;pub use hooks::Hook;pub use hooks::HookContext;pub use hooks::HookEvent;pub use hooks::HookInput;pub use hooks::HookManager;pub use hooks::HookOutput;pub use observability::AgentMetrics as ObservabilityMetrics;pub use observability::MetricsConfig;pub use observability::MetricsRegistry;pub use observability::ObservabilityConfig;pub use observability::SpanContext;pub use observability::TracingConfig;pub use output_style::OutputStyle;pub use output_style::OutputStyleSourceType;pub use output_style::builtin_styles;pub use output_style::default_style;pub use output_style::explanatory_style;pub use output_style::learning_style;pub use output_style::OutputStyleLoader;cli-integrationpub use output_style::SystemPromptGenerator;cli-integrationpub use permissions::PermissionDecision;pub use permissions::PermissionMode;pub use permissions::PermissionPolicy;pub use permissions::PermissionResult;pub use session::CompactExecutor;pub use session::CompactStrategy;pub use session::Session;pub use session::SessionConfig;pub use session::SessionId;pub use session::SessionManager;pub use skills::FileSkillProvider;cli-integrationpub use skills::ChainSkillProvider;pub use skills::CommandLoader;pub use skills::InMemorySkillProvider;pub use skills::SkillDefinition;pub use skills::SkillExecutor;pub use skills::SkillProviderTrait;pub use skills::SkillRegistry;pub use skills::SkillResult;pub use skills::SkillTool;pub use skills::SlashCommand;pub use subagents::ChainSubagentProvider;pub use subagents::InMemorySubagentProvider;pub use subagents::SubagentDefinition;pub use subagents::SubagentProviderTrait;pub use subagents::SubagentRegistry;pub use subagents::builtin_subagents;pub use subagents::find_builtin;pub use subagents::FileSubagentProvider;cli-integrationpub use subagents::SubagentLoader;cli-integrationpub use tools::ExecutionContext;pub use tools::SchemaTool;pub use tools::Tool;pub use tools::ToolAccess;pub use tools::ToolRegistry;pub use tools::ToolRegistryBuilder;pub use types::CompactResult;pub use types::ContentBlock;pub use types::DocumentBlock;pub use types::ImageSource;pub use types::Message;pub use types::Role;pub use types::ToolError;pub use types::ToolOutput;pub use types::UserLocation;pub use types::WebSearchTool;pub use mcp::McpContent;pub use mcp::McpError;pub use mcp::McpManager;pub use mcp::McpResourceDefinition;pub use mcp::McpResult;pub use mcp::McpServerConfig;pub use mcp::McpServerInfo;pub use mcp::McpServerState;pub use mcp::McpToolDefinition;pub use mcp::McpToolResult;pub use mcp::ReconnectPolicy;pub use security::SecurityContext;pub use security::SecurityContextBuilder;pub use client::BedrockAdapter;awspub use client::FoundryAdapter;azurepub use client::VertexAdapter;gcp
Modules§
- agent
- Agent execution engine.
- auth
- Authentication module for Claude API.
- budget
- Tenant-based budget management for API cost control.
- client
- Anthropic API client with multi-provider support.
- common
- config
- Pluggable configuration provider system.
- context
- Context management with progressive disclosure for optimal token usage.
- hooks
- Hook system for intercepting agent execution.
- mcp
- MCP (Model Context Protocol) server integration.
- observability
- Observability module for Claude Agent SDK.
- output_
style - permissions
- Permission system for controlling tool execution.
- prelude
- Prelude module for convenient imports.
- prompts
- System prompts based on Claude Code CLI.
- security
- Security sandbox system providing TOCTOU-safe file operations and process isolation.
- session
- Session management for stateful conversations.
- skills
- subagents
- tools
- Built-in tools for the agent.
- types
- Core types for the Claude Agent SDK.
Enums§
- Error
- Error type for claude-agent operations
Functions§
- query
- Simple query function for one-shot requests
- query_
with_ model - Query with a specific model
- stream
- Stream a response for one-shot requests