Expand description
§adk-core
Core traits and types for ADK agents, tools, sessions, and events.
§Overview
This crate provides the foundational abstractions for the Agent Development Kit:
Agent- The fundamental trait for all agentsTool/Toolset- For extending agents with custom capabilitiesSession/State- For managing conversation contextEvent- For streaming agent responsesAdkError/Result- Unified error handling
§Quick Start
use adk_core::{Agent, Tool, Event, Result};
use std::sync::Arc;
// All agents implement the Agent trait
// All tools implement the Tool trait
// Events are streamed as the agent executes§Core Traits
§Agent
The Agent trait defines the interface for all agents:
ⓘ
#[async_trait]
pub trait Agent: Send + Sync {
fn name(&self) -> &str;
fn description(&self) -> Option<&str>;
async fn run(&self, ctx: Arc<dyn InvocationContext>) -> Result<EventStream>;
}§Tool
The Tool trait defines custom capabilities:
ⓘ
#[async_trait]
pub trait Tool: Send + Sync {
fn name(&self) -> &str;
fn description(&self) -> &str;
async fn execute(&self, ctx: Arc<dyn ToolContext>, args: Value) -> Result<Value>;
}§State Management
State uses typed prefixes for organization:
user:- User preferences (persists across sessions)app:- Application state (application-wide)temp:- Temporary data (cleared each turn)
Re-exports§
pub use agent::Agent;pub use agent::EventStream;pub use agent_loader::AgentLoader;pub use agent_loader::MultiAgentLoader;pub use agent_loader::SingleAgentLoader;pub use callbacks::AfterAgentCallback;pub use callbacks::AfterModelCallback;pub use callbacks::AfterToolCallback;pub use callbacks::BeforeAgentCallback;pub use callbacks::BeforeModelCallback;pub use callbacks::BeforeModelResult;pub use callbacks::BeforeToolCallback;pub use callbacks::GlobalInstructionProvider;pub use callbacks::InstructionProvider;pub use context::Artifacts;pub use context::CallbackContext;pub use context::IncludeContents;pub use context::InvocationContext;pub use context::Memory;pub use context::MemoryEntry;pub use context::ReadonlyContext;pub use context::ReadonlyState;pub use context::RunConfig;pub use context::Session;pub use context::State;pub use context::StreamingMode;pub use error::AdkError;pub use error::Result;pub use event::Event;pub use event::EventActions;pub use event::KEY_PREFIX_APP;pub use event::KEY_PREFIX_TEMP;pub use event::KEY_PREFIX_USER;pub use instruction_template::inject_session_state;pub use model::FinishReason;pub use model::GenerateContentConfig;pub use model::Llm;pub use model::LlmRequest;pub use model::LlmResponse;pub use model::LlmResponseStream;pub use model::UsageMetadata;pub use tool::Tool;pub use tool::ToolContext;pub use tool::ToolPredicate;pub use tool::Toolset;pub use types::Content;pub use types::Part;