Protocols & identity

AHCP 1.0

Protocol for use-depth after install: axiom, error codes, transport bindings, and conformance harness.

AHCP - Agent-Human Capability Parity (Protocol 1.0)

AHCP is AgentNet's open standard for adapting software so agents can reach the same capability depth as humans. The only required difference is the interface modality.

Axiom. Any software: whatever depth a human can reach, an agent can reach. Humans use keyboard and mouse (and other human input). Agents use commands.

AHCP is published so the ecosystem - not only AgentNet - can adapt drawing tools, editors, browsers, CLIs, and services. Platform ships the protocol and reference samples; vendors publish adaptation packages.

Core rules (1.0)

TopicRule
ScopeDeclare all human-reachable features of the named software object. Full badge requires no silent subset.
Software objectYou MAY define a narrow object (e.g. headless browser command surface) but MUST NOT over-claim a larger product (e.g. full desktop Chrome UI).
Command surfaceEach feature maps to one or more structured commands (JSON schema in/out). Transport MAY be CLI, HTTP, MCP, plugin, or native host tools.
UI-driveAllowed as transition. MUST set implementation=ui-drive. MUST NOT label as native. Parity tasks still apply.
Badgesfull · partial (list uncovered_features) · experimental. Unqualified "AHCP conformant" means full.
EvidenceParity Tasks: same outcome via human steps and agent command sequences.

Engineering package (end-state artifacts)

AHCP 1.0 ships as a turnkey engineering kit - not a slogan. Builders get schema, vendor handbook, surface scaffold, and host registration semantics.

ArtifactURLPurpose
Protocol bundle/ahcp/v1/protocol.jsonVersion, rules, document index
Surface JSON Schema/ahcp/v1/schema/ahcp.surface.schema.jsonValidate adaptation packages
Error catalog/ahcp/v1/errors.jsonStable ahcp.* codes + result envelope
Transport bindings/ahcp/v1/bindings/transports.jsonbuiltin / MCP / HTTP / CLI invoke shapes + examples
Chrome sample surface/ahcp/v1/samples/browser.surface.jsonFull-product reference package
Conformance report/ahcp/v1/conformance/last-report.jsonLast harness result for the reference sample
Vendor handbook/ahcp/v1/vendor/handbook.mdZero-to-badge: scaffold, host register, AGPK co-ship
Surface scaffold/ahcp/v1/vendor/surface.scaffold.jsonStarter surface.json

Package install channel: AGPK (orthogonal to AHCP).

Full badge gates (must all pass)

  1. uncovered_features empty
  2. Every command runtime=shipped
  3. Every feature appears in ≥1 parity_task (coverage = 1.0)
  4. Host dispatch catalog contains every command id
  5. Package validates against the surface JSON Schema

Error codes (stable)

Commands SHOULD return the AHCP result envelope. Example failure:

Error envelope · json
{
  "command_id": "chrome.nav.open_url",
  "ok": false,
  "code": "ahcp.ssrf_blocked",
  "message": "SSRF guard: private network target",
  "retryable": false
}

Full code list: errors.json (ahcp.invalid_argument, ahcp.not_found, ahcp.unavailable, ahcp.timeout, ahcp.permission_denied, ahcp.approval_required, ahcp.navigation_failed, ahcp.dom_failed, ...).

Transport bindings

Same command shape; interchangeable transports:

  • builtin - host tool call { "tool_name": "chrome.tab.list", "args": {} }
  • MCP - tools/call with AGIN in _meta.agentnet
  • HTTP - POST /ahcp/v1/commands/{command_id} with AGIN headers
  • CLI - ahcp call <id> --args '{}'
MCP example · json
# MCP tools/call (illustrative)
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "chrome.bookmark.add",
    "arguments": { "title": "Example", "url": "https://example.com" },
    "_meta": {
      "agentnet": {
        "agin_id": "agin_example_public_id",
        "agent_principal": "agent:ops",
        "call_id": "call_01EXAMPLE"
      }
    }
  }
}

