Documentation
¶
Index ¶
Constants ¶
View Source
const ( DefaultMaxTurns = 100 DefaultMaxParallelTools = 8 DefaultToolTimeout = 10 * time.Minute DefaultContextWindow = 400_000 DefaultReserveTokens = 32_000 )
Variables ¶
View Source
var ErrMaxTurnsExceeded = errors.New("agent: internal turn-loop safety bound exceeded — likely a runaway tool-call cycle")
Functions ¶
func ContextWindowFor ¶ added in v0.9.3
func DefaultModel ¶ added in v0.9.4
func DefaultModel() string
DefaultModel returns the model requested via environment; WINGMAN_MODEL takes priority over the OpenAI-standard OPENAI_DEFAULT_MODEL.
Types ¶
type Agent ¶
type Agent struct {
*Config
Messages []Message
Usage Usage
Revision uint64
// contains filtered or unexported fields
}
func (*Agent) MessagesSnapshot ¶ added in v0.10.3
func (*Agent) StateSnapshot ¶ added in v0.10.3
func (*Agent) UsageSnapshot ¶ added in v0.10.3
type Config ¶
type Config struct {
Model func() string
Effort func() string
Tools func() []tool.Tool
Instructions func() string
// CacheKey routes provider-side prompt caching; keep it stable per
// conversation (e.g. the session ID) to maximize prefix-cache hits.
CacheKey string
Hooks hook.Hooks
// MaxTurns caps successful model invocations in one Send run. Stream
// retries and tool calls do not consume turns. Zero uses the default;
// negative disables the safety bound.
MaxTurns int
// MaxParallelTools bounds concurrently executing read-only tool calls.
// Zero uses the default; negative allows the whole emitted batch.
MaxParallelTools int
// ToolTimeout is a hard ceiling on every tool call. When zero, tools may
// extend the default via tool.Tool.Timeout; negative disables deadlines.
ToolTimeout time.Duration
ContextWindow int
// LargeContext compacts against the model's full hardware window instead
// of stopping at the provider's long-context price threshold (e.g. 2x
// input pricing on GPT-5.4/5.5 beyond 272k input tokens).
LargeContext bool
ReserveTokens int
// contains filtered or unexported fields
}
func DefaultConfig ¶
type Message ¶
type Message struct {
Role MessageRole `json:"role"`
Content []Content `json:"content"`
Hidden bool `json:"hidden,omitempty"`
}
type MessageRole ¶
type MessageRole string
const ( RoleUser MessageRole = "user" RoleAssistant MessageRole = "assistant" RoleSystem MessageRole = "system" )
type Reasoning ¶ added in v0.6.2
type Reasoning struct {
ID string `json:"id,omitempty"`
Summary string `json:"summary,omitempty"`
// Content is the provider's opaque (encrypted) reasoning payload, only
// replayable to the model that produced it. Model tags the producer so the
// agent loop can purge stale payloads when the session model changes.
Content string `json:"content,omitempty"`
Model string `json:"model,omitempty"`
}
type State ¶ added in v0.6.2
type ToolResult ¶
type Usage ¶
type Usage struct {
InputTokens int64 `json:"input_tokens"`
CachedTokens int64 `json:"cached_tokens"`
OutputTokens int64 `json:"output_tokens"`
// LastInputTokens is the input size of the most recent request — the
// current context occupancy, unlike the cumulative counters above.
LastInputTokens int64 `json:"last_input_tokens,omitempty"`
}
Source Files
¶
Click to show internal directories.
Click to hide internal directories.