I created this article for the purposes of entering the All Things Agentic Hackathon.
Competitive intelligence sounds simple: watch competitors and report what changed. In practice, useful signals are spread across release notes, product pages, pricing updates, and other sources. A team must check those sources repeatedly, separate meaningful changes from routine noise, and remember why it reached each conclusion.
I built Tycho to automate that work.
Tycho is an autonomous agent fleet that watches competitors, maintains evidence-backed beliefs, and produces a weekly view of the market. Every belief can be traced to the source change that created it. If the evidence does not support a conclusion, Tycho does not publish one.
For the hackathon, Tycho monitors four coding-agent products: Claude Code, OpenAI Codex, Gemini CLI, and Pi. Coding agents are the live test market, but the system is configured through YAML and is not tied to that industry.
The basic flow
Tycho runs as a scheduled pipeline rather than a chatbot. No person has to start a conversation or provide a research prompt.
The flow has four stages:
- Watch and record source changes
- Interpret what changed
- Update versioned beliefs
- Build and challenge a weekly market brief
1. Watch and record
Cloud Scheduler starts a Cloud Run acquisition job every night. The job reads each product's GitHub releases and official changelog.
The complete fetched payload is written once to Cloud Storage. An immutable Observation is also appended to BigQuery with its source, timestamp, status, content hash, and storage reference.
Before doing anything expensive, Tycho compares the new content hash with the previous Observation. If nothing changed, processing stops. This avoids unnecessary model calls and keeps unchanged checks visible in the audit history.
Fetched text is treated as untrusted data. A deterministic filter catches known prompt-injection patterns, and a Gemma 4 classifier screens for subtler instructions before the content reaches another agent.
2. Interpret the change
When a source changes, Gemini 3.7 Flash on Vertex AI receives one bounded before-and-after pair. It has no tools and must return structured JSON.
Gemini describes each meaningful change and provides exact quotes from the source. Python then checks the result:
- Does every quote occur in the correct source snapshot?
- Do the Observation IDs and entity match?
- Is the change about the monitored product?
- Are the categories, confidence values, and lengths valid?
- Does the result obey the evidence policy?
Only a response that passes every check becomes a canonical Delta in BigQuery. Valid noise is retained for audit, but only meaningful Deltas continue through Pub/Sub.
The model interprets the text. Code decides whether the system may trust that interpretation.
3. Maintain versioned beliefs
Meaningful Deltas are delivered to the managed Tycho Analyst Agent Runtime. The Analyst is built with Google ADK and can act through only five tools:
- Create a claim
- Supersede a claim
- Adjust confidence
- Reverify an existing claim
- Take no action
Those tools enforce the lifecycle rules in Python. The model cannot write directly to Firestore, BigQuery, or Cloud Storage.
Claims are stored in Firestore as versioned beliefs. A correction does not silently replace old text. Tycho publishes a new version and preserves the supersession history, evidence references, and timestamps.
Firestore is the authoritative memory because this workflow needs exact versions, transactions, and durable leases. It is not conversational memory. The agents share a governed claim ledger.
4. Build and challenge the weekly brief
A second Cloud Scheduler job starts the Tycho Strategy Council once a week. It runs in a separate managed Agent Runtime with its own service account and Agent Identity.
The Council uses three Google ADK agents:
- The Strategist proposes market conclusions from exact claim versions.
- The Challenger looks for weaknesses using the same evidence.
- The Brief Writer renders only conclusions that survived both code checks and challenge.
Python runs between every agent. A conclusion must use multiple entities and independent source families. Two pages controlled by the same vendor do not automatically count as two independent witnesses. The Council cannot browse the web, fetch raw snapshots, or modify claims.
The final brief cites exact claim versions, so each line can be traced back through a canonical Delta to its source Observations.
Managed agents and Google Cloud
Tycho uses two isolated managed Agent Runtimes: one for the Analyst and one for the Strategy Council. Both are cataloged in Agent Registry and run under separate managed Agent Identities.
The deployed stack includes:
- Google ADK
- Gemini and Gemma on Vertex AI
- Agent Runtime, Agent Registry, and Agent Identity
- Cloud Run and Cloud Scheduler
- BigQuery and Cloud Storage
- Firestore and Pub/Sub
- Cloud Build and Artifact Registry
- Cloud Trace and OpenTelemetry
The public dashboard has a separate read-only identity. It can read governed results but cannot write claims or Deltas, publish messages, or read raw Cloud Storage payloads.
OpenTelemetry records workflow structure, timing, model names, and token usage. Prompts, model responses, claim text, and source quotes are removed before traces are exported.
Running in production
Tycho is deployed on Google Cloud against real public data. At submission time it had produced:
- 132 immutable Observations
- 79 canonical Deltas
- 23 active evidenced claims
- Four monitored competitors across eight official sources
The latest scheduled weekly run pinned all 23 active claim versions and evaluated a proposed market conclusion. The evidence did not satisfy the cross-entity rules, so Tycho published an empty brief instead of turning a weak pattern into a confident answer.
Repeating the same weekly period returned the completed session through a Firestore lease. It did not make a second Gemini call.
The repository includes 488 backend tests, 68 frontend tests, 14 live production checks, and green GitHub Actions CI.
Try Tycho
Tycho's core rule is simple: accumulate facts, revise beliefs, and preserve the evidence between them.

Top comments (0)