A collection of tooling to enable open source development of autonomy tools
Project description
Autonomy Dev
Tooling to speed up open-autonomy development.
For detailed instructions please see the Docs.
TLDR
# Install adev
pip install -U "autonomy-dev[all]"
# Make a new agent
adev create author/cool_agent
# Run the new agent
adev run dev author/cool_agent
Requirements
- Python >= 3.10,<3.12
- Poetry >= 1.8.3
- Docker Desktop
Features
- Scaffolding of new repositories, agent, protocols, contracts, connections, skills.
- Linting and formatting tools
- Dependency management tools
- Test suite scaffolding
Creating New Github Projects
We can make an autonomy repo
adev repo scaffold fun_new_hack
cd fun_new_hack
Creating a new Agent
Once we have a new project, we can build new agents from templates
There are a number of templates available and the --help flag will display the available options.
adev create author/cool_agent
By default, we provide a simple server with ping pong via websockets available at localhost:5555
# run the agent and verify the endpoint
adev run author/cool_agent
Creating an Agent Service
Running agents in production requires a service to manage the agent lifecycle. We can convert an agent to a service with the following command.
adev convert agent-to-service author/agent_name author/service_name
Scaffolding of Components
Contracts
We provide tools to scaffold smart contract components from existing deployed contracts. The scaffolding process includes:
- Complete open-aea contract component
- Contract class with auto-generated methods
- Events, Read and Write methods extracted from the contract ABI.
- Type hints and documentation
# Scaffold USDC contract from Base
adev scaffold contract author/usdc \
--address 0x833589fcd6edb6e08f4c7c32d4f71b54bda02913 \
--network base
Protocols
Protocols components can be fully scaffolded from a yaml file. The scaffolding process includes:
- Protocol class with auto-generated methods
- Linted and formatted code
- Type hints and documentation
- Test Suite
- Pydantic models for custom types.
adev scaffold protocol auto_dev/data/protocols/examples/balances.yaml
Dependency Management
For projects created with adev, updates to both:
- autonomy packages
- upstream python packages
are automated using as so;
adev deps verify
Release
checkout main
git pull
adev release
Test Coverage
<!-- Pytest Coverage Comment:Begin -->
Name Stmts Miss Cover Missing
--------------------------------------------------------------
auto_dev/__init__.py 0 0 100%
auto_dev/base.py 60 19 68% 66-88
auto_dev/check_dependencies.py 236 236 0% 28-452
auto_dev/cli.py 4 1 75% 9
auto_dev/cli_executor.py 68 36 47% 33-61, 79, 83, 87-89, 92-94, 99-105
auto_dev/constants.py 25 0 100%
auto_dev/enums.py 36 0 100%
auto_dev/exceptions.py 5 0 100%
auto_dev/fmt.py 59 43 27% 16-17, 21-22, 27-45, 50, 60-61, 66-80, 85-97, 102-112
auto_dev/lint.py 7 3 57% 13-27
auto_dev/local_fork.py 52 32 38% 32-33, 37-54, 58-95
auto_dev/test.py 16 13 19% 4, 16-39
auto_dev/utils.py 251 153 39% 76-77, 81, 94-101, 106-151, 167, 180-185, 204-228, 233, 240-242, 247, 252, 257-269, 276-281, 290-293, 298-318, 323-337, 342-348, 370-372, 381, 388-416
--------------------------------------------------------------
TOTAL 819 536 35%
<!-- Pytest Coverage Comment:End -->
Miscillaneous
There are a number of useful command tools available.
-
Dev Tooling: A). linting
adev lintB). formattingadev fmtC). dependency managementadev deps update -
Scaffolding: Tooling to auto generate repositories and components.
Documentation
Running Docs Locally
To run and preview the documentation locally:
# Install mkdocs and required dependencies
pip install mkdocs-material mkdocstrings[python] mkdocs-include-markdown-plugin mkdocs-mermaid2-plugin
# Serve the documentation (available at http://127.0.0.1:8000)
mkdocs serve
This will start a local server and automatically reload when you make changes to the documentation.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file autonomy_dev-0.2.161.tar.gz.
File metadata
- Download URL: autonomy_dev-0.2.161.tar.gz
- Upload date:
- Size: 308.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dbd4461d0ca99b418b5451112c1d02251c418514356aa8c578c82c52e0093774
|
|
| MD5 |
24e23b7e05b95c1beffdafb550c4fd8f
|
|
| BLAKE2b-256 |
22237a9e548eea932cc35d88244c448ed175489cee31e5fcd0bec22406d20cba
|
File details
Details for the file autonomy_dev-0.2.161-py3-none-any.whl.
File metadata
- Download URL: autonomy_dev-0.2.161-py3-none-any.whl
- Upload date:
- Size: 341.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5c4caa2310321d90520bd7540b29d32158f120f5f80631a1ce097aa233be4c1b
|
|
| MD5 |
1fcb43fdc76ce5bab2f52435b422e84f
|
|
| BLAKE2b-256 |
1ba93b24dd08ec7f3393170a60873926236a62141bb5c6052ca8309df4ef1350
|