Skip to main content
Like AOF? Give us a star!
If you find AOF useful, please star us on GitHub. It helps us reach more developers and grow the community.

Built-in Tools Reference

AOF includes a comprehensive set of built-in tools for DevOps workflows. All built-in tools are implemented in Rust and execute locally.

CLI Tools (Unified)

These tools accept a single command argument, allowing the LLM to construct any subcommand. This is the recommended approach for maximum flexibility.

kubectl

Execute any Kubernetes command.

PropertyValue
Namekubectl
Binarykubectl
Timeout120 seconds

Parameters:

{
"command": "string (required) - Full kubectl command arguments"
}

Example Usage:

tools:
- kubectl

Agent will call:

{
"name": "kubectl",
"input": {
"command": "get pods -n production -o wide"
}
}

git

Execute any Git command.

PropertyValue
Namegit
Binarygit
Timeout120 seconds

Parameters:

{
"command": "string (required) - Full git command arguments"
}

Example:

{
"name": "git",
"input": {
"command": "log --oneline -10"
}
}

docker

Execute any Docker command.

PropertyValue
Namedocker
Binarydocker
Timeout300 seconds

Parameters:

{
"command": "string (required) - Full docker command arguments"
}

terraform

Execute any Terraform command.

PropertyValue
Nameterraform
Binaryterraform
Timeout600 seconds

Parameters:

{
"command": "string (required) - Full terraform command arguments"
}

aws

Execute any AWS CLI command.

PropertyValue
Nameaws
Binaryaws
Timeout120 seconds

Parameters:

{
"command": "string (required) - Full AWS CLI command arguments"
}

helm

Execute any Helm command.

PropertyValue
Namehelm
Binaryhelm
Timeout300 seconds

Parameters:

{
"command": "string (required) - Full helm command arguments"
}

File System Tools

Native Rust implementations for file operations. No external binaries required.

read_file

Read contents of a file.

Parameters:

{
"path": "string (required) - Path to the file to read"
}

Returns:

{
"content": "string - File contents",
"size": "number - File size in bytes"
}

write_file

Write content to a file.

Parameters:

{
"path": "string (required) - Path to the file",
"content": "string (required) - Content to write"
}

list_directory

List contents of a directory.

Parameters:

{
"path": "string (required) - Directory path",
"recursive": "boolean (optional) - List recursively, default false"
}

Returns:

{
"entries": [
{
"name": "string",
"type": "file | directory",
"size": "number"
}
]
}

search_files

Search for files matching a pattern.

Parameters:

{
"path": "string (required) - Starting directory",
"pattern": "string (required) - Glob pattern (e.g., '*.yaml')",
"recursive": "boolean (optional) - Search recursively, default true"
}

Execution Tools

shell

Execute shell commands.

PropertyValue
Nameshell
Timeout120 seconds

Parameters:

{
"command": "string (required) - Shell command to execute"
}

Returns:

{
"stdout": "string",
"stderr": "string",
"exit_code": "number"
}

http_request

Make HTTP requests.

PropertyValue
Namehttp_request
Timeout60 seconds

Parameters:

{
"url": "string (required) - Request URL",
"method": "string (optional) - HTTP method, default GET",
"headers": "object (optional) - Request headers",
"body": "string (optional) - Request body"
}

Returns:

{
"status": "number",
"headers": "object",
"body": "string"
}

Observability Tools

Native HTTP clients for querying observability systems.

prometheus_query

Query Prometheus metrics using PromQL.

PropertyValue
Nameprometheus_query
Timeout60 seconds

Parameters:

{
"endpoint": "string (required) - Prometheus server URL",
"query": "string (required) - PromQL query",
"time": "string (optional) - Evaluation timestamp",
"timeout": "string (optional) - Query timeout"
}

Example:

{
"endpoint": "http://prometheus:9090",
"query": "rate(http_requests_total[5m])"
}

loki_query

Query Loki logs using LogQL.

PropertyValue
Nameloki_query
Timeout60 seconds

Parameters:

{
"endpoint": "string (required) - Loki server URL",
"query": "string (required) - LogQL query",
"start": "string (optional) - Start timestamp",
"end": "string (optional) - End timestamp",
"limit": "number (optional) - Maximum entries"
}

Example:

{
"endpoint": "http://loki:3100",
"query": "{namespace=\"production\"} |= \"error\""
}

elasticsearch_query

Query Elasticsearch/OpenSearch.

PropertyValue
Nameelasticsearch_query
Timeout60 seconds

Parameters:

{
"endpoint": "string (required) - Elasticsearch URL",
"index": "string (required) - Index pattern",
"query": "object (required) - Elasticsearch query DSL"
}

victoriametrics_query

Query VictoriaMetrics using MetricsQL.

PropertyValue
Namevictoriametrics_query
Timeout60 seconds

Parameters:

{
"endpoint": "string (required) - VictoriaMetrics URL",
"query": "string (required) - MetricsQL query"
}

Legacy Per-Operation Tools

These tools provide structured parameters for specific operations. They exist for backward compatibility but the unified CLI tools are recommended.

Kubernetes (kubectl_*)

ToolOperationKey Parameters
kubectl_getGet resourcesresource, name, namespace, output
kubectl_applyApply manifestmanifest, filename, namespace
kubectl_deleteDelete resourcesresource, name, namespace
kubectl_logsGet pod logspod, namespace, container, tail
kubectl_execExecute in podpod, namespace, container, command
kubectl_describeDescribe resourceresource, name, namespace

Docker (docker_*)

ToolOperationKey Parameters
docker_psList containersall, filter
docker_buildBuild imagecontext, tag, dockerfile
docker_runRun containerimage, name, ports, volumes
docker_logsGet logscontainer, tail, follow
docker_execExecute commandcontainer, command
docker_imagesList imagesfilter

Git (git_*)

ToolOperationKey Parameters
git_statusShow status-
git_diffShow diffpath, staged
git_logShow historycount, oneline
git_commitCreate commitmessage, all
git_branchManage branchesname, delete
git_checkoutSwitch branchesbranch, create
git_pullPull changesremote, branch
git_pushPush changesremote, branch

Terraform (terraform_*)

ToolOperationKey Parameters
terraform_initInitializebackend_config
terraform_planCreate planout, var
terraform_applyApply changesauto_approve, var
terraform_destroyDestroy resourcesauto_approve
terraform_outputGet outputsname, json

Feature Flags

Tools are organized by feature flags in the aof-tools crate:

FeatureTools Included
fileread_file, write_file, list_directory, search_files
shellshell
kubectlkubectl_* legacy tools
dockerdocker_* legacy tools
gitgit_* legacy tools
terraformterraform_* legacy tools
httphttp_request
observabilityprometheus_query, loki_query, elasticsearch_query, victoriametrics_query, newrelic_*
siemsplunk_* (Splunk SPL queries, alerts, HEC)
itsmservicenow_* (ServiceNow incidents, CMDB, changes)
allAll tools

The unified CLI tools (kubectl, git, docker, terraform, aws, helm) are always available.


Platform-Specific Tools

For detailed documentation on platform-specific integrations:


See Also