Skip to main content

agentoven_core/
lib.rs

1//! # agentoven-core
2//!
3//! Core SDK library for AgentOven — the enterprise agent control plane.
4//!
5//! This crate provides the building blocks for:
6//! - Defining and registering agents (recipes)
7//! - Connecting to the AgentOven control plane
8//! - Model routing across providers
9//! - Observability via OpenTelemetry
10//! - Multi-agent workflow orchestration
11//!
12//! ## Quick Start
13//!
14//! ```rust,no_run
15//! use agentoven_core::{Agent, Ingredient, AgentOvenClient};
16//!
17//! #[tokio::main]
18//! async fn main() -> Result<(), Box<dyn std::error::Error>> {
19//!     let client = AgentOvenClient::new("http://localhost:8080")?;
20//!
21//!     let agent = Agent::builder("summarizer")
22//!         .version("1.0.0")
23//!         .description("Summarizes documents with citations")
24//!         .ingredient(Ingredient::model("gpt-4o").provider("azure-openai").build())
25//!         .ingredient(Ingredient::model("claude-sonnet").provider("anthropic").role("fallback").build())
26//!         .ingredient(Ingredient::tool("doc-reader").build())
27//!         .build();
28//!
29//!     client.register(&agent).await?;
30//!     client.bake(&agent, "production").await?;
31//!     Ok(())
32//! }
33//! ```
34
35pub mod agent;
36pub mod client;
37pub mod config;
38pub mod ingredient;
39pub mod recipe;
40pub mod router;
41pub mod telemetry;
42
43// Re-exports
44pub use agent::{Agent, AgentBuilder, AgentMode, AgentStatus, Guardrail};
45pub use client::AgentOvenClient;
46pub use config::AgentOvenConfig;
47pub use ingredient::{Ingredient, IngredientKind};
48pub use recipe::{Recipe, Step, StepKind};
49pub use router::{ModelProvider, RoutingStrategy};
50
51// Re-export a2a-ao types for convenience
52pub use a2a_ao;