Conformance harness

Reference validator (run in AgentOS X tree or CI):

Harness · bash
python3 docs/design/ahcp/conformance/validate_surface.py \
  --surface docs/design/ahcp/samples/browser/ahcp.surface.json \
  --schema docs/design/ahcp/schema/ahcp.surface.schema.json \
  --host-catalog docs/design/ahcp/conformance/host_catalog.chrome.json \
  --require-full-parity-coverage \
  --write-report docs/design/ahcp/conformance/last-report.json

Latest public report for the Chrome sample: last-report.json (expects ok: true, parity_feature_coverage: 1.0, dispatch_aligned: true).

Adaptation package (ahcp.surface)

Required fields: ahcp_version, badge, software, vendor, features, uncovered_features, commands, parity_tasks, conformance.

Each feature: human path + command ids + side effects + sensitivity. Each command: implementation, transport, runtime, input/output JSON Schema, errors. Validate with the public schema above - no informal packages.

Reference sample: desktop Chromium / Chrome (full product)

First public sample targets the real desktop browser humans use - not a redefined headless toy object.

FieldValue
Softwareorg.chromium.Chromium · Chromium / Google Chrome desktop
Badgefull
Feature inventory78 human-reachable features (nav, tabs/windows, bookmarks, history, downloads, extensions, settings, passwords/autofill, privacy, DevTools, PDF, media, cast, ...)
CommandsAll features map to shipped chrome.* tools (CDP + profile store)
Uncovered0

Full product sample: every declared Chrome feature has a command. Page ops use CDP; bookmarks/history/downloads/extensions/settings/passwords use the AgentOS Chrome profile store under $AGENTX_HOME/chrome/ so agents reach the same outcomes humans get from the browser chrome UI.

Core human ↔ command map (examples)

Human (key/mouse)AHCP commandHost alias today
Omnibox open URLchrome.nav.open_urlbrowser.navigate
Scan pagechrome.page.read_structurebrowser.snapshot
Copy textchrome.page.extract_textbrowser.extract_text
Clickchrome.page.clickbrowser.click
Typechrome.page.typebrowser.type
DevTools consolechrome.page.evaluate_jsbrowser.evaluate
Screenshotchrome.page.screenshotbrowser.screenshot
Close tab(s)chrome.tab.closebrowser.close

Navigate uses public-URL SSRF guard. Passwords/extensions install/clear-data require approval in guarded mode. Download via chrome.download.start. Surface JSON: browser.surface.json.

Worked examples

1) Open page and read (Chrome sample)

Tool sequence · json
# Host builtin tool_calls (illustrative)
[
  { "tool_name": "chrome.nav.open_url", "args": { "url": "https://example.com" } },
  { "tool_name": "chrome.page.read_structure", "args": {} },
  { "tool_name": "chrome.bookmark.add", "args": { "title": "Example", "url": "https://example.com" } }
]

2) Package field excerpt

Feature · json
{
  "feature_id": "nav.open_url",
  "title": "Open URL",
  "human_path": "Address bar → type URL → Enter",
  "commands": ["chrome.nav.open_url"],
  "side_effects": ["network"],
  "sensitivity": "operator"
}

Machine-readable downloads

protocol.json · surface schema · errors · transports · browser sample · conformance report

cURL · bash
curl -sS https://docs.aiagentnet.cloud/ahcp/v1/protocol.json | jq '{name, version, full_badge_rules, documents}'
curl -sS https://docs.aiagentnet.cloud/ahcp/v1/samples/browser.surface.json | jq '{ahcp_version, badge, features: (.features|length), parity_tasks: (.parity_tasks|length), conformance}'
curl -sS https://docs.aiagentnet.cloud/ahcp/v1/conformance/last-report.json | jq '{ok, parity_feature_coverage, dispatch_aligned, errors}'

Public docs omit key derivation, HMAC secrets, and control-plane topology. Wire contracts above are sufficient to implement and validate packages.