Anti-Patterns

Silent External-Source Rot

Anti-pattern: an agent keeps reporting success while a wrapped external source has silently changed structure, so its tool returns valid-but-empty or degraded output that nothing watches.

Problem

When the source mutates, the fetch still succeeds at the transport layer: the page returns 200, the API returns a well-formed envelope, the corpus still has rows. The extraction underneath, a CSS selector or a field path or a relevance match, now pulls nothing useful, so the tool hands back a structurally-valid but empty or stale payload. The agent has no signal that the content rotted, runs its normal flow on near-empty input, and reports success. Because the failure is silent, it is discovered late, often only when a downstream human notices the output got thin.

Solution

This entry names the anti-pattern; the corrective is to put a source-health canary between the tool and the agent. After each fetch, assert content-level expectations the source should always meet: a non-empty extraction, a row or token count within a learned range, presence of marker fields, and a freshness timestamp newer than a threshold. When an assertion fails, the run halts or routes to a degraded-mode fallback and raises an alert instead of feeding the empty payload forward as if it were real data. The baseline is recorded once from a known-good run and re-checked on every fetch, so a layout or schema change surfaces on the next run rather than after a human notices thin output ten days later.

When to use

  • An agent depends on a scraped page, a third-party API, or a refreshed retrieval corpus it does not control.
  • A tool node fetches that source on every run and the agent acts on whatever comes back without a content-quality check.
  • Failures would show as thin or empty output rather than as an error, so they stay invisible until a human notices.

Open the full interactive page

Diagram, neighbourhood map, code examples, related patterns and full provenance.

Related