---
url: https://wulfkaal.com/answer-service/
canonical: https://wulfkaal.com/answer-service/
title: "Answer Service · Wulf Kaal"
site: wulfkaal.com
---

Agents asking what I have argued should not have to infer it. The Answer Service returns the claim, the exact passage it rests on, the sha256 of the source document, and the conditions under which the claim was made.

Two surfaces, deliberately separated. The **agentic claim graph** is a static projection of the corpus into agent capability structure. The **Answer Service** is the retrieval interface over it. The graph is published as content addressed JSON-LD. The service runs off site, read only, no authentication, no keys.

Read only by construction. The service creates no claims and affirms no claims. Retrieval is not authorship.

## Endpoints

| Home         | [kaal-answer-service.wulf577462.chatgpt.site](https://kaal-answer-service.wulf577462.chatgpt.site/)             |
| ------------ | --------------------------------------------------------------------------------------------------------------- |
| Answer API   | [/api/answer](https://kaal-answer-service.wulf577462.chatgpt.site/api/answer)                                   |
| MCP JSON-RPC | [/api/rpc](https://kaal-answer-service.wulf577462.chatgpt.site/api/rpc)                                         |
| A2A endpoint | [/a2a](https://kaal-answer-service.wulf577462.chatgpt.site/a2a)                                                 |
| Agent card   | [/.well-known/agent-card.json](https://kaal-answer-service.wulf577462.chatgpt.site/.well-known/agent-card.json) |
| ARD catalog  | [/.well-known/ai-catalog.json](https://kaal-answer-service.wulf577462.chatgpt.site/.well-known/ai-catalog.json) |
| Status       | [/api/status](https://kaal-answer-service.wulf577462.chatgpt.site/api/status)                                   |

Two MCP tools are exposed. `answer_question` takes a question and an optional limit between 1 and 20\. `graph_status` returns graph and service scope.

## Call it

curl -s -X POST https://kaal-answer-service.wulf577462.chatgpt.site/api/answer \
  -H 'content-type: application/json' \
  -d '{"question":"What has Wulf A. Kaal written about verified reputation?","limit":5}'

## What comes back

Every response carries a contract version, a coverage status, a retrieval summary, an authority block naming the graph and its source authorities, and an explicit limitations array. Each claim carries:

* `claim_id` and `canonical_url`, resolving into the published claim layer
* Attribution: author, ORCID, attribution status, and class
* The exact source passage, with `passage_sha256` and `source_sha256`
* Source title, full citation, source hash, paper graph identifier
* Scope conditions, the conditions the claim was argued under
* Topics, capabilities, confidence, and verification status

Scope conditions are not decoration. A claim about reputation voting inside a DAO of DAOs is not a claim about reputation systems generally, and the response says so.

## The graph behind it

Graph identifier `kaal:agentic-claim-graph:pilot-100:v1`, state `public_pilot`, built 31 July 2026.

| Claims projected        | 100                                                                                  |
| ----------------------- | ------------------------------------------------------------------------------------ |
| Canonical corpus claims | 5,288                                                                                |
| Nodes                   | 248: 100 Claim, 100 SourcePassage, 37 ScholarlyArticle, 10 AgentCapability, 1 Person |
| Edges                   | 800 typed edges across capability, source, support, and authorship relations         |
| Selection               | Deterministic agentic capability relevance v1, capped at ten claims per paper        |
| Attribution class       | source derived only                                                                  |

* [index.json](https://wulfkaal.github.io/agentic-claim-graph/v1/index.json), the entry point
* [graph.jsonld](https://wulfkaal.github.io/agentic-claim-graph/v1/graph.jsonld), the graph itself
* [manifest.json](https://wulfkaal.github.io/agentic-claim-graph/v1/manifest.json), digests and counts
* [vocabulary.json](https://wulfkaal.github.io/agentic-claim-graph/v1/vocabulary.json), the capability terms

## Capability vocabulary

Ten agent facing capability classes carry the projection. Claims attach to capabilities, not to marketing categories.

agentic-commerce-and-settlementcoordination-and-incentivesdecentralized-infrastructuregovernance-and-adjudicationlearning-and-feedbacklegal-and-institutional-governanceprovenance-and-knowledgereputation-and-identitysafety-and-accountabilitytrust-and-verification 

## Invariants

These hold for the service and the graph, and they are published as machine readable assertions in [index.json](https://wulfkaal.github.io/agentic-claim-graph/v1/index.json):

* Read only. The service creates no claims and affirms no claims.
* Only source derived claims directly attributable to Wulf A. Kaal are returned.
* A Colloquium validation pool may settle a _procedural_ claim about what a review concluded. That claim is authored by the Colloquium validation process, not by me.
* Any substantive derivative stays unpublished and unattributed until exact hash bound affirmation. The queue is currently empty by design.

Procedural claim contract: [procedural-claim-v1.schema.json](https://wulfkaal.github.io/agentic-claim-graph/v1/schema/procedural-claim-v1.schema.json). Current state: [procedural-claims.json](https://wulfkaal.github.io/agentic-claim-graph/v1/procedural-claims.json) and [derived-candidates.json](https://wulfkaal.github.io/agentic-claim-graph/v1/derived-candidates.json).

## Verify it yourself

The graph is content addressed. Recompute the digest and compare it against the manifest:

curl -s https://wulfkaal.github.io/agentic-claim-graph/v1/graph.jsonld | shasum -a 256

Expect `7914a0e4ce2df76d0d4314255720cbeaeb483bdabc7a28d3618f7bfbd140ac0b`, the value recorded in [manifest.json](https://wulfkaal.github.io/agentic-claim-graph/v1/manifest.json). Any claim returned by the service can be checked the same way, passage against source, using [verify.py](https://wulfkaal.github.io/verify.py).

## Limits

* This is a pilot of 100 claims, not the full 5,288 claim corpus. Absence from a response is not evidence of absence from the corpus.
* Exact passages are preserved from the canonical claim records. Per claim PDF matching was not recomputed by this pilot.
* Quotes carry exact text without page locators.
* The service is a retrieval surface. It reports what was argued and under what conditions. It does not adjudicate whether the argument is correct.

## Elsewhere

* [Agents](/agents/), what this domain offers a machine reader
* [LLM](/llm/), the flat index of every machine surface
* [Claim layer](https://wulfkaal.github.io/claims/index.html), all 5,288 claims
* [llms.txt](https://wulfkaal.github.io/llms.txt), the machine index
* [Colloquium](/colloquium/), the validation layer

Wulf A. Kaal · ORCID [0009-0008-7840-1847](https://orcid.org/0009-0008-7840-1847) · [SSRN](https://papers.ssrn.com/sol3/cf%5Fdev/AbsByAuth.cfm?per%5Fid=460345)
