Agent Development Kit (ADK) — a CLI for managing Agent Studio projects locally
Project description
Agent Development Kit (ADK)
A CLI and Python package for managing Agent Studio projects locally. It provides a Git-like workflow for synchronizing project configurations between your local filesystem and the Agent Studio platform.
Prerequisites
You must have access to a workspace in PolyAI Agent Studio before using this tool. Access and an API key are provided by your PolyAI contact. To request access to the PolyAI platform, reach out to developers@poly-ai.com.
Installation
pip install polyai-adk
Once installed, use the poly command to manage your projects:
poly init # Initialize a project (interactive)
poly pull # Pull latest configuration
poly push # Push local changes
poly status # View project status
poly diff # View local changes
poly branch # Manage branches
poly format # Format resources
poly validate # Validate configuration
poly review # Create a review gist
Usage
A whitelisted API key is needed to run any of the poly commands.
- Create an API key at https://studio.[us/uk/eu].poly.ai//data-access
- Contact an engineer from the developer platform team team to whitelist your API key on Kong
- Add the key to your env variable (typically ~/.zshrc or ~/.bashrc), and name it POLY_ADK_KEY
Once you do that, you'll be able to access agents under the for the namespace in which the API key is generated.
We are in the process of automating the whitelisting of the API key, and limiting the external ADK to just the production namespace.
Usage
Run poly --help to see all available commands and options. Each command also supports --help for detailed syntax (e.g. poly push --help).
poly init
Initialize a new Agent Studio project locally. Runs interactively by default, prompting for region, account, and project. You can also pass these directly:
poly init
poly init --region us-1 --account_id 123 --project_id my_project
poly init --base-path /path/to/projects
poly init --format # format resources after init
poly pull
Pull the latest project configuration from Agent Studio:
poly pull
poly pull --force # overwrite all local changes
poly pull --format # format resources after pulling
poly push
Push local changes to Agent Studio:
poly push
poly push --dry-run # preview what would be pushed
poly push --skip-validation # skip local validation before pushing
poly push --force # overwrite remote changes
poly push --format # format resources before pushing
poly status
View changed, new, and deleted files in your project:
poly status
poly diff
Show diffs between your local project and the remote version:
poly diff # all changes
poly diff file1.yaml # specific files
poly revert
Revert local changes:
poly revert --all # revert everything
poly revert file1.yaml file2.yaml # revert specific files
poly branch
Manage branches (default branch is main):
poly branch list
poly branch current
poly branch create my-feature
poly branch switch my-feature
poly branch switch my-feature --force # discard uncommitted changes
poly format
Format project resources (Python via ruff, YAML/JSON via in-process formatting). Use --check to only report files that would change; use --ty to also run type checking.
poly format # all resources
poly format file1.py # specific files
poly format --check # check only, no writes
poly validate
Validate project configuration locally:
poly validate
poly review
Create a GitHub gist for reviewing changes, similar to a pull request:
poly review # local vs remote
poly review --before main --after feature-branch # compare branches
poly review --delete # delete all review gists
poly chat
Start an interactive chat session with your agent:
poly chat
poly chat --environment live
poly chat --channel webchat
poly chat --metadata # show functions, flows, and state each turn
Development Setup
Prerequisites
- Python 3.14 or higher
- uv (
brew install uv)
Getting Started
git clone https://github.com/PolyAI-LDN/local_agent_studio.git
cd local_agent_studio
uv venv
source .venv/bin/activate
uv pip install -e ".[dev]"
pre-commit install
Running Tests
pytest
Test files are located in src/poly/tests/.
Project Structure
src/poly/cli.py- CLI interfacesrc/poly/project.py- Core project managementsrc/poly/resources/- Resource type implementationssrc/poly/handlers/- API handler implementationssrc/poly/tests/- Test suitesrc/poly/types/- Python type definitions for the Agent Studio runtime
Bugs & Feature Requests
Please report bugs or request features via the GitHub Issues page.
Contributing
Contributions are welcome! The project uses ruff for linting/formatting (enforced via pre-commit hooks) and pytest for testing. Please ensure all tests pass before submitting a pull request.
We recommend using Claude Code for development. The repo includes a .claude/ directory with project-specific instructions and permissions pre-configured.
Releases
This project uses python-semantic-release to automate versioning and publishing. Version bumps are determined from conventional commit messages:
| Commit prefix | Version bump | Example |
|---|---|---|
fix: |
Patch (2.0.4 → 2.0.5) | fix: handle missing config file |
feat: |
Minor (2.0.4 → 2.1.0) | feat: add poly export command |
feat!: / BREAKING CHANGE: |
Major (2.0.4 → 3.0.0) | feat!: redesign resource schema |
chore:, docs:, ci: |
No release | docs: update README |
When a commit is merged to main, the release workflow automatically:
- Determines the next version from commit history
- Updates the version in
pyproject.toml - Creates a git tag and GitHub Release
License
This project is licensed under the Apache License 2.0. See the LICENSE file for details.
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 polyai_adk-0.1.0.tar.gz.
File metadata
- Download URL: polyai_adk-0.1.0.tar.gz
- Upload date:
- Size: 202.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2c2f10f9a333fdfaf663b128c4c96bee08829e85a70f7390d4b9b4ea8488774f
|
|
| MD5 |
45ed5123fd4b84db72d325f4fcac8809
|
|
| BLAKE2b-256 |
89e9d79525cb84ee659981ad4f613aeb1258f10c7e30529b23252e5fdecdac48
|
Provenance
The following attestation bundles were made for polyai_adk-0.1.0.tar.gz:
Publisher:
release.yaml on polyai/adk
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
polyai_adk-0.1.0.tar.gz -
Subject digest:
2c2f10f9a333fdfaf663b128c4c96bee08829e85a70f7390d4b9b4ea8488774f - Sigstore transparency entry: 1096905285
- Sigstore integration time:
-
Permalink:
polyai/adk@3ff8e64547c3b99fb1d1ac444332948a3d67ba26 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/polyai
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yaml@3ff8e64547c3b99fb1d1ac444332948a3d67ba26 -
Trigger Event:
push
-
Statement type:
File details
Details for the file polyai_adk-0.1.0-py3-none-any.whl.
File metadata
- Download URL: polyai_adk-0.1.0-py3-none-any.whl
- Upload date:
- Size: 262.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
16dd24b99ccba029b48039dae436ff0ee6a933f58fe18913d0631e7cee68dc0d
|
|
| MD5 |
9e67e6a9f7bc134c76b457859d90e0d3
|
|
| BLAKE2b-256 |
4a6cadc563cc27141df226aaf2ce18ab80d1a23b65c0789e7f20d544cdc10360
|
Provenance
The following attestation bundles were made for polyai_adk-0.1.0-py3-none-any.whl:
Publisher:
release.yaml on polyai/adk
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
polyai_adk-0.1.0-py3-none-any.whl -
Subject digest:
16dd24b99ccba029b48039dae436ff0ee6a933f58fe18913d0631e7cee68dc0d - Sigstore transparency entry: 1096905289
- Sigstore integration time:
-
Permalink:
polyai/adk@3ff8e64547c3b99fb1d1ac444332948a3d67ba26 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/polyai
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yaml@3ff8e64547c3b99fb1d1ac444332948a3d67ba26 -
Trigger Event:
push
-
Statement type: