Give each tracker agent its own config
The tracker-mapping, common-pattern enrichment, and third-party disambiguation agents were all built from one shared TrackerAgentsConfig fed by a single tracker-mapping config slot. That forced a single AgentTimeout to be reused and patched per worker, and two unrelated max-turns fields to share one struct. Split the in-code config into TrackerMappingAgentConfig, TrackerEnrichmentAgentConfig, and DisambiguationAgentConfig, each with its own timeout and max-turns, and add dedicated tracker-enrichment and third-party-disambiguation provider slots (the latter resolving next to third-party-vetter). Enrichment and disambiguation fall back to the tracker-mapping slot when their own provider is unset, preserving single-config deployments. Drop the shared pkg/agentsbuild package and duplicate its small wiring into probod and proboctl so the two executables stay decoupled. Wire the new env vars, builder test coverage, and Helm values. Signed-off-by: Émile Ré <emile@probo.com>
This commit is contained in:
@@ -324,7 +324,7 @@ func (impl *Implm) Run(
|
||||
return err
|
||||
}
|
||||
|
||||
trackerAgentsCfg, thirdPartyDisambiguationCfg, err := impl.buildTrackerAgentsConfig(l, tp, r)
|
||||
trackerMappingCfg, trackerEnrichmentCfg, thirdPartyDisambiguationCfg, err := impl.buildTrackerAgents(l, tp, r)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -790,7 +790,7 @@ func (impl *Implm) Run(
|
||||
trackerMappingWorker := cookiebanner.NewTrackerMappingWorker(
|
||||
pgClient,
|
||||
l,
|
||||
trackerAgentsCfg,
|
||||
trackerMappingCfg,
|
||||
thirdPartyDisambiguationCfg,
|
||||
time.Duration(impl.cfg.TrackerMappingWorker.StaleAfter)*time.Second,
|
||||
worker.WithInterval(time.Duration(impl.cfg.TrackerMappingWorker.Interval)*time.Second),
|
||||
@@ -811,14 +811,12 @@ func (impl *Implm) Run(
|
||||
// the tracker agents are configured.
|
||||
stopCommonPatternEnrichmentWorker := func() {}
|
||||
|
||||
if trackerAgentsCfg.LLMClient != nil {
|
||||
enrichmentCfg := trackerAgentsCfg
|
||||
enrichmentCfg.AgentTimeout = time.Duration(impl.cfg.CommonPatternEnrichmentWorker.AgentTimeout) * time.Second
|
||||
|
||||
if trackerEnrichmentCfg.LLMClient != nil {
|
||||
commonPatternEnrichmentWorker := cookiebanner.NewCommonPatternEnrichmentWorker(
|
||||
pgClient,
|
||||
l,
|
||||
enrichmentCfg,
|
||||
trackerEnrichmentCfg,
|
||||
trackerMappingCfg,
|
||||
time.Duration(impl.cfg.CommonPatternEnrichmentWorker.StaleAfter)*time.Second,
|
||||
worker.WithInterval(time.Duration(impl.cfg.CommonPatternEnrichmentWorker.Interval)*time.Second),
|
||||
worker.WithMaxConcurrency(impl.cfg.CommonPatternEnrichmentWorker.MaxConcurrency),
|
||||
|
||||
Reference in New Issue
Block a user