A MaxCompute CLI (maxc) é uma ferramenta de linha de comando invocada pela Alibaba Cloud CLI como aliyun maxc. Todos os comandos geram saída estruturada em JSON para automação de scripts e integração com AI Agent.
Instalação e verificação
O maxc é distribuído pela Alibaba Cloud CLI. Para usar o maxc, você deve instalar ou atualizar a Alibaba Cloud CLI.
-
Sistemas operacionais compatíveis
Sistema operacional
Versões compatíveis
Arquiteturas compatíveis
Linux
CentOS 8+, RHEL 8+, Ubuntu 16.04+, Debian 9+ e outras distribuições principais. O CentOS 7 atingiu o fim do suporte (EOL) e não é recomendado.
x86_64 (64 bits), ARM64
macOS
macOS 11 (Big Sur) ou posterior
Intel e Apple silicon (binário universal)
Windows
Windows 10 e posteriores (64 bits)
Apenas x86_64. Não há suporte para 32 bits e ARM64.
-
Selecione a aba correspondente ao seu sistema operacional e siga as etapas de instalação. Há vários métodos disponíveis — escolha um.
Linux
Install using a bash script (Recommended)
As seguintes opções são compatíveis:
-
Instalar a versão mais recente
Se nenhuma versão for especificada, o script instalará automaticamente a versão mais recente.
/bin/bash -c "$(curl -fsSL https://aliyuncli.alicdn.com/install.sh)" -
Instalar uma versão anterior
Use a opção
-Vpara especificar a versão a instalar. Para visualizar versões anteriores disponíveis, acesse a página de GitHub Releases./bin/bash -c "$(curl -fsSL https://aliyuncli.alicdn.com/install.sh)" -- -V 3.3.18
Install from a TGZ package (.tar.gz)
-
Baixe o pacote de instalação.
-
Baixar a versão mais recente:
NotaExecute
uname -mpara verificar a arquitetura do seu sistema Linux. Se a saída do terminal forarm64ouaarch64, seu sistema possui arquitetura ARM64. Outras saídas indicam arquitetura AMD64.-
Para sistemas AMD64:
curl https://aliyuncli.alicdn.com/aliyun-cli-linux-latest-amd64.tgz -o aliyun-cli-linux-latest.tgz -
Para sistemas ARM64:
curl https://aliyuncli.alicdn.com/aliyun-cli-linux-latest-arm64.tgz -o aliyun-cli-linux-latest.tgz
-
-
Baixar uma versão anterior: Acesse a página de GitHub Releases para baixar pacotes de instalação de versões anteriores.
O formato do nome de arquivo para pacotes de instalação Linux é
aliyun-cli-linux-<version>-<architecture>.tgz. Substitua<version>pelo número da versão desejada, como 3.3.18, e<architecture>poramd64ouarm64.
-
-
Descompacte o pacote de instalação para obter o arquivo executável
aliyun.tar xzvf aliyun-cli-linux-latest.tgz -
Mova o arquivo executável para o diretório
/usr/local/bin. Isso permite executar o comandoaliyunde qualquer caminho.sudo mv ./aliyun /usr/local/bin/
macOS
Install using Homebrew (Recommended)
NotaAntes de continuar, certifique-se de ter instalado e configurado o Homebrew.
Instale a versão mais recente da Alibaba Cloud CLI:
brew install aliyun-cliInstall using the graphical interface (PKG)
Clique duas vezes no pacote para instalar — nenhuma ferramenta de linha de comando é necessária.
-
Baixe o pacote de instalação.
Baixar a versão mais recente: Abra o link de download https://aliyuncli.alicdn.com/aliyun-cli-latest.pkg no navegador para baixar o pacote de instalação mais recente.
-
Baixar uma versão anterior: Acesse a página de GitHub Releases para visualizar e baixar pacotes de instalação de versões anteriores.
O formato do nome de arquivo para pacotes de instalação PKG do macOS (Pacote de Instalação do macOS, .pkg) é
aliyun-cli-<version>.pkg.
Clique duas vezes no pacote de instalação baixado e siga as instruções para concluir a instalação.
Install using a bash script
Os comandos de instalação são os mesmos do Linux. Para mais informações sobre as descrições dos parâmetros, consulte a seção "Install using a bash script" para Linux.
-
Instalar a versão mais recente
/bin/bash -c "$(curl -fsSL https://aliyuncli.alicdn.com/install.sh)" -
Instalando versões anteriores
/bin/bash -c "$(curl -fsSL https://aliyuncli.alicdn.com/install.sh)" -- -V 3.3.5
Install from a TGZ package (.tar.gz)
-
Baixe o pacote de instalação.
-
Baixar a versão mais recente:
curl https://aliyuncli.alicdn.com/aliyun-cli-macosx-latest-universal.tgz -o aliyun-cli-macosx-latest-universal.tgz -
Baixar uma versão anterior: Acesse a página de GitHub Releases para baixar pacotes de instalação de versões anteriores.
O formato do nome de arquivo para pacotes de instalação do macOS é
aliyun-cli-macosx-<version>-universal.tgz.
-
-
Descompacte o pacote de instalação para obter o arquivo executável
aliyun.tar xzvf aliyun-cli-macosx-latest-universal.tgz -
Mova o arquivo executável para o diretório
/usr/local/bin. Isso permite executar o comandoaliyunde qualquer caminho.sudo mv ./aliyun /usr/local/bin/
Windows
ImportanteA Alibaba Cloud CLI está disponível apenas para sistemas Windows AMD64. Não há suporte para arquiteturas de 32 bits ou ARM64.
Install using the graphical user interface (GUI)
Baixar e descompactar o pacote de instalação
-
Baixe o pacote de instalação.
Baixar a versão mais recente: Abra o link de download https://aliyuncli.alicdn.com/aliyun-cli-windows-latest-amd64.zip no navegador para baixar o pacote de instalação mais recente.
-
Baixar uma versão anterior: Acesse a página de GitHub Releases para baixar pacotes de instalação de versões anteriores.
O formato do nome de arquivo para pacotes de instalação Windows é
aliyun-cli-windows-<version>-amd64.zip.
-
Extraia o
aliyun.exedo pacote de instalação para um diretório comoC:\AliyunCLI.NotaEste arquivo deve ser executado em um terminal de linha de comando. Clicar duas vezes no arquivo não funciona.
Anote este caminho de instalação. Ele será necessário ao configurar a variável de ambiente PATH.
Configurar a variável de ambiente PATH
Pressione as teclas
Windows+Spara abrir a interface de pesquisa e insira a palavra-chave "environment variables".Nos resultados da pesquisa, clique em Edit the environment variables for your account para abrir as configurações de Environment Variables.
-
Na seção User variables, selecione a variável de ambiente com a chave
Pathe clique em Edit.
-
Na janela de edição, clique em New e insira o caminho do diretório de instalação da Alibaba Cloud CLI. Por exemplo,
C:\ExampleDir. Substitua este valor pelo caminho real do seu diretório de instalação.
Clique em OK em todas as caixas de diálogo abertas para salvar as alterações.
Reinicie a sessão de terminal para que as alterações entrem em vigor.
Install using a PowerShell script
Crie um novo arquivo de script chamado
Install-CLI-Windows.ps1. ExecuteNew-Item Install-CLI-Windows.ps1no PowerShell para criar o arquivo ou crie um novo documento de texto no Explorador de Arquivos e renomeie-o.-
Copie o código a seguir e salve-o no arquivo de script.
-
Execute o arquivo de script para instalar a Alibaba Cloud CLI conforme mostrado nos exemplos a seguir.
NotaO caminho de exemplo do script é
C:\Example\Install-CLI-Windows.ps1. Antes de executar o comando, substitua o caminho do script pela localização real.-
Se nenhuma versão for especificada, o script instalará automaticamente a versão mais recente. O caminho de instalação padrão é
C:\Users\<USERNAME>\AppData\Local\AliyunCLI.powershell.exe -ExecutionPolicy Bypass -File C:\Example\Install-CLI-Windows.ps1 -
Use as opções
-Versione-InstallDirpara especificar a versão e o diretório de instalação. Para visualizar versões anteriores disponíveis, acesse a página de GitHub Releases.powershell.exe -ExecutionPolicy Bypass -File C:\Example\Install-CLI-Windows.ps1 -Version 3.3.15 -InstallDir "C:\ExampleDir\AliyunCLI"
-
-
-
Verificar a instalação
Execute o seguinte comando para verificar a instalação.
aliyun maxc --versionSe o número da versão aparecer, a instalação foi bem-sucedida. Se ocorrer um erro, verifique a versão da CLI. Para mais informações, consulte Instalar ou atualizar a Alibaba Cloud CLI.
Autenticação
O aliyun maxc reutiliza o sistema de credenciais da Alibaba Cloud CLI. Todos os métodos de autenticação configurados com aliyun configure (exceto OAuth) funcionam diretamente — o maxc herda as credenciais do perfil atual.
# Configure authentication using the Alibaba Cloud CLI (if you have not already done so)
aliyun configure --mode AK
# Verify that maxc can access MaxCompute
aliyun maxc auth whoami --json
Para mais informações sobre métodos de autenticação, consulte Configurar e gerenciar credenciais de identidade.
Configurar um projeto MaxCompute
Ao usar o maxc pela primeira vez, especifique o projeto e o endpoint do MaxCompute:
aliyun maxc auth login \
--endpoint http://service.cn-hangzhou.maxcompute.aliyun.com/api
Se você omitir --project, um seletor interativo de projetos será exibido. Para cenários de integração contínua (CI), especifique explicitamente o projeto:
aliyun maxc auth login \
--project my_project_dev \
--endpoint http://service.cn-hangzhou.maxcompute.aliyun.com/api \
--no-picker
A configuração do projeto MaxCompute é salva em ~/.maxc/config.yaml.
Visualizar e verificar
# View the current identity and project
aliyun maxc auth whoami --json
# Check permissions for a specific table
aliyun maxc auth can-i --table my_table --operation SELECT --json
Início rápido
# 1. Configure the project (authentication is already completed with aliyun configure)
aliyun maxc auth login \
--endpoint http://service.cn-hangzhou.maxcompute.aliyun.com/api
# 2. Browse tables
aliyun maxc meta list-tables --json
aliyun maxc meta describe my_table --json
# 3. Run a query
aliyun maxc query "SELECT * FROM my_table LIMIT 10" --json
# 4. Estimate the cost
aliyun maxc query cost "SELECT * FROM my_table" --json
# 5. Sample data
aliyun maxc data sample my_table --rows 5 --json
Opções globais
As opções a seguir podem ser inseridas em qualquer lugar na linha de comando e aplicam-se a todos os comandos:
|
Opção |
Descrição |
|
--json |
Gera saída no formato JSON Envelope (equivalente a --format json) |
|
--format |
Formato de saída: json, table, csv, ndjson, markdown ou brief |
|
--config |
Especifica o caminho do arquivo de configuração |
|
--project |
O projeto MaxCompute de destino (substitui temporariamente as configurações da sessão) |
|
--schema |
O schema de destino (substitui temporariamente as configurações da sessão) |
Use --project e --schema para acessar temporariamente outros projetos ou schemas sem alterar a configuração da sessão. Os nomes das tabelas também aceitam o formato schema.table.
Referência de comandos
Consulta SQL (Query)
-
Modos de consulta
Três modos estão disponíveis, selecionados pela primeira palavra-chave:
aliyun maxc query <sql> # Run a query (default) aliyun maxc query cost <sql> # Estimate the cost aliyun maxc query explain <sql> # View the execution planO modo padrão é somente leitura — instruções DDL e DML são bloqueadas no lado do cliente. Use --force para ignorar essa restrição.
aliyun maxc query "SELECT * FROM my_table LIMIT 10" --json -
Descrição dos parâmetros
Parâmetro
Descrição
Valor padrão
<sql>
Texto SQL
—
--file
Lê o SQL de um arquivo
—
--stdin
Lê o SQL da entrada padrão
—
--max-rows
Número máximo de linhas a retornar
100
--page-size
Tamanho da página
—
--cursor
Cursor de paginação (valor retornado da última chamada)
—
--wait
Número de segundos para aguardar sincronização. Se ocorrer timeout, o job_id é retornado.
10
--dry-run
Exibe apenas o plano de consulta sem executá-lo
—
--cost-check
Aborta a consulta se o custo estimado exceder o limiar (em CUs)
—
--output
Grava o resultado em um arquivo
—
--output-format
Formato do arquivo de saída: table, json, csv ou ndjson
—
--idempotency-key
Chave de deduplicação, usada para retentativas idempotentes
—
--retry-on
Lista separada por vírgulas de códigos de erro passíveis de nova tentativa
—
--max-retries
Número máximo de retentativas
0
--retry-backoff
Política de backoff: fixed ou exponential
fixed
--force
Ignora o modo somente leitura e permite instruções DDL/DML
—
-
Comportamento de --wait
--wait 10 (Padrão): Sonda sincronamente por 10 segundos. Se o job estiver concluído, o resultado é retornado. Se ocorrer timeout, o job_id é retornado.
--wait 0: Envia o job e retorna imediatamente o job_id.
--wait 300: Aguarda no máximo 5 minutos.
Após um timeout, use job wait <job_id> para continuar aguardando.
-
Exemplos
# Run from a file aliyun maxc query --file my_query.sql --json # Cost protection: Automatically aborts if the estimated cost exceeds 100 CUs aliyun maxc query "SELECT * FROM orders" --cost-check 100 --json # Paging aliyun maxc query "SELECT * FROM orders" --page-size 50 --json aliyun maxc query "SELECT * FROM orders" --page-size 50 --cursor <next_cursor> --json # Write the result to a CSV file aliyun maxc query "SELECT * FROM orders LIMIT 1000" --output result.csv --output-format csv --json # Idempotent retry aliyun maxc query "INSERT INTO target SELECT * FROM source WHERE ds='20260601'" \ --force --idempotency-key "daily-etl-20260601" \ --retry-on "QUOTA_EXCEEDED" --max-retries 3 --retry-backoff exponential --json
Gerenciamento de jobs (Job)
Gerencia o ciclo de vida de jobs SQL assíncronos.
job submit
Envia um job SQL e retorna imediatamente o job_id.
aliyun maxc job submit "SELECT * FROM large_table" --json
|
Parâmetro |
Descrição |
Valor padrão |
|
<sql> |
Texto SQL |
— |
|
--file |
Lê o SQL de um arquivo |
— |
|
--stdin |
Lê o SQL da entrada padrão |
— |
|
--max-rows |
Número máximo de linhas a retornar |
100 |
|
--cost-check |
Limiar de custo (em CUs) |
— |
|
--idempotency-key |
Chave de deduplicação |
— |
|
--force |
Permite instruções DDL/DML |
— |
job status / wait / result / cancel / diagnose
aliyun maxc job status <job_id> --json # Query the status
aliyun maxc job wait <job_id> --json # Wait for completion and return the result
aliyun maxc job result <job_id> --json # Get the result of a completed job
aliyun maxc job cancel <job_id> --json # Cancel a running job
aliyun maxc job diagnose <job_id> --json # Diagnose the cause of a failure
-
Parâmetros adicionais para job wait
Parâmetro
Descrição
Valor padrão
--timeout
Timeout em segundos
300
--stream
Transmite a saída de progresso no formato NDJSON
—
-
Parâmetros adicionais para job result
Parâmetro
Descrição
Valor padrão
--max-rows
Número máximo de linhas a retornar
100
--cursor
Cursor de paginação
—
job list
aliyun maxc job list --json # Lists recent jobs (20 by default)
aliyun maxc job list --limit 50 --json # Specify the number of jobs
Fluxo completo para uma consulta assíncrona
# 1. Submit
JOB_ID=$(aliyun maxc query "SELECT * FROM large_table" --wait 0 --json \
| jq -r '.metadata.job_id')
# 2. Wait
aliyun maxc job wait "$JOB_ID" --timeout 600 --json
# 3. Get the result (supports paging)
aliyun maxc job result "$JOB_ID" --max-rows 1000 --json
Navegação de metadados (Meta)
Operações de tabela
# List tables
aliyun maxc meta list-tables --json
# View the table schema (--full displays the complete column list; summary mode is the default)
aliyun maxc meta describe my_table --json
aliyun maxc meta describe my_table --full --json
# Search for tables
aliyun maxc meta search "order" --json
# Search for columns
aliyun maxc meta search-columns "user_id" --json
list-tables e search aceitam paginação com --limit e --cursor. Por padrão, search retorna 20 itens.
Operações de partição
# List partitions (up to 100 by default)
aliyun maxc meta partitions my_table --json
aliyun maxc meta partitions my_table --limit 500 --json
# View the latest partition
aliyun maxc meta latest-partition my_table --json
# View data freshness
aliyun maxc meta freshness my_table --json
Projetos e schemas
# List accessible projects
aliyun maxc meta list-projects --json
# List schemas in a project
aliyun maxc meta list-schemas --json
Metadados semânticos
Fornece informações semânticas de negócios sobre tabelas para AI Agents. Para mais informações, consulte Integração com AI Agent.
# Set semantic information
aliyun maxc meta semantic set my_table \
--desc "Order details table" \
--use-cases "Analyze daily order volume" "Calculate user repurchase rate" \
--json
# Get semantic information
aliyun maxc meta semantic get my_table --json
# List tables that are missing semantic information
aliyun maxc meta semantic list-missing --json
semantic set também aceita --sample-questions, --column-semantics (JSON), --relations (JSON) e --stats (JSON).
Operações de dados (Data)
Amostra de dados
Amostra dados de uma tabela. Para tabelas particionadas, a partição mais recente é selecionada por padrão. Views não são compatíveis.
aliyun maxc data sample my_table --json
aliyun maxc data sample my_table --rows 20 --partition "ds=20260601" --columns "user_id,amount" --json
|
Parâmetro |
Descrição |
Valor padrão |
|
<table_name> |
Nome da tabela |
— |
|
--rows |
Número de linhas para amostrar |
5 |
|
--partition |
Especificação da partição |
A mais recente é selecionada automaticamente |
|
--columns |
Colunas a incluir (separadas por vírgula) |
Todas |
Perfil de dados
Analisa estatísticas de colunas, como porcentagens de nulos, contagens de valores únicos e valores mínimos/máximos. Os resultados são heurísticos, baseados em uma amostra de 20 linhas.
aliyun maxc data profile my_table --json
aliyun maxc data profile my_table --partition "ds=20260601" --json
aliyun maxc data profile <table_name> --json
Upload de dados
Faz upload de um arquivo CSV ou TSV local para uma tabela. Para tabelas particionadas, --partition é obrigatório. Views e tipos complexos (array, map, struct) não são compatíveis.
aliyun maxc data upload my_table --file data.csv --json
aliyun maxc data upload my_table --file data.csv --partition "ds=20260601" --overwrite --json
|
Parâmetro |
Descrição |
Valor padrão |
|
<table_name> |
Nome da tabela de destino |
— |
|
--file |
Caminho do arquivo local (obrigatório) |
— |
|
--partition |
Especificação da partição (obrigatório para tabelas particionadas) |
— |
|
--overwrite |
Usa semântica INSERT OVERWRITE |
— |
|
--delimiter |
Separador de campos |
, |
|
--no-header |
Indica que a primeira linha é dado, não cabeçalho |
— |
|
--null-marker |
Marcador NULL |
\N |
|
--block-size |
Número de linhas para upload por lote |
10.000 |
Download de dados
Baixa dados da tabela para um arquivo CSV ou TSV local. Para tabelas particionadas, --partition é obrigatório. Views não são compatíveis.
aliyun maxc data download my_table --output data.csv --json
aliyun maxc data download my_table --output data.csv --partition "ds=20260601" --limit 100000 --json
|
Parâmetro |
Descrição |
Valor padrão |
|
<table_name> |
Nome da tabela de origem |
— |
|
--output |
Caminho do arquivo de saída (obrigatório) |
— |
|
--partition |
Especificação da partição (obrigatório para tabelas particionadas) |
— |
|
--columns |
Colunas a incluir (separadas por vírgula) |
Todas |
|
--limit |
Número máximo de linhas para baixar |
Ilimitado |
|
--delimiter |
Separador de campos |
, |
|
--no-header |
Não grava linha de cabeçalho |
— |
|
--null-marker |
Marcador de saída NULL |
String vazia |
Gerenciamento de sessão (Session)
Gerencia o projeto e schema padrão para a sessão atual. Estas são operações locais que não exigem conexão com o backend.
# Set the default project (specify at least --project or --schema)
aliyun maxc session set --project my_project_dev --json
# Set the default schema
aliyun maxc session set --schema my_schema --json
# View the current session
aliyun maxc session show --json
# Clear session settings
aliyun maxc session unset --json
Para alternar temporariamente de projetos sem modificar a configuração da sessão, use o parâmetro global --project:
aliyun maxc meta list-tables --project other_project --json
aliyun maxc query "SELECT * FROM t LIMIT 5" --project other_project --json
Formato de saída
JSON Envelope
Adicionar --json a qualquer comando produz um JSON Envelope unificado (v2.0):
{
"version": "2.0",
"command": "query",
"status": "success",
"data": { ... },
"metadata": { ... },
"error": null,
"agent_hints": null
}
|
Campo |
Tipo |
Descrição |
|
version |
string |
Fixo em "2.0" |
|
command |
string |
O comando executado, como "query" ou "meta describe" |
|
status |
string |
"success" ou "failure" |
|
data |
object |
Dados de negócio retornados pelo comando |
|
metadata |
object |
Metadados de execução (como nome do projeto, tempo consumido e job_id) |
|
error |
object/null |
Detalhes do erro se o comando falhar |
|
agent_hints |
object/null |
Próximas ações recomendadas para o AI Agent |
Campo data
A estrutura do campo data varia conforme o comando:
|
Comando |
Chaves de nível superior em data |
|
query / job wait / job result |
result (contém rows, schema, row_count, returned_rows), pagination |
|
query cost / query explain |
analysis |
|
meta list-tables |
tables, pagination |
|
meta describe |
table |
|
meta search / meta search-columns |
search (contém keyword, matches), pagination |
|
meta partitions |
table, partitions |
|
meta latest-partition |
partition |
|
meta freshness |
freshness |
|
data sample |
sample |
|
data profile |
profile |
|
job list |
jobs, pagination |
|
job status / job cancel |
job |
|
job diagnose |
diagnosis |
|
auth whoami |
identity |
|
auth login |
identity, persistence |
|
auth can-i |
authorization |
Campo error
Se um comando falhar, o campo error contém os seguintes campos:
{
"code": "TABLE_NOT_FOUND",
"message": "Table 'orders' does not exist in project 'my_project'",
"suggestion": "Use 'aliyun maxc meta search orders --json' to find similar tables",
"recoverable": false
}
|
Campo |
Descrição |
|
|
Código de erro (veja a tabela abaixo) |
|
|
Descrição do erro |
|
|
Correção recomendada (opcional) |
|
|
Indica se a operação pode ser tentada novamente |
|
|
ID da instância ODPS (apenas para erros de consulta, opcional) |
|
|
Link do LogView (apenas para erros de consulta, opcional) |
|
|
Contexto estruturado (opcional) |
Códigos de erro
|
Código de erro |
Descrição |
Passível de nova tentativa |
|
|
Falha na execução |
Sim |
|
|
Permissão negada |
Não |
|
|
Cota excedida |
Sim |
|
|
Erro de sintaxe ou execução SQL |
Não |
|
|
Limite de custo excedido |
Não |
|
|
Recurso não encontrado |
Não |
|
|
Tabela não encontrada |
Não |
|
|
Schema não encontrado |
Não |
|
|
Coluna não encontrada |
Não |
|
|
Falha na validação de entrada |
Não |
|
|
Impossível conectar ao backend |
Sim |
|
|
Timeout na sondagem do job |
Sim |
|
|
Operação de escrita bloqueada pelo modo somente leitura |
Não |
|
|
Operação de escrita requer |
Sim |
|
|
Falha na análise CSV |
Não |
|
|
Erro interno |
Não |
Outros formatos
|
Formato |
Descrição |
|
|
Tabela legível (padrão) |
|
|
Formato Markdown |
|
|
Resumo em linha única |
|
|
CSV (apenas linhas de dados) |
|
|
JSON delimitado por nova linha, com um registro por linha |
Integração com AI Agent
O maxc foi projetado especificamente para integração com AI Agent. As seções a seguir abordam seu design principal e padrões de uso.
Protocolo JSON unificado
A saída --json de cada comando segue um protocolo Envelope fixo. Os Agents analisam campos estruturados para obter feedback confiável e previsível.
status: Indica sucesso ou falha.
data: Os dados de negócio. A estrutura é fixa com base no tipo de comando.
error.code + error.suggestion: O código de erro e uma sugestão executável para correção.
agent_hints.next_actions: O próximo comando recomendado pela CLI. Esta é uma linha de comando completa e executável.
agent_hints.warnings: Riscos a observar, como custos elevados ou seleção automática de partição.
Autorrecuperação de erros
Cada resposta de erro inclui um campo suggestion e agent_hints.next_actions que informam ao Agent qual comando executar em seguida:
|
Cenário de erro |
Orientação recebida pelo Agent |
|
Tabela não encontrada |
Sugere executar |
|
Coluna não encontrada |
Sugere executar |
|
Permissões insuficientes |
Sugere alternar para o projeto |
|
Erro de sintaxe SQL |
Sugere executar |
|
Cota excedida |
Sugere executar |
|
Timeout do job |
Sugere executar |
O Agent lê error.suggestion e executa novamente o comando sugerido para se recuperar automaticamente — nenhum tratamento de erro codificado rigidamente é necessário.
Segurança somente leitura
O maxc bloqueia todas as instruções DDL e DML (CREATE, DROP, INSERT, UPDATE, DELETE) no lado do cliente, prevenindo modificações acidentais de dados. Essa verificação local ocorre antes que o SQL seja enviado ao servidor, com latência zero e sem custo.
Operações de escrita exigem que o usuário passe explicitamente --force — o Agent nunca deve adicionar isso por conta própria. Uploads de dados via data upload usam um canal separado da API Tunnel e não estão sujeitos a essa restrição.
Consciência de custos
Antes de o Agent executar uma consulta, ele pode estimar o custo usando query cost ou definir um limite de custo usando --cost-check:
# Estimate the cost
aliyun maxc query cost "SELECT * FROM large_table" --json
# Set a cost threshold
aliyun maxc query "SELECT * FROM large_table" --cost-check 100 --json
Consultar uma tabela particionada sem filtro de partição pode acionar uma varredura completa da tabela com altos custos. O Agent deve determinar o intervalo de partições com meta partitions ou meta latest-partition antes de executar a consulta.
Arquitetura de conhecimento em camadas SKILL
SKILL é um conjunto de documentos de orientação estruturados instalados na plataforma do Agent que ensinam o Agent a usar o maxc para tarefas de dados no MaxCompute.
# One-click installation to Claude Code
aliyun maxc agent skill install --json
# Install on other platforms
aliyun maxc agent skill install cursor --json
aliyun maxc agent skill install windsurf --json
O SKILL usa carregamento em camadas para otimizar a eficiência da janela de contexto do LLM:
|
Camada |
Conteúdo |
Momento do carregamento |
|
Arquivo principal SKILL.md |
Tabela de mapeamento intenção-comando, princípios básicos, fluxos de trabalho, tabelas de decisão |
Carregado automaticamente quando uma tarefa é acionada |
|
Documentos de referência |
Guia de dialeto SQL, modelos de consulta, estratégias de partição, manual de recuperação de erros, etc. |
Carregado sob demanda (apenas quando o Agent precisa) |
Consultas simples de metadados exigem apenas o arquivo principal de 270 linhas. Geração complexa de SQL ou recuperação de erros aciona o carregamento sob demanda de documentos de referência.
Plataformas de Agent compatíveis:
|
Plataforma |
Caminho de instalação |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Outros Agents |
Especifique --dir para instalar em qualquer diretório |
Gerenciamento de SKILL
# View the installation status on all platforms
aliyun maxc agent skill list --json
# Update installed SKILLs (after a new version is released)
aliyun maxc agent skill update --all --json
# View the differences between the installed version and the latest version
aliyun maxc agent skill diff claude-code --json
# Uninstall
aliyun maxc agent skill uninstall cursor --json
Fluxo de trabalho NL2SQL
O SKILL orienta o Agent a converter perguntas em linguagem natural em consultas SQL usando o seguinte fluxo:
User question
↓
1. meta search / meta list-tables → Find relevant tables
↓
2. meta describe → Understand table schema and column meanings
↓
3. data sample → View actual data to confirm column value formats
↓
4. meta partitions / latest-partition → Determine the partition range
↓
5. query cost → Estimate the cost
↓
6. query → Run the query and return the result
Os documentos de referência do SKILL incluem um guia de dialeto SQL do MaxCompute com mais de 700 linhas, cobrindo diferenças de funções, armadilhas de tipos, modelos de consulta e correções comuns de erros.
Metadados semânticos
O comando meta semantic anexa semântica de negócios a uma tabela — descrições, casos de uso, perguntas de exemplo e semântica de colunas. Quando meta describe revela semântica ausente, o Agent pode gerá-la e salvá-la:
aliyun maxc meta semantic set my_table \
--description "User behavior log table, recording click and view events within the app" \
--usage-scenario "User behavior analysis, funnel conversion statistics" \
--sample-questions '["What was the DAU for the last 7 days?", "What is the registration conversion rate trend?"]' \
--json
Sessões subsequentes do Agent leem essas informações, criando um ciclo de uso, acumulação e reutilização.
Contexto do Agent
O Agent pode recuperar o contexto atual completo de uma só vez usando agent context:
aliyun maxc agent context --json
Este comando retorna o status de autenticação atual, projeto, schema e caminho de configuração, ajudando o Agent a decidir se deve orientar o usuário na autenticação ou troca de projeto.