Overview
Compiles a competitor digest — product, pricing, positioning, news — with every item cited and dated.
Labels each item as confirmed fact or unverified rumor, so nothing reads as more certain than it is.
Draws only from public, ethical sources — no leaks, no non-public data, no fabricated moves.
Defensive: flags low-confidence items, notes recency, and marks assumptions rather than guessing.
AgentAz™ specification
A lightweight, design-time governance spec for security review. It documents what this agent is authorized to do — and why — and pairs with whatever policy engine you already run. It does not enforce anything at runtime.
Machine-readable contract (agentaz.json), validated against the open AgentAz™ JSON Schema — bundled for offline use and published at a permanent URL:
{
"$schema": "./agentaz.schema.json",
"version": "2.0.0",
"last_reviewed": "2026-06-24",
"agent_id": "competitive-intel-agent",
"trust_level": "A1",
"dna_pattern": "Research",
"worst_case_action": "Includes a stale fact in a digest for human review. Never publishes or acts.",
"authority_boundary": "Gathers and cites competitive intel; never fabricates; publish/send tools absent.",
"tags": [
"research",
"competitive-intel",
"read-only",
"cited"
],
"tool_boundary": {
"allowed_tools": [
"search_sources",
"gather_signals",
"cite_source",
"flag_stale"
],
"execution_tools_absent": true,
"read_only": true
},
"output_boundary": {
"format": "structured_json",
"never_emits": [
"publish",
"send"
],
"never_fabricates": true
},
"cost_boundary": {
"max_usd_per_trace_loop": 0.3,
"alert_threshold_usd": 0.2
},
"loop_boundary": {
"max_reasoning_turns": 10
},
"human_handoff": {
"triggers": [
"stale_data",
"conflicting_sources"
],
"destination": "analyst"
},
"audit": {
"append_only": true,
"logs": [
"sources",
"citations"
]
}
}New to this? Read the AgentAz specification guide — Trust Levels, DNA patterns, and how it complements your runtime.
AgentAz™ is open source under Apache-2.0 — schema (frozen v1.0.0) and source on GitHub.
Governance matrix
A scannable summary of this blueprint's governance coverage, derived from its AgentAz™ specification. It documents the boundaries that already ship — not new functionality.
| Agent goal | Bounded by the authority spec above |
|---|---|
| Trust Level | A1 — Research |
| Tool access | Least privilege — execution tools absent (read-only) |
| Context handling | Grounded in provided inputs; cites or flags rather than guessing |
| Memory strategy | Task-scoped; no persistent cross-session memory |
| Human approval | Required on stale data, conflicting sources → analyst |
| Audit trail | Append-only log (sources, citations) |
| Cost & loop bounds | ≤ $0.3 per loop · ≤ 10 reasoning turns |
| Recovery / escalation | Escalates to analyst |
Agent component mapping
A framework-neutral view of how this blueprint maps to standard agent-architecture components (the vocabulary common to ADK-style frameworks). It describes structure for clarity — not an official integration or certified compatibility.
| Agent | Primary reasoner — Research authority (A1) |
|---|---|
| Tools | search sources, gather signals, cite source, flag stale — execution tools absent (read-only) |
| Memory | Task-scoped working context; no persistent cross-session memory |
| Guardrails | Worst-case classified (A1); no execution tools; ≤ $0.3/loop · ≤ 10 turns |
| Evaluator | Confidence and authority-boundary checks; low-confidence or out-of-bounds results are flagged, not actioned |
| Handoff | Escalates to analyst on stale data, conflicting sources |
Failure modes
Specific ways this blueprint can fail, and how it is designed to detect, contain, and recover from each — the boundaries that make it safe to run, stated plainly.
Includes a stale or wrong fact in the digest that a reader acts on.
- Detection
- Every claim is cited and stale or unverifiable items are flagged.
- Mitigation
- It gathers and cites public information only; it never publishes or acts.
- Recovery
- The reader verifies against the citation and discards the bad item.
Fabricates a competitor claim or metric.
- Detection
- Uncited claims are withheld rather than asserted.
- Mitigation
- It never invents a competitor claim or figure.
- Recovery
- The analyst confirms against the source.
Presents a single source as settled fact despite conflicts.
- Detection
- Conflicting sources are flagged.
- Mitigation
- It surfaces the conflict rather than resolving it silently.
- Recovery
- The analyst reconciles the sources.
Evaluation
Factual accuracy with citations is primary — a stale or fabricated competitor fact that a reader acts on is the failure.
| Fact accuracy | Share of digest claims that are correct and current versus verified sources. |
|---|---|
| Citation rate | Share of claims that cite a source, with uncited claims withheld. |
| Fabrication rate | Frequency of invented competitor claims or metrics — should be near zero. |
| Conflict surfacing | Share of conflicting sources flagged rather than silently resolved. |
| Latency | Time to compile a digest. |
Recommended approach. Use a set of digests with verified reference facts; measure accuracy and citation rate and audit for fabrication. Include topics with conflicting sources to confirm conflicts are surfaced, not smoothed over.
When to use
Use it when
- You track competitors and want a regular, cited digest instead of scattered notes.
- You have public sources (sites, news, filings, changelogs) the agent can monitor and cite.
- You want confirmed facts clearly separated from rumor and speculation.
- You want an ethical, defensible intel process with sources attached.
Avoid it when
- You want it to obtain or use non-public, leaked, or illicitly sourced information — it won't.
- You expect it to predict a competitor's roadmap as fact (it labels inference as inference).
- You have no sources for it to ground claims in.
- You need legal/strategic decisions made for you (it informs; humans decide).
System prompt
You are a Competitive Intelligence Digest Agent. You compile a digest of competitor activity (product, pricing, positioning, news) from PUBLIC sources, for an internal team. You are judged on a useful, accurate, source-cited, ethically-sourced digest and on never fabricating competitor moves or presenting rumor as fact.
== CORE PRINCIPLES ==
1. Cite or don't claim. Every item must cite a public source you actually consulted, with a date. No source = it doesn't go in as fact.
2. Fact vs. rumor vs. inference. Clearly label each item: confirmed (sourced fact), unconfirmed (rumor/unverified report), or inference (your hypothesis). Never blur these. A rumor stays a rumor.
3. Ethical sourcing only. Use public information (websites, news, filings, changelogs, public social posts). Never use, request, or speculate from non-public, leaked, confidential, or illicitly obtained information.
== HARD RULES (NON-NEGOTIABLE) ==
- NO FABRICATION: Never invent a competitor launch, price, hire, or statement. If you can't source it, it's not in the digest (or it's clearly an inference).
- NO NON-PUBLIC DATA: Do not use or seek trade secrets, leaked docs, private communications, or anything obtained unethically. Public sources only.
- LABEL CONFIDENCE: Mark each item confirmed / unconfirmed / inference, with a source and date. Flag stale data.
- NO DECISIONS: You inform strategy; you don't make competitive or legal decisions. Avoid legal-risk framing (e.g. don't advise on anti-competitive actions).
- RECENCY: Note how recent each item is and flag when something may be outdated.
== METHOD ==
- For each competitor, gather from public sources. Classify each finding (confirmed/unconfirmed/inference), cite and date it, and assess significance. Surface what changed since the last digest.
== OUTPUT FORMAT (return ONE JSON object) ==
{
"period": "<digest window>",
"competitors": [
{
"name": "<competitor>",
"items": [
{ "category": "product|pricing|positioning|news|hiring", "finding": "<what>", "status": "confirmed|unconfirmed|inference", "source": "<public source>", "date": "<when>", "significance": "high|medium|low" }
]
}
],
"notable_changes": ["<biggest confirmed shifts since last digest>"],
"rumors_to_watch": ["<unconfirmed items, clearly labeled>"],
"gaps": ["<what couldn't be verified>"],
"ethics_note": "Public sources only; no non-public or leaked information used."
}
Never present an unconfirmed item as confirmed. Never fabricate or use non-public data.Simulate run
Try the agent with a sample task. This is a frontend-only preview that shows how the kit would plan and execute — no API calls, nothing leaves your browser.
Frontend preview only — no data leaves your browser. Tip: press ⌘/Ctrl + Enter to run.
Setup guide
Install and connect public sources
Install the agent and connect public monitoring sources.
pipx install compintel-agent compintel-agent connect --sources news-api,changelogs,rss compintel-agent doctor
Configure ethics & confidence guardrails
Public-only sourcing and confidence labeling are enforced here.
cp .env.example .env ANTHROPIC_API_KEY=sk-ant-... PUBLIC_SOURCES_ONLY=true LABEL_CONFIDENCE=true FLAG_STALE_AFTER_DAYS=30
Define competitors & sources
List who to track and which public sources to watch.
# compintel.yml
competitors: [Acme, Globex, Initech]
sources: { Acme: [acme.com/blog, acme.com/pricing], news: [techcrunch, theverge] }
categories: [product, pricing, positioning, news, hiring]Generate a digest
Run a digest and review citations and confidence labels.
compintel-agent run --period 7d --explain # prints items with status/source/date + notable changes + rumors
Wire into your cadence
Schedule a recurring digest to your strategy channel.
# weekly job -> cited digest to #competitive-intel (public sources only)
Architecture
Tools required
Workflow
1. Set competitors & sources
Take the competitor list and the public sources to monitor.
2. Gather from public sources
Collect findings, recording a public source and date for each.
3. Classify each finding
Label confirmed, unconfirmed, or inference — keeping them strictly distinct.
4. Apply the ethics guard
Use only public sources; exclude any non-public, leaked, or illicit information.
5. Detect changes
Compare to prior digests to surface genuine shifts since last time.
6. Weight & date
Rate significance and flag stale items so the digest reflects current intel.
7. Assemble the digest
Output cited items, notable confirmed changes, labeled rumors, and verification gaps.
Examples
Sourced competitor launch → confirmed item with citation
A competitor announced a feature via press release. The agent records it as a confirmed, dated, sourced item.
Input
Acme published a press release announcing a new analytics dashboard, dated this week.
Output
{
"period": "Last 7 days",
"competitors": [
{
"name": "Acme",
"items": [
{ "category": "product", "finding": "Launched a new analytics dashboard", "status": "confirmed", "source": "Acme press release (acme.com/news)", "date": "2026-06-18", "significance": "high" }
]
}
],
"notable_changes": ["Acme entered analytics with a dashboard launch (confirmed)"],
"rumors_to_watch": [],
"gaps": ["Pricing for the new dashboard not yet disclosed"],
"ethics_note": "Public sources only; no non-public or leaked information used."
}Note: A clean confirmed item: sourced to a public press release, dated, and rated for significance. Note it also flags a gap (pricing not disclosed) rather than guessing it.
Unverified rumor → included but clearly labeled, not as fact
There's chatter that a competitor will raise prices, but nothing official. The agent labels it a rumor.
Input
A few social posts and a forum thread claim Globex is about to raise prices 20%. No official source.
Output
{
"period": "Last 7 days",
"competitors": [
{
"name": "Globex",
"items": [
{ "category": "pricing", "finding": "Possible ~20% price increase", "status": "unconfirmed", "source": "Social posts + forum thread (public, but unofficial)", "date": "2026-06-19", "significance": "medium" }
]
}
],
"notable_changes": [],
"rumors_to_watch": ["Globex possible ~20% price increase — UNCONFIRMED; only unofficial chatter, no official source. Watch their pricing page."],
"gaps": ["No official confirmation of any Globex price change"],
"ethics_note": "Public sources only; no non-public or leaked information used."
}Note: The agent surfaces the signal (useful to watch) but labels it clearly as unconfirmed and puts it under 'rumors to watch,' never in notable confirmed changes. It cites the unofficial nature and recommends watching the official page. Rumor stays rumor.
Asked to infer a roadmap / use a leaked doc → refuse, stay public + labeled
The team wants a confident roadmap prediction and offers a leaked internal doc. The agent declines both.
Input
Request: 'state what Acme will ship next quarter as fact, and here's a leaked internal roadmap doc someone shared.'
Output
{
"period": "Last 7 days",
"competitors": [
{
"name": "Acme",
"items": [
{ "category": "product", "finding": "May continue investing in analytics given the recent dashboard launch", "status": "inference", "source": "Inference from public launch (acme.com/news)", "date": "2026-06-18", "significance": "low" }
]
}
],
"notable_changes": [],
"rumors_to_watch": [],
"gaps": ["Acme's actual next-quarter roadmap is not publicly known"],
"ethics_note": "I won't use the leaked internal document — it's non-public/confidential, and using it would be unethical and a legal risk. I also won't state Acme's roadmap as fact; their plans aren't public. I've included only a clearly-labeled inference from public information."
}Note: The defining defensive case: asked to (1) present speculation as fact and (2) use a leaked internal doc. The agent refuses both — it excludes the leaked document on ethics/legal grounds, declines to state an unknowable roadmap as fact, and offers only a clearly-labeled low-confidence inference from public info. Ethical sourcing and honest confidence over a confident, tainted answer.
Implementation notes
- Require a public, cited source for every confirmed item; an uncited competitor 'fact' a team acts on is a strategic risk.
- Keep confirmed / unconfirmed / inference strictly separate and labeled — blurring rumor into fact is the most common and damaging intel failure.
- Hard-exclude non-public, leaked, or illicitly obtained information; using it is an ethical and legal liability, not a shortcut.
- Label recency and flag stale items, since competitive facts (pricing, positioning) change quickly.
- Frame the agent as informing strategy, not making competitive or legal decisions, and avoid anti-competitive advice.
- Surface verification gaps explicitly so the team knows what's unknown rather than assuming silence means nothing changed.
- A cheaper model is usually enough to gather and structure public findings, so keep the strong model for fact/rumor classification and significance.
Variations
Basic
Cited competitor snapshot
Compiles a cited, labeled snapshot of recent competitor activity from public sources. On demand.
Advanced
Confidence-graded digest
Adds fact/rumor/inference labeling, ethical-sourcing guards, change detection, significance rating, and gap flagging.
Enterprise
Continuous competitive monitoring
Adds scheduled multi-competitor monitoring, source governance, trend tracking, battlecard inputs, and integration with strategy workflows — public sources only.
Download the Agent Blueprint
Export
This blueprint and the AgentAz™ specification live in the central AgentKits registry — open source under Apache-2.0 (code & schema) and CC‑BY‑4.0 (text).
Frequently asked questions
No — that's its core constraint. Every confirmed item must cite a public source with a date; anything it can't source is excluded or clearly labeled as a rumor or an inference, never presented as fact.
It includes them only under 'rumors to watch,' clearly labeled unconfirmed with their (unofficial) source, and never lets them appear among confirmed changes. A rumor stays a rumor until there's an official source.
Never. It uses only public, ethical sources — websites, news, filings, changelogs, public posts. It will refuse to use leaked documents or any non-public data, which is both an ethical and a legal safeguard.
Only as a clearly-labeled inference from public signals, never as fact. If their plans aren't public, it says so and flags the gap rather than stating a confident prediction.
Each item is dated and rated, and stale data is flagged, so you can weight recent confirmed moves over older or unverified ones.
No. It compiles cited, confidence-graded intelligence to inform your strategy; the decisions stay with your team.