Expand description
Core types and traits for SimpleAgents.
This crate provides all foundational types, traits, and error definitions shared across the SimpleAgents project. It is a pure types crate with no runtime, HTTP, or I/O dependencies.
§Architecture
SimpleAgents follows a trait-based architecture:
- Provider: Trait for LLM provider implementations
- Cache: Trait for caching responses
- RoutingStrategy: Trait for provider selection
§Main Types
- [
Message]: Role-based conversation messages - [
CompletionRequest]: Unified request format - [
CompletionResponse]: Unified response format - [
ApiKey]: Secure API key handling
§Example
use simple_agent_type::prelude::*;
// Create a request
let request = CompletionRequest::builder()
.model("gpt-4")
.message(Message::user("Hello!"))
.temperature(0.7)
.build()
.unwrap();
// Access request properties
assert_eq!(request.model, "gpt-4");
assert_eq!(request.messages.len(), 1);§Features
- Type Safety: Strong types prevent common errors
- Transparency: All transformations tracked via [
CoercionFlag] - Security: API keys never logged ([
ApiKey]) - Validation: Early validation with clear errors
- Async: All traits use
async_trait
Re-exports§
pub use error::HealingError;pub use error::ProviderError;pub use error::Result;pub use error::SimpleAgentsError;pub use error::ValidationError;
Modules§
- cache
- Cache trait for response caching.
- coercion
- Coercion types for tracking response healing.
- config
- Configuration types for SimpleAgents.
- error
- Error types for SimpleAgents.
- message
- Message types for LLM interactions.
- prelude
- Prelude module for convenient imports.
- provider
- Provider trait and types.
- request
- Request types for LLM completions.
- response
- Response types for LLM completions.
- router
- Routing strategy trait for provider selection.
- tool
- Tool calling types for function/tool integrations.
- validation
- Validation types for sensitive data.