atomr_agents_agent/
spec.rs1use atomr_agents_core::{AgentId, IterationBudget, MoneyBudget, TimeBudget, TokenBudget};
2use serde::{Deserialize, Serialize};
3use std::time::Duration;
4
5#[derive(Debug, Clone, Serialize, Deserialize)]
9pub struct AgentSpec {
10 pub id: AgentId,
11 pub model: String,
12 pub max_iterations: u32,
13 pub token_budget: u32,
14 pub time_budget_ms: u64,
15 pub money_budget_usd: f64,
16}
17
18impl AgentSpec {
19 pub fn default_budgets(&self) -> (TokenBudget, TimeBudget, MoneyBudget, IterationBudget) {
20 (
21 TokenBudget::new(self.token_budget),
22 TimeBudget::new(Duration::from_millis(self.time_budget_ms)),
23 MoneyBudget::from_usd(self.money_budget_usd),
24 IterationBudget::new(self.max_iterations),
25 )
26 }
27}