Resolution service for AgentNet that provides deterministic retrieval of registered node and capsule data.
Status: Alpha / Reference Implementation Docs: https://www.agent-net.ai Org: https://github.com/agentnet-ai
ant-resolver is the resolver component of the AgentNet reference architecture.
It is responsible for deterministic resolution and retrieval of registered node and capsule records from configured storage and cache layers.
In a local development environment, it typically runs alongside ant-registrar for identity coordination, with ant-capsulizer as an upstream data source, and ant-orchestrator as a downstream consumer.
Within the canonical AgentNet flow:
- Capsulizer
- Registrar
- Resolver
- Orchestrator
This repository provides the resolver role.
npm installRun commands:
npm run devnpm startnpm run reset:devnpm run db:verifynpm run bootstrap:demonpm run demo:refresh
Optional utilities:
npm run db:migratenpm run db:schema-checknpm run init:schemanpm run seed:testdatanpm run search:backfillnpm run encapsulate:agentnetnpm run trust:issue:demonpm run trust:revalidate
Use .env.example:
cp .env.example .env- Resolve endpoints require
owner_id(orownerId) for request-time owner scoping owner_slug/ownerSlugis optional alias metadata only and is not accepted as sole scope for resolve endpoints- Canonical internal key:
owner_id owner_slugis treated as alias-only
Resolver owner normalization is complete for active request-time owner scoping paths (nodes and capsules).
owner_slug now serves alias compatibility only for resolve endpoint metadata; scoping is owner-id-only.
Current slug-related indexes:
idx_nodes_owner_slug_id- legacy slug lookup/index support (non-primary path)idx_nodes_owner_domain- legacy slug/domain supportidx_nodes_registrar_owner_slug- identity cache alias backfill/inspection supportuq_owners_owner_slug- active alias integrity constraint (unique human-readable alias; not identity key)
Safe to evaluate for later drop (not in this step):
idx_nodes_owner_slug_ididx_nodes_owner_domainidx_nodes_registrar_owner_slug
Public keys may be committed. Private keys must never be committed.
Generate local RSA keys:
openssl genpkey -algorithm RSA -out keys/resolver_private.pem -pkeyopt rsa_keygen_bits:2048
openssl pkey -in keys/resolver_private.pem -pubout -out keys/resolver_public.pemSigning key load priority:
RESOLVER_PRIVATE_KEY_PEMRESOLVER_PRIVATE_KEY_PATH- local dev fallback
keys/resolver_private.pem
Verification key load priority:
RESOLVER_PUBLIC_KEY_PEMRESOLVER_PUBLIC_KEY_PATH- local dev fallback
keys/resolver_public.pem
Example env usage:
export RESOLVER_PRIVATE_KEY_PATH=keys/resolver_private.pem
export RESOLVER_PUBLIC_KEY_PATH=keys/resolver_public.pemOr inline PEM content:
export RESOLVER_PRIVATE_KEY_PEM="$(cat keys/resolver_private.pem)"
export RESOLVER_PUBLIC_KEY_PEM="$(cat keys/resolver_public.pem)"Status: Alpha / Reference Implementation
These components are intended to demonstrate ANS-aligned architecture patterns.
Other core AgentNet reference components:
- https://github.com/agentnet-ai/AgentNet
- https://github.com/agentnet-ai/ant-capsulizer
- https://github.com/agentnet-ai/ant-registrar
- https://github.com/agentnet-ai/ant-resolver
- https://github.com/agentnet-ai/ant-orchestrator
These repositories are reference implementations of the AgentNet architecture aligned to ANS Core v2.0. Issues for bug reports and spec questions are welcome. We do not accept unsolicited pull requests. If you would like to contribute code, please open an issue first to discuss scope, or coordinate via a partner fork.
Apache License 2.0. See LICENSE for details.