Skip to main content

A collection of tooling to enable open source development of autonomy tools

Project description

Autonomy Dev

Code Quality Documentation Project Status: Active – The project has reached a stable, usable state and is being actively developed.

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

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

asciicast

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

asciicast

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

asciicast

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

asciicast

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

asciicast

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 lint B). formatting adev fmt C). dependency management adev 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

autonomy_dev-0.2.160.tar.gz (308.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

autonomy_dev-0.2.160-py3-none-any.whl (341.1 kB view details)

Uploaded Python 3

File details

Details for the file autonomy_dev-0.2.160.tar.gz.

File metadata

  • Download URL: autonomy_dev-0.2.160.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

Hashes for autonomy_dev-0.2.160.tar.gz
Algorithm Hash digest
SHA256 90e7b797fea4d3109fe38ffae9dde71d34028f488385d4c8da8f68a85386bf9a
MD5 d6a3d3d0f6657e858e71d9888565ad43
BLAKE2b-256 faa74354b2f284f88079006e74efd35ca21b250f3e3d8de32bef551cabdf168d

See more details on using hashes here.

File details

Details for the file autonomy_dev-0.2.160-py3-none-any.whl.

File metadata

  • Download URL: autonomy_dev-0.2.160-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

Hashes for autonomy_dev-0.2.160-py3-none-any.whl
Algorithm Hash digest
SHA256 10ab1ce8d7138bdb55fe7fe630681fb0d0c549be5e3bdcbab5aead136daf080d
MD5 1342f197fadea25b817e1faa23639bdb
BLAKE2b-256 075433190022910586e377bbc7895773e91888b099d55416bc6049b8020705d0

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page