Databricks Agent Generator (Extensão VS Code)
Esta extensão para Visual Studio Code fornece uma interface gráfica para gerar esqueletos de projetos de Agentes de IA para Databricks a partir de templates pré-definidos. Ela simplifica o processo de criação inicial, configurando automaticamente diversos arquivos com base nas informações fornecidas pelo usuário.
Funcionalidades
- Interface Gráfica (Webview): Guia o usuário passo a passo através de um formulário visual dentro do VS Code para coletar as informações necessárias.
- Seleção de Templates: Permite escolher entre diferentes tipos de templates base para o agente Databricks:
- Base (Padrão)
- Agente RAG (Retrieval-Augmented Generation)
- Agente ReAct
- Agente com Ferramentas
- Agente LLM Simples
- Criação de Projeto: Copia a estrutura de pastas e arquivos do template selecionado para um novo diretório especificado pelo usuário.
- Configuração Automática: Substitui placeholders nos arquivos de configuração chave (como
databricks.yml [cite: 10, 15, 21, 27, 34], azure-pipelines.yaml [cite: 9, 14, 20, 26, 33], src/agent/settings.py [cite: 41, 46, 51, 56, 61], src/deploy_agent.py [cite: 13, 18, 24, 30, 37], README.md do template [cite: 11, 16, 22, 28, 35]) com os detalhes fornecidos pelo usuário (nome do agente, host Databricks, IDs, nomes de secrets, etc.).
Como Executar (Para Desenvolvimento e Teste)
Siga estes passos para executar a extensão localmente a partir do código fonte:
Pré-requisitos:
- Node.js (que inclui npm) instalado.
- Git instalado.
- Visual Studio Code instalado.
Clonar o Repositório:
git clone <url-do-seu-repositorio>
cd databricks-agent-generator
Instalar Dependências:
Abra um terminal na pasta do projeto e execute:
npm install
Compilar a Extensão:
Antes de executar pela primeira vez ou após fazer alterações no código TypeScript (.ts ), compile-o para JavaScript:
npm run compile
Alternativa: Para recompilar automaticamente ao salvar alterações durante o desenvolvimento, use: npm run watch
Iniciar a Depuração:
- Abra a pasta do projeto (
databricks-agent-generator ) no VS Code.
- Pressione
F5 . Isso abrirá uma nova janela do VS Code chamada "[Host de Desenvolvimento de Extensão]" com a sua extensão carregada.
Usar a Extensão:
- Na janela do "[Host de Desenvolvimento de Extensão]":
- Abra a Paleta de Comandos:
Ctrl+Shift+P (ou Cmd+Shift+P no macOS).
- Digite
Databricks e selecione o comando: Databricks: Criar Agente a partir do Template [cite: 4].
- Um novo painel (Webview) chamado "Criar Agente Databricks" deve abrir.
- Preencha o formulário na Webview:
- Nome do Agente: O nome único para seu novo agente (ex:
meu-agente-teste ).
- Pasta Pai: Clique em "Selecionar Pasta" e escolha o diretório onde a pasta do novo agente será criada.
- Tipo de Template: Selecione o template base desejado.
- Configuração Databricks: Preencha os detalhes do seu ambiente Databricks (Host URL, Client ID da Service Principal, Nomes do Secret Scope e Key para o Client Secret, Endpoint do Modelo de Chat, Catálogo e Schema do Unity Catalog).
- Grupo de Variáveis Azure DevOps: Informe o nome do grupo de variáveis que será usado no pipeline
azure-pipelines.yaml [cite: 9, 14, 20, 26, 33].
- Clique no botão "Criar Agente".
- Acompanhe as mensagens de status que aparecem na parte inferior da Webview.
- Se a criação for bem-sucedida, uma notificação aparecerá, e você terá a opção de abrir a pasta do agente recém-criado.
Como Funciona Internamente
- Ativação: A extensão é ativada quando o VS Code inicia (devido a
activationEvents: ["*"] no package.json [cite: 4]).
- Comando: O comando
databricks-agent-generator.createAgent é registrado em src/extension.ts [cite: 4, 69].
- Webview: Ao executar o comando, uma instância da classe
AgentCreatorPanel é criada, a qual abre um painel de Webview (vscode.window.createWebviewPanel )[cite: 69].
- Interface HTML: O conteúdo da Webview é definido no método
_getHtmlForWebview (usando HTML, CSS de webview-ui/styles.css e JS de webview-ui/main.js )[cite: 69].
- Interação:
- O botão "Selecionar Pasta" na Webview envia uma mensagem (
selectDirectory ) para a extensão via vscode.postMessage . A extensão usa vscode.window.showOpenDialog e envia o caminho de volta para a Webview[cite: 69].
- O botão "Criar Agente" coleta os dados do formulário no
main.js e envia uma mensagem (createAgent ) com os dados para a extensão[cite: 69].
- Processamento: O método
handleCreateAgent em extension.ts recebe os dados. Ele[cite: 69]:
- Valida a entrada.
- Determina qual pasta de template usar (
templates/<templateFolderName> ).
- Copia os arquivos do template para o diretório de destino (
vscode.workspace.fs.copy ).
- Prepara um dicionário de substituições (
replacements ).
- Itera sobre uma lista de arquivos de configuração (
databricks.yml , settings.py , etc.) e usa a função replaceInFile para substituir os placeholders pelos dados do usuário (vscode.workspace.fs.readFile e vscode.workspace.fs.writeFile )[cite: 69].
- Feedback: Mensagens de progresso, sucesso ou erro são enviadas de volta para a Webview (
this._panel.webview.postMessage ) para serem exibidas ao usuário[cite: 69].
Estrutura do Projeto
.
├── webview-ui/ # Arquivos para a interface Webview
│ ├── main.js # Lógica JavaScript da Webview
│ └── styles.css # Estilos CSS da Webview
├── dist/ # Arquivos JavaScript compilados (saída do Webpack)
│ └── extension.js
├── node_modules/ # Dependências (gerenciado pelo npm)
├── src/ # Código fonte TypeScript
│ ├── test/ # Testes da extensão (opcional)
│ └── extension.ts # Ponto de entrada principal da extensão e lógica da Webview
├── templates/ # Pasta contendo os diferentes templates de agente
│ ├── base/
│ ├── agent-llm/
│ ├── agent-rag/
│ ├── agent-react/
│ └── agent-tools/
├── .vscodeignore # Define arquivos a serem ignorados ao empacotar
├── CHANGELOG.md # Histórico de alterações
├── eslint.config.mjs # Configuração do ESLint
├── package.json # Manifesto da extensão (comandos, dependências, etc.)
├── package-lock.json # Lockfile de dependências
├── README.md # Este arquivo
├── tsconfig.json # Configuração do TypeScript
└── webpack.config.js # Configuração do Webpack (bundler)
---
**Nota:** Lembre-se de configurar corretamente os segredos (como o Client Secret da Service Principal) no Databricks Secrets ou Azure Key Vault e referenciá-los adequadamente, conforme indicado no formulário e nos arquivos de template. **Nunca coloque segredos diretamente no código versionado.**
| |