Skip to content

Summary hints

summary_hints[] is an array of short strings that fire when the aggregate vector crosses specific thresholds. The calling agent is expected to incorporate them verbatim into its response — they’re not internal diagnostics; they’re output-facing context.

The hint text is intentionally written as natural-language instructions to the agent (“Treat aggregated claims as commercial positioning, not research”). That framing is what gets read when the agent synthesizes — you want the hint to survive summarization, not be buried in a nested structured field.

All hints live in src/vectorize.ts#generateSummaryHints.

{pct}% of results are vendor-published content. Cross-reference with
independent editorial or primary sources before drawing conclusions.

Fires when vendor_dominance_ratio >= 0.5.

No peer-reviewed, independent-editorial, or regulated-primary source in SERP —
triangulation against non-commercial sources is not possible here. Treat
aggregated claims as commercial positioning, not research.

Fires when peer_reviewed + independent_editorial + regulated_primary == 0 and total >= 5. Common for SaaS-operational queries (“series B magic number benchmark”) where the entire landscape is vendor thought leadership. A stronger signal than vendor_dominance_ratio alone because affiliate results are commercial too.

{n} of {total} results are affiliate listicles. Their product recommendations
reflect commercial incentives, not editorial comparison.
Primary / peer-reviewed sources are present ({n} of {total}); give them
interpretive weight over the rest.

The inverse of structural dominance — tells the agent which results to lean on.

Source diversity is low (tier entropy={n}). The SERP is dominated by a single
source type.

Fires when diversity_entropy < 1.0 AND total >= 5 AND mean_authoritative_weight < 0.7. The authoritative_weight gate is important: 10/10 peer-reviewed papers have low entropy but are exactly what the agent wants, so we suppress the warning.

{n} result(s) flagged as domain_content_mismatch — possible parasite SEO,
domain squatting, or industry-front content.
{n} result(s) flagged by Safe Browsing — these are blocked regardless of tier.

Two patterns work well:

Pass-through: Include the hint text in the model’s final response. This is the simplest integration and works for most use cases.

Re-query trigger: If mean_authoritative_weight < 0.3 or structural-dominance fires, the agent may choose to re-query with more academic phrasing rather than reply. See vocabulary sensitivity for why this works.