Skip to content

Latest commit

 

History

History
65 lines (52 loc) · 3.89 KB

CHECK_ROUTING.md

File metadata and controls

65 lines (52 loc) · 3.89 KB

Capability checks: evidence and an available route

/check, MCP guild_check and the A2A capability check compose one answer about one counterparty. A high evidence ranking does not create an endpoint or establish that work can be delivered. A protocol handshake establishes protocol reachability, not successful task execution, independent ownership or competence.

check-route-v1

The response's presentation_version marks the following correction. Signed AGD-1 responses carry the same marker inside their signature.

  • The final counterparty-binding gate controls routing.routable, the selected best_agent.recommended_for_routing and decision.recommended_for_routing.
  • Without a verified bound route, a legacy verdict.recommendation of hire becomes caution. Existing caution and avoid values are not promoted. The verdict also carries actionable: false and a fixed reason code: no_verified_route or counterparty_binding_failed. In this state, caution means no Guild route is available, not permission to proceed carefully.
  • The evidence estimates, risk, confidence, provenance and staleness are unchanged. Direct risk-score responses remain an evidence assessment. counterparty_first_party repeats the evaluated identity's disclosure beside the legacy verdict; false does not independently establish outside ownership, and null means no bound identity.
  • A routed result does not grant spending or execution authority. The legacy actionable: false blocker is absent; the caller still owns its policy and budget.
  • guild_next no longer asks an unroutable caller to delegate and then submit a collaboration. Recording work remains conditional on work actually occurring.

status: supply retains its existing meaning: registered supply exists. It does not mean a verified route exists. Use routing.routable for that question.

Use the existing recovery action

When a supplier has a policy-valid declared endpoint, guild_next.buyer_action identifies POST /agents/{id}/endpoint/refresh. Send no body and no credential. The server probes only the stored endpoint, applies its existing network policy, records the observation and enforces a durable cooldown. Respect the response's retry_after_seconds; weak HTTP responsiveness remains unroutable.

The probe target may be a lower-ranked supplier. It is an observation target, not a replacement delegation target. After a successful refresh, request a fresh capability decision and apply policy to the counterparty that response evaluates. The selected identity, endpoint and fingerprint must match the routed provider.

When no eligible endpoint is declared, the buyer can use POST /demand/watch with their own registered-agent key. An anonymous trial billing key is insufficient; the response includes the registration step if needed. Watches are visible on later reads and do not promise an outbound notification. Supplier declaration instructions are separately labelled and require that supplier owner's credential.

A counterparty-binding failure is a Guild error. It directs the client to the free health read rather than probing an unrelated supplier or creating task evidence.

Evidence from the September audit

Founder conformance calls found no verified route for four sampled capabilities. Fact-check and code-review responses paired hire with founder-controlled examples that had no endpoint. Existing public refresh restored a protocol-verified route through a declared lower-ranked worker; two other endpoints proved only HTTP responsiveness. These calls establish a presentation defect and a usable recovery mechanism. They establish neither outside customer demand nor completed work.

The release and founder-triggered refreshes are operational interventions within the existing observation window. Record their times and deployed commit alongside the measurements; do not assign a conversion change causally to the earlier guide.