Skip to main content
GoldenMatch exposes itself as an autonomous entity resolution agent that other AI systems can discover and invoke. An agent says “deduplicate this data” and GoldenMatch handles strategy selection, config generation, pipeline execution, and result explanation — all without human configuration.
Just want to use from Claude Desktop? See the MCP Server page instead — it’s simpler for human-in-the-loop workflows.

What is A2A?

A2A (Agent-to-Agent) is an open protocol for AI systems to discover and invoke each other. Think of it as DNS + HTTP for AI agents:
  1. An agent discovers GoldenMatch at /.well-known/agent.json (like a business card)
  2. The agent card lists skills (capabilities) with input/output schemas
  3. The calling agent sends a task, GoldenMatch processes it, returns structured results
A2A is supported by LangChain, CrewAI, AutoGen, and other agent frameworks. Use A2A when you’re building agent-to-agent workflows where no human is in the loop.

Two Protocols

Quick Start

A2A Server

Other agents discover GoldenMatch at:

MCP (Claude Desktop)

Add to claude_desktop_config.json:

Agent Capabilities (40 Skills)

Cross-language skill ids. The TypeScript and Python A2A servers share canonical skill ids for the core operations (deduplicate, match, explain, evaluate, analyze_data, the identity_* set, …), and every skill on both cards is A2A-spec-shaped (id + a human-readable name). For back-compat the TypeScript server also dispatches the legacy ids dedupe and explain_pair. The two catalogs otherwise differ by design — each server exposes skills the other does not — so A2A is documented for parity, not CI-gated (MCP tools + CLI are).

Core & pipeline

Analysis & operations

Identity Graph (v2.0)

Learning Memory

How It Works

When an agent calls deduplicate, GoldenMatch:
  1. Profiles the data (column types, cardinality, null rates)
  2. Detects the domain (healthcare, financial, retail, people, etc.)
  3. Selects the best strategy:
    • Strong ID fields (email, SSN) -> exact matching
    • Fuzzy-matchable fields (name, address) -> fuzzy matching
    • Sensitive fields detected -> recommends PPRL
    • Large datasets (>500K) -> recommends Ray backend
  4. Generates a config (matchkeys, blocking, scoring)
  5. Runs the pipeline with confidence gating
  6. Returns results + reasoning

Reasoning Output

Every response includes the agent’s reasoning:

Confidence-Gated Review Queue

Not all matches are equal. The agent splits results by confidence:

Storage Tiers

The agent auto-detects which tier is available and reports it in every response.

Review Queue API

Python API

MCP Tools (18 Agent-Level)

These are additive — existing MCP tools (suggest_config, list_domains, etc.) continue to work. The full MCP surface is 69 tools spanning agent-level ER, data inspection, config suggestions, PPRL, Learning Memory, and Identity Graph — see MCP Server.

A2A Agent Card

Full card at: http://localhost:8200/.well-known/agent.json

Authentication

The server is fail-closed: binding to a non-loopback host (the default is 0.0.0.0) refuses to start unless GOLDENMATCH_AGENT_TOKEN is set. When the token is set, all task endpoints require it as a bearer token; GET /health and the agent card at /.well-known/agent.json stay public for healthchecks and discovery.
Binding to 127.0.0.1 runs token-free for local use.
The agent card advertises "streaming": false — task dispatch is synchronous. Poll GET /tasks/{task_id} for long-running skills.

See also