Replace the monolithic agents config with a cleaner structure: - llm: holds provider credentials and default model settings - probo-agent: LLM overrides for the probo agent - evidence-describer: worker config (interval, stale-after, max-concurrency) alongside LLM overrides This makes worker tuning configurable via YAML and env vars instead of being hardcoded in Go, and separates provider credentials from per-consumer model settings. Signed-off-by: Bryan Frimin <bryan@getprobo.com>
39 lines
1.5 KiB
Go
39 lines
1.5 KiB
Go
// Copyright (c) 2025-2026 Probo Inc <hello@getprobo.com>.
|
|
//
|
|
// Permission to use, copy, modify, and/or distribute this software for any
|
|
// purpose with or without fee is hereby granted, provided that the above
|
|
// copyright notice and this permission notice appear in all copies.
|
|
//
|
|
// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
// REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
// AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
// INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
// LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
// OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
// PERFORMANCE OF THIS SOFTWARE.
|
|
|
|
package probod
|
|
|
|
// EvidenceDescriberConfig holds both the worker settings and LLM overrides
|
|
// for the evidence description worker.
|
|
type EvidenceDescriberConfig struct {
|
|
Interval int `json:"interval"` // seconds
|
|
StaleAfter int `json:"stale-after"` // seconds
|
|
MaxConcurrency int `json:"max-concurrency"`
|
|
|
|
Provider string `json:"provider"`
|
|
ModelName string `json:"model-name"`
|
|
Temperature *float64 `json:"temperature"`
|
|
MaxTokens *int `json:"max-tokens"`
|
|
}
|
|
|
|
// LLMConfig extracts the LLM-specific fields as an LLMConfig.
|
|
func (c *EvidenceDescriberConfig) LLMConfig() LLMConfig {
|
|
return LLMConfig{
|
|
Provider: c.Provider,
|
|
ModelName: c.ModelName,
|
|
Temperature: c.Temperature,
|
|
MaxTokens: c.MaxTokens,
|
|
}
|
|
}
|