autonomy fetch
Fetch an agent or agent service from a registry using its public ID, hash, or token ID.
The autonomy fetch
command allows you to download service files from either a local or remote registry.
Usage
autonomy fetch [OPTIONS] PUBLIC_ID_OR_HASH_OR_TOKEN_ID
Options
--remote
- To use a remote registry.
--local
- To use a local registry.
--alias
TEXT- Provide a local alias for the agent or service.
--agent
- Specify the package type as agent (default).
--service
- Specify the package type as service.
--help
- Show the help message and exit.
--use-celo
- Use the
Celo
chain profile to find the token with the given token ID. --use-base
- Use the
Base
chain profile to find the token with the given token ID. --use-optimistic
- Use the
Optimistic
chain profile to find the token with the given token ID. --use-arbitrum-one
- Use the
Arbitrum One
chain profile to find the token with the given token ID. --use-gnosis
- Use the
Gnosis
chain profile to find the token with the given token ID. --use-polygon
- Use the
Polygon
chain profile to find the token with the given token ID. --use-ethereum
- Use the
Ethereum
chain profile to find the token with the given token ID.
To use these chain profile, you will have to export an environment variable for RPC in <CHAIN_NAME>_CHAIN_RPC
format. For example if you want to use ethereum
, you will have to export ETHEREUM_CHAIN_RPC
.
--use-custom-chain
-
Use the custom-chain profile to find the token with the given token ID. This profile requires that you define some parameters and contract addresses as environment variables (see also the Autonolas Protocol documentation for more information):
CUSTOM_CHAIN_RPC
: RPC endpoint for the custom chain.CUSTOM_CHAIN_ID
: chain ID.CUSTOM_COMPONENT_REGISTRY_ADDRESS
: Custom Component Registry contract address.CUSTOM_AGENT_REGISTRY_ADDRESS
: Custom Agent Registry contract address.CUSTOM_REGISTRIES_MANAGER_ADDRESS
: Custom Registries Manager contract address.CUSTOM_SERVICE_MANAGER_ADDRESS
: Custom Service Manager contract address.CUSTOM_SERVICE_REGISTRY_ADDRESS
: Custom Service Registry contract address.CUSTOM_GNOSIS_SAFE_PROXY_FACTORY_ADDRESS
: Custom Gnosis Safe multisig contract address.CUSTOM_GNOSIS_SAFE_SAME_ADDRESS_MULTISIG_ADDRESS
: Custom Gnosis Safe Same Address Multisig address.CUSTOM_SERVICE_REGISTRY_TOKEN_UTILITY_ADDRESS
: Custom Service Registry Token Utility address.CUSTOM_MULTISEND_ADDRESS
: Custom Multisend address.
Note
For L2 chains you are only required to set
- CUSTOM_SERVICE_MANAGER_ADDRESS
,
- CUSTOM_SERVICE_REGISTRY_ADDRESS
,
- CUSTOM_GNOSIS_SAFE_PROXY_FACTORY_ADDRESS
,
- CUSTOM_GNOSIS_SAFE_SAME_ADDRESS_MULTISIG_ADDRESS
and
- CUSTOM_MULTISEND_ADDRESS
.
--use-local
- Use the local chain profile to find the token with the given token ID. This option requires that you have a local Hardhat node with the required contracts deployed.
Note
The chain profile flags are mutually exclusive.
Examples
Fetch the agent hello_world
from the local registry and assign the alias my_hello_world_agent
:
autonomy fetch --local --alias my_hello_world_agent valory/hello_world:0.1.0
Fetch the agent hello_world
from the default registry (initialized with autonomy init
):
autonomy fetch valory/hello_world:0.1.0
Fetch the agent service hello_world
from a local registry with an explicit path:
autonomy --registry-path=./packages fetch valory/hello_world:0.1.0 --service --local
Fetch the agent service hello_world
from a remote registry using IPFS hash:
autonomy fetch valory/hello_world:0.1.0:bafybeihl6j7ihkytk4t4ca2ffhctpzydwi6r4a354ubjasttuv2pw4oaci --service --remote
Fetch the agent service with the token ID 123
on Gnosis chain:
autonomy fetch 123 --use-gnosis
Viewing Remote Registry Files
Before fetching a service, you can inspect its contents in on IPFS through https://gateway.autonolas.tech/ipfs/<hash>/
Common Issues and Solutions
Service Not Found
- Verify the service ID is correct
- Check registry connection
- Ensure you're using the correct registry flag (--local or --remote)
Missing Dependencies
- Run
autonomy packages sync
to update local packages - Check service requirements in
service.yaml
Permission Issues
- Verify write permissions in packages directory
- Run with appropriate permissions