blob: 4b8920a4af0a49a95609bd99bc80d97ce307539d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
namespace Agent.Planner;
public readonly record struct TokenEstimate(long Optimistic, long MostLikely, long Pessimistic)
{
public double ExpectedTokens => (Optimistic + (4d * MostLikely) + Pessimistic) / 6d;
public double VarianceTokens => Math.Pow((Pessimistic - Optimistic) / 6d, 2);
public void Validate(TokenBudgetClass budgetClass)
{
if (Optimistic <= 0 || Optimistic > MostLikely || MostLikely > Pessimistic || Pessimistic > budgetClass.MaxTokens())
{
throw new PlannerValidationException("Estimate must satisfy 0 < O <= M <= P <= token budget.");
}
}
}
|