ERC-8239: Agent Skill Registry

Hello all!

I’ve been hard at work distilling ASR into the best version possible while taking into account the feedback given here. Thank you all for your input! Some recent changes and additions:

  • I’ve updated the Skill Manifest schema to be more package manager-like that includes some additional fields and variable renames.
  • I’ve also created a new asrpm CLI tool for interacting with the protocol. You can get this tool with: brew install vorpalengineering/tap/asrpm or by building from source with Go. Some usage examples:
    • asrpm resolve <skill-id> will attempt to resolve the skill manifest file for the given skill id. This will not install the skill, but will print the resolved manifest for inspection.
    • asrpm install <skill-id> will first resolve the skill manifest, then parse for the appropriate target distribution and install it locally.
    • asrpm uninstall <skill-id> will uninstall the installed skill.
    • asrpm list will list all installed skills on your machine.
    • asrpm verify <skill-id> will first resolve the skill manifest, then verify both the skillURI checksum and target checksums match their content.
    • asrpm register --manifest <manifest> --uri <uri> --account <account> will register a new skill on the registry with the given manifest and uri. The onchain tx is signed by the account flag which should be a foundry keystore.
    • Note: this CLI tool is still a work in progress and may not support every agent workflow or format yet. Currently it supports Claude.
  • I’ve deployed the latest versions of all contracts in the reference implementation to Eth Sepolia and can be viewed here on Etherscan:
  • I’ve also registered the asrpm skill (Skill ID = 0) that is a bootstrap skill intended to solve the cold start problem. Once installed and invoked, the skill tells an agent about the ASR protocol, and well as the asrpm CLI and how to use it. Install this bootstrap skill with: asrpm install 0. Note this skill’s manifest and SKILL.md file are both base64 encoded and hosted onchain in the registry contract. Therefore, the entire skill content is permissionlessly acccessible onchain.