Know when your agent's context has gone stale.
Freshness Validator watches the sources your AI agents rely on and scores how fresh each piece of context is. Agents can re-fetch outdated information before they act on it.
| Context the agent holds | Score |
|---|---|
| Rate limit is 100 requests per minute Source unchanged since last check |
92 fresh |
| Support hours end at 5 pm Validated 6 days ago, policy is 7 days |
74 warning |
| Refund window is 30 days Source page changed after last validation |
58 stale |
What it does
- Time-based scoring
- Scores context by how long ago it was validated, against a freshness policy you choose: 1h, 24h, 7d, or a custom window.
- Source monitoring
- Fetches and hashes the sources you register on a schedule. When a page changes, context validated before the change is flagged.
- Fuzzy matching
- Compares your context with the page text using 5-word shingles. Edits to real content count; markup, scripts, and styles do not.
- REST and MCP
- Call it over standard REST from backend services, or over the Model Context Protocol from agents. Both use the same validation engine.
- Pay per call
- Prepaid credits, deducted per validation call. Unfunded agents still receive the result, with an HTTP 402 status.
- Per-agent API keys
- Each agent has its own key. Secrets are stored as SHA-256 hashes, shown once at creation, and can be revoked and replaced at any time. Repeated failed attempts are throttled by IP.
How it works
- Register sources. Tell the service which URLs your agents draw knowledge from.
- Validate context. Send the context an agent holds. You get a score, a stale flag, and suggestions.
- Act on the result. If the context is stale, the agent re-fetches from the source and validates again.
Try it
Register a source, then validate context against it. Replace the key with the one issued to your agent.
# Register a source for monitoring (costs 2 validation calls)
curl -X POST https://api.myuiaf.com/api/v1/source/register \
-H "Authorization: Bearer fv1.acme-bot.k1.xxxxx" \
-H "content-type: application/json" \
-d '{"source_url":"https://example.com/api-docs","check_frequency":"6h"}'
# Validate agent context
curl -X POST https://api.myuiaf.com/api/v1/validate \
-H "Authorization: Bearer fv1.acme-bot.k1.xxxxx" \
-H "content-type: application/json" \
-d '{"context":"The API rate limit is 100 req/min","source_url":"https://example.com/api-docs"}'
{
"freshness_score": 72,
"is_stale": false,
"confidence": 0.85,
"source_match": { "method": "overlap", "overlap": 0.95 },
"flagged_issues": [],
"suggestions": [],
"source_status": "monitored",
"credits_deducted": 0.03,
"remaining_balance": 4.97
}