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)
| Topic | Rule |
|---|---|
| Scope | Declare all human-reachable features of the named software object. Full badge requires no silent subset. |
| Software object | You 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 surface | Each feature maps to one or more structured commands (JSON schema in/out). Transport MAY be CLI, HTTP, MCP, plugin, or native host tools. |
| UI-drive | Allowed as transition. MUST set implementation=ui-drive. MUST NOT label as native. Parity tasks still apply. |
| Badges | full · partial (list uncovered_features) · experimental. Unqualified "AHCP conformant" means full. |
| Evidence | Parity 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.
| Artifact | URL | Purpose |
|---|---|---|
| Protocol bundle | /ahcp/v1/protocol.json | Version, rules, document index |
| Surface JSON Schema | /ahcp/v1/schema/ahcp.surface.schema.json | Validate adaptation packages |
| Error catalog | /ahcp/v1/errors.json | Stable ahcp.* codes + result envelope |
| Transport bindings | /ahcp/v1/bindings/transports.json | builtin / MCP / HTTP / CLI invoke shapes + examples |
| Chrome sample surface | /ahcp/v1/samples/browser.surface.json | Full-product reference package |
| Conformance report | /ahcp/v1/conformance/last-report.json | Last harness result for the reference sample |
| Vendor handbook | /ahcp/v1/vendor/handbook.md | Zero-to-badge: scaffold, host register, AGPK co-ship |
| Surface scaffold | /ahcp/v1/vendor/surface.scaffold.json | Starter surface.json |
Package install channel: AGPK (orthogonal to AHCP).
Full badge gates (must all pass)
uncovered_featuresempty- Every command
runtime=shipped - Every feature appears in ≥1
parity_task(coverage = 1.0) - Host dispatch catalog contains every command id
- Package validates against the surface JSON Schema
Error codes (stable)
Commands SHOULD return the AHCP result envelope. Example failure:
{
"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/callwith AGIN in_meta.agentnet - HTTP -
POST /ahcp/v1/commands/{command_id}with AGIN headers - CLI -
ahcp call <id> --args '{}'
# 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):
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.
| Field | Value |
|---|---|
| Software | org.chromium.Chromium · Chromium / Google Chrome desktop |
| Badge | full |
| Feature inventory | 78 human-reachable features (nav, tabs/windows, bookmarks, history, downloads, extensions, settings, passwords/autofill, privacy, DevTools, PDF, media, cast, ...) |
| Commands | All features map to shipped chrome.* tools (CDP + profile store) |
| Uncovered | 0 |
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 command | Host alias today |
|---|---|---|
| Omnibox open URL | chrome.nav.open_url | browser.navigate |
| Scan page | chrome.page.read_structure | browser.snapshot |
| Copy text | chrome.page.extract_text | browser.extract_text |
| Click | chrome.page.click | browser.click |
| Type | chrome.page.type | browser.type |
| DevTools console | chrome.page.evaluate_js | browser.evaluate |
| Screenshot | chrome.page.screenshot | browser.screenshot |
| Close tab(s) | chrome.tab.close | browser.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)
# 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_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 -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.