using System;
namespace PolyTrader.Core.Agents
{
///
/// Kostendeckel für einen einzelnen Agenten-Lauf (aus ClawdDotNet übernommen und erweitert): begrenzt
/// Schritte, Gesamt-Tokens und Wanduhr-Zeit. Wird pro Lauf mit einem frischen
/// erzwungen – so kann ein LLM-Agent nicht in eine teure Endlosschleife laufen.
///
public sealed record AgentBudget
{
/// Maximale Anzahl Modell-Runden (Function-Calling-Iterationen).
public int MaxSteps { get; init; } = 8;
/// Maximale Summe aus Prompt- und Completion-Tokens über den gesamten Lauf.
public int MaxTokens { get; init; } = 120_000;
/// Maximale Wanduhr-Dauer des gesamten Laufs.
public TimeSpan Timeout { get; init; } = TimeSpan.FromMinutes(3);
/// Voreinstellung (moderat: 8 Schritte, 120k Tokens, 3 Minuten).
public static AgentBudget Default { get; } = new();
}
}