Narrow tracker-mapping confidence to attribution
The agent returned a single confidence that conflated two unrelated judgments: whether an artifact is a meaningful web tracker and which vendor set it. The prompt's tracker-worthiness skepticism drove the number down for extension state like __darkreader__wasEnabledForHost, pushing it below the gate and dropping the attribution entirely, so a clearly-named vendor never reached the catalog. Rename the agent field to ThirdPartyConfidence and scope it to the attribution alone. The identify gate now checks that a vendor is named with sufficient confidence; on success the catalog row is stored at a fixed agent confidence like the other heuristic signals, and on failure the unmatched fallback still records the pattern with no third party. The stored pattern confidence was only used for ordering and as agent context, never as a gate, so a separate LLM-provided number is dropped rather than split out. Signed-off-by: Émile Ré <emile@probo.com>
This commit is contained in:
@@ -29,10 +29,15 @@ import (
|
||||
)
|
||||
|
||||
const (
|
||||
agentTimeout = 60 * time.Second
|
||||
agentMaxTurns = 5
|
||||
agentConfidenceThreshold = 0.6
|
||||
agentMaxPatternConfidence = 0.8
|
||||
agentTimeout = 60 * time.Second
|
||||
agentMaxTurns = 5
|
||||
agentThirdPartyConfidenceThreshold = 0.6
|
||||
// agentSourceConfidence is the fixed confidence stored on catalog
|
||||
// rows the agent attributes to a third party. The agent's own
|
||||
// confidence now gauges the attribution (see ThirdPartyConfidence)
|
||||
// rather than the pattern, so the stored row confidence is a
|
||||
// constant like the other heuristic signals (domain, sibling).
|
||||
agentSourceConfidence = 0.8
|
||||
)
|
||||
|
||||
//go:embed prompts/tracker_identification.txt.tmpl
|
||||
@@ -41,9 +46,9 @@ var trackerIdentificationPrompt string
|
||||
// TrackerMappingAgentResult is the structured output the tracker-mapping
|
||||
// agent returns.
|
||||
type TrackerMappingAgentResult struct {
|
||||
ThirdPartyName string `json:"third_party_name" jsonschema:"Name of the company or service that sets this tracker (e.g. 'Google Analytics', 'Meta Pixel'). Empty string if truly unknown."`
|
||||
Category coredata.ThirdPartyCategory `json:"category" jsonschema:"Third party category"`
|
||||
Confidence float64 `json:"confidence" jsonschema:"Confidence level from 0.0 to 1.0. Set below 0.5 if unsure."`
|
||||
ThirdPartyName string `json:"third_party_name" jsonschema:"Name of the company or service that sets this tracker (e.g. 'Google Analytics', 'Meta Pixel'). Empty string if truly unknown."`
|
||||
Category coredata.ThirdPartyCategory `json:"category" jsonschema:"Third party category"`
|
||||
ThirdPartyConfidence float64 `json:"third_party_confidence" jsonschema:"Confidence (0.0 to 1.0) in which company or service set this tracker, independent of whether the artifact is a classic web tracker. Set below 0.5 if unsure who set it."`
|
||||
}
|
||||
|
||||
func buildTrackerMappingAgent(
|
||||
|
||||
Reference in New Issue
Block a user