Documentation
¶
Overview ¶
Package config defines product-neutral Agent, provider, reasoning, and context-policy configuration for Floret.
Configuration describes how a host asks Floret to run an Agent. It does not own execution identity, durable conversation state, credential persistence, or host authorization. A resolved Config may carry provider credentials for one composition; the host remains responsible for secret selection, storage, and lifecycle. Runtime identities and capabilities are defined by package runtime.
Index ¶
- Constants
- func PromptCacheRetention(cfg Config) (string, error)
- func ValidateReasoningLevel(level ReasoningLevel) bool
- type AgentProfile
- type Config
- type ContextPolicy
- type ContextPressure
- type ContextUsage
- type EstimateConfidence
- type EstimateMethod
- type Option
- type PressureSignal
- type PressureSource
- type PromptIdentity
- type PromptSource
- type ReasoningBudget
- type ReasoningCapability
- type ReasoningLevel
- type ReasoningSelection
- type RequestEstimate
Constants ¶
const ( DefaultEnvFile = ".env.local" ProviderFake = "fake" ProviderOpenAICompatible = "openai-compatible" DefaultAgentProfileID = "default" DefaultSystemPrompt = "You are a helpful AI assistant." )
const ( MinSupportedContextWindowTokens int64 = 256000 DefaultContextWindowTokens int64 = MinSupportedContextWindowTokens DefaultMaxOutputTokens int64 = 0 DefaultReservedOutputTokens int64 = 64000 DefaultAutoCompactRatioPercent int64 = 90 DefaultCompactedContextTargetTokens int64 = 50000 DefaultReservedSummaryTokens int64 = 20000 DefaultRecentTailTokens int64 = 12000 DefaultRecentUserTokens int64 = 15000 DefaultCheckpointOverheadTokens int64 = 2000 DefaultEstimatorSource = "generic_conservative" DefaultEstimatorMethod = EstimateMethodMessageContext )
const ( ReasoningKindNone = "none" ReasoningKindEffort = "effort" ReasoningKindToggle = "toggle" ReasoningKindBudget = "budget" ReasoningKindToggleBudget = "toggle_budget" ReasoningKindEffortBudget = "effort_budget" ReasoningKindAlwaysOn = "always_on" ReasoningKindDynamic = "provider_dynamic" )
Variables ¶
This section is empty.
Functions ¶
func PromptCacheRetention ¶
func ValidateReasoningLevel ¶ added in v0.3.19
func ValidateReasoningLevel(level ReasoningLevel) bool
Types ¶
type AgentProfile ¶
type AgentProfile struct {
ID string `json:"id"`
Name string `json:"name"`
Description string `json:"description,omitempty"`
SystemPrompt string `json:"system_prompt"`
}
func DefaultAgentProfile ¶ added in v0.3.74
func DefaultAgentProfile() AgentProfile
func ResolveAgentProfile ¶
func ResolveAgentProfile(profile AgentProfile, systemPrompt string) AgentProfile
type Config ¶
type Config struct {
Provider string
Model string
BaseURL string
APIKey string
FakeResponse string
PromptCacheRetention string
SystemPrompt string
AgentProfile AgentProfile
PromptIdentity PromptIdentity
SkillsEnabled bool
SkillSources []string
SkillPromptBudgetBytes int
ContextPolicy ContextPolicy
Reasoning ReasoningSelection
MaxOutputTokensSet bool
MaxEmptyProviderRetries int
NoProgressLimit int
DuplicateToolLimit int
WallTime time.Duration
// contains filtered or unexported fields
}
func ResolveEnvSystemPrompt ¶
func ResolvePrompt ¶
type ContextPolicy ¶ added in v0.3.0
type ContextPolicy struct {
ContextWindowTokens int64 `json:"context_window_tokens,omitempty"`
MaxOutputTokens int64 `json:"max_output_tokens,omitempty"`
ReservedOutputTokens int64 `json:"reserved_output_tokens,omitempty"`
ReservedSummaryTokens int64 `json:"reserved_summary_tokens,omitempty"`
RecentTailTokens int64 `json:"recent_tail_tokens,omitempty"`
RecentUserTokens int64 `json:"recent_user_tokens,omitempty"`
CompactedContextTargetTokens int64 `json:"compacted_context_target_tokens,omitempty"`
EstimatorSource string `json:"estimator_source,omitempty"`
EstimatorMethod EstimateMethod `json:"estimator_method,omitempty"`
MaxCompactionFailures int `json:"max_compaction_failures,omitempty"`
}
type ContextPressure ¶ added in v0.3.0
type ContextPressure struct {
WindowInputTokens int64 `json:"window_input_tokens,omitempty"`
ProjectedInputTokens int64 `json:"projected_input_tokens,omitempty"`
ContextWindowTokens int64 `json:"context_window_tokens,omitempty"`
ThresholdTokens int64 `json:"threshold_tokens,omitempty"`
RequestSafeLimit int64 `json:"request_safe_limit_tokens,omitempty"`
OutputHeadroomTokens int64 `json:"output_headroom_tokens,omitempty"`
Signal PressureSignal `json:"pressure_signal,omitempty"`
Source PressureSource `json:"pressure_source,omitempty"`
EstimateMethod EstimateMethod `json:"estimate_method,omitempty"`
Confidence EstimateConfidence `json:"confidence,omitempty"`
CompactionNeeded bool `json:"compaction_needed,omitempty"`
HardLimitExceeded bool `json:"hard_limit_exceeded,omitempty"`
}
type ContextUsage ¶ added in v0.3.0
type ContextUsage struct {
PrefixTokens int64 `json:"prefix_tokens,omitempty"`
MessageTokens int64 `json:"message_tokens,omitempty"`
InputTokens int64 `json:"input_tokens,omitempty"`
ContextWindow int64 `json:"context_window,omitempty"`
ThresholdTokens int64 `json:"threshold_tokens,omitempty"`
RatioLimitTokens int64 `json:"ratio_limit_tokens,omitempty"`
RequestSafeLimit int64 `json:"request_safe_limit_tokens,omitempty"`
MaxOutputTokens int64 `json:"max_output_tokens,omitempty"`
ReservedOutput int64 `json:"reserved_output,omitempty"`
ReservedSummary int64 `json:"reserved_summary,omitempty"`
OutputHeadroom int64 `json:"output_headroom_tokens,omitempty"`
AutoCompactRatio int64 `json:"auto_compact_ratio_pct,omitempty"`
RecentTailTokens int64 `json:"recent_tail_tokens,omitempty"`
RecentUserTokens int64 `json:"recent_user_tokens,omitempty"`
Source string `json:"source,omitempty"`
Method EstimateMethod `json:"method,omitempty"`
Confidence EstimateConfidence `json:"confidence,omitempty"`
CompactionNeeded bool `json:"compaction_needed,omitempty"`
HardLimitExceeded bool `json:"hard_limit_exceeded,omitempty"`
}
type EstimateConfidence ¶ added in v0.3.0
type EstimateConfidence string
const ( EstimateExact EstimateConfidence = "exact" EstimateApproximate EstimateConfidence = "approximate" EstimateConservative EstimateConfidence = "conservative" )
type EstimateMethod ¶ added in v0.3.0
type EstimateMethod string
const ( EstimateMethodGenericPayload EstimateMethod = "generic_payload_estimate" EstimateMethodProviderRenderedPayload EstimateMethod = "provider_rendered_payload_estimate" EstimateMethodMessageContext EstimateMethod = "message_context_estimate" EstimateMethodOfficialPreflightCount EstimateMethod = "official_preflight_count" EstimateMethodUnknown EstimateMethod = "unknown_estimate_method" )
type PressureSignal ¶ added in v0.3.0
type PressureSignal string
const ( PressureSignalNativeUsage PressureSignal = "native_usage" PressureSignalProjected PressureSignal = "projected_request" PressureSignalOverflow PressureSignal = "provider_overflow" PressureSignalManual PressureSignal = "manual" )
type PressureSource ¶ added in v0.3.0
type PressureSource string
const ( PressureSourceProviderUsage PressureSource = "provider_usage" PressureSourceUsageAnchoredDelta PressureSource = "usage_anchored_delta" PressureSourceFullRequestEstimate PressureSource = "full_request_estimate" PressureSourceMissingNativeUsage PressureSource = "missing_native_usage_request_estimate" PressureSourceManual PressureSource = "manual" )
type PromptIdentity ¶
type PromptIdentity struct {
AgentProfileID string `json:"agent_profile_id"`
AgentProfileName string `json:"agent_profile_name"`
SystemPromptHash string `json:"system_prompt_hash"`
Source PromptSource `json:"source"`
}
type PromptSource ¶
type PromptSource string
const ( PromptSourceSystemPromptOverride PromptSource = "system_prompt_override" PromptSourceAgentProfile PromptSource = "agent_profile" PromptSourceEnv PromptSource = "env" PromptSourceDefaultAgent PromptSource = "default_agent" )
type ReasoningBudget ¶ added in v0.3.19
type ReasoningCapability ¶ added in v0.3.19
type ReasoningCapability struct {
Kind string `json:"kind"`
SupportedLevels []ReasoningLevel `json:"supported_levels,omitempty"`
DefaultLevel ReasoningLevel `json:"default_level,omitempty"`
DisableSupported bool `json:"disable_supported,omitempty"`
DefaultEnabled *bool `json:"default_enabled,omitempty"`
Budget ReasoningBudget `json:"budget,omitempty"`
DynamicModelValue bool `json:"dynamic_model_value,omitempty"`
}
func (ReasoningCapability) IsZero ¶ added in v0.23.0
func (c ReasoningCapability) IsZero() bool
func (ReasoningCapability) Normalize ¶ added in v0.23.0
func (c ReasoningCapability) Normalize() ReasoningCapability
func (ReasoningCapability) SupportsLevel ¶ added in v0.23.0
func (c ReasoningCapability) SupportsLevel(level ReasoningLevel) bool
func (ReasoningCapability) Validate ¶ added in v0.23.0
func (c ReasoningCapability) Validate() error
type ReasoningLevel ¶ added in v0.3.19
type ReasoningLevel string
ReasoningLevel is a provider-neutral model reasoning intent. Provider adapters translate it into the model-specific wire shape advertised by the selected model capability.
const ( ReasoningLevelDefault ReasoningLevel = "default" ReasoningLevelOff ReasoningLevel = "off" ReasoningLevelMinimal ReasoningLevel = "minimal" ReasoningLevelLow ReasoningLevel = "low" ReasoningLevelMedium ReasoningLevel = "medium" ReasoningLevelHigh ReasoningLevel = "high" ReasoningLevelXHigh ReasoningLevel = "xhigh" ReasoningLevelMax ReasoningLevel = "max" )
type ReasoningSelection ¶ added in v0.3.19
type ReasoningSelection struct {
Level ReasoningLevel `json:"level,omitempty"`
BudgetTokens int64 `json:"budget_tokens,omitempty"`
}
func NormalizeReasoningSelection ¶ added in v0.3.19
func NormalizeReasoningSelection(s ReasoningSelection) ReasoningSelection
func (ReasoningSelection) IsZero ¶ added in v0.3.19
func (s ReasoningSelection) IsZero() bool
type RequestEstimate ¶ added in v0.3.0
type RequestEstimate struct {
PrefixTokens int64 `json:"prefix_tokens,omitempty"`
MessageTokens int64 `json:"message_tokens,omitempty"`
ToolDefinitionTokens int64 `json:"tool_definition_tokens,omitempty"`
EstimatedInputTokens int64 `json:"estimated_input_tokens,omitempty"`
Source string `json:"source,omitempty"`
Method EstimateMethod `json:"method,omitempty"`
Confidence EstimateConfidence `json:"confidence,omitempty"`
}