Visão Geral do Uso de Ferramentas
O AI Cockpit Reasoning implementa um sistema de ferramentas sofisticado que permite que os modelos de IA interajam com seu ambiente de desenvolvimento de maneira controlada e segura. Este documento explica como as ferramentas funcionam, quando são chamadas e como são gerenciadas.
Conceitos Principais
Grupos de Ferramentas
As ferramentas são organizadas em grupos lógicos com base em sua funcionalidade:
Categoria | Propósito | Ferramentas | Uso Comum |
---|---|---|---|
Grupo de Leitura | Leitura e pesquisa no sistema de arquivos | read_file, search_files, list_files, list_code_definition_names | Exploração e análise de código |
Grupo de Edição | Modificações no sistema de arquivos | apply_diff, write_to_file | Alterações de código e manipulação de arquivos |
Grupo de Navegador | Automação da Web | browser_action | Teste e interação na Web |
Grupo de Comando | Execução de comandos do sistema | execute_command | Execução de scripts, compilação de projetos |
Grupo MCP | Integração de ferramentas externas | use_mcp_tool, access_mcp_resource | Funcionalidade especializada através de servidores externos |
Grupo de Fluxo de Trabalho | Gerenciamento de modo e tarefa | switch_mode, new_task, ask_followup_question, attempt_completion, update_todo_list | Troca de contexto e organização de tarefas |
Ferramentas Sempre Disponíveis
Certas ferramentas são acessíveis independentemente do modo atual:
- ask_followup_question: Coleta informações adicionais dos usuários
- attempt_completion: Sinaliza a conclusão da tarefa
- switch_mode: Altera os modos operacionais
- new_task: Cria subtarefas
- update_todo_list: Gerencia o acompanhamento de tarefas passo a passo
Ferramentas Disponíveis
Ferramentas de Leitura
Estas ferramentas ajudam o AI Cockpit Reasoning a entender seu código e projeto:
- read_file - Examina o conteúdo dos arquivos
- search_files - Encontra padrões em vários arquivos
- list_files - Mapeia a estrutura de arquivos do seu projeto
- list_code_definition_names - Cria um mapa estrutural do seu código
Ferramentas de Edição
Estas ferramentas ajudam o AI Cockpit Reasoning a fazer alterações em seu código:
- apply_diff - Faz alterações precisas e cirúrgicas em seu código
- write_to_file - Cria novos arquivos ou reescreve completamente os existentes
Ferramentas de Navegador
Estas ferramentas ajudam o AI Cockpit Reasoning a interagir com aplicativos da web:
- browser_action - Automatiza as interações do navegador
Ferramentas de Comando
Estas ferramentas ajudam o AI Cockpit Reasoning a executar comandos:
- execute_command - Executa comandos e programas do sistema
Ferramentas MCP
Estas ferramentas ajudam o AI Cockpit Reasoning a se conectar com serviços externos:
- use_mcp_tool - Usa ferramentas externas especializadas
- access_mcp_resource - Acessa fontes de dados externas
Ferramentas de Fluxo de Trabalho
Estas ferramentas ajudam a gerenciar a conversa e o fluxo de tarefas:
- ask_followup_question - Obtém informações adicionais de você
- attempt_completion - Apresenta os resultados finais
- switch_mode - Muda para um modo diferente para tarefas especializadas
- new_task - Cria uma nova subtarefa
- update_todo_list - Acompanha o progresso da tarefa com listas de verificação passo a passo
Mecanismo de Chamada de Ferramenta
Quando as Ferramentas São Chamadas
As ferramentas são invocadas sob condições específicas:
-
Requisitos Diretos da Tarefa
- Quando ações específicas são necessárias para concluir uma tarefa, conforme decidido pelo LLM
- Em resposta às solicitações do usuário
- Durante fluxos de trabalho automatizados
-
Disponibilidade Baseada no Modo
- Diferentes modos habilitam diferentes conjuntos de ferramentas
- As trocas de modo podem acionar alterações na disponibilidade de ferramentas
- Algumas ferramentas são restritas a modos específicos
-
Chamadas Dependentes do Contexto
- Com base no estado atual do espaço de trabalho
- Em resposta a eventos do sistema
- Durante o tratamento e recuperação de erros
Processo de Decisão
O sistema usa um processo de várias etapas para determinar a disponibilidade da ferramenta:
-
Validação do Modo
isToolAllowedForMode(
tool: string,
modeSlug: string,
customModes: ModeConfig[],
toolRequirements?: Record<string, boolean>,
toolParams?: Record<string, any>
) -
Verificação de Requisitos
- Verificação da capacidade do sistema
- Disponibilidade de recursos
- Validação de permissão
-
Validação de Parâmetros
- Presença de parâmetros obrigatórios
- Verificação do tipo de parâmetro
- Validação de valor
Implementação Técnica
Processamento de Chamada de Ferramenta
-
Inicialização
- O nome e os parâmetros da ferramenta são validados
- A compatibilidade do modo é verificada
- Os requisitos são verificados
-
Execução
const toolCall = {
type: "tool_call",
name: chunk.name,
arguments: chunk.input,
callId: chunk.callId
} -
Manuseio de Resultados
- Determinação de sucesso/falha
- Formatação do resultado
- Tratamento de erros
Segurança e Permissões
-
Controle de Acesso
- Restrições do sistema de arquivos
- Limitações de execução de comandos
- Controles de acesso à rede
-
Camadas de Validação
- Validação específica da ferramenta
- Restrições baseadas no modo
- Verificações no nível do sistema
Integração de Modo
Acesso a Ferramentas Baseado no Modo
As ferramentas são disponibilizadas com base no modo atual:
- Modo Código: Acesso total às ferramentas do sistema de arquivos, capacidades de edição de código, execução de comandos
- Modo Pergunta: Limitado a ferramentas de leitura, capacidades de coleta de informações, sem modificações no sistema de arquivos
- Modo Arquiteto: Ferramentas focadas em design, capacidades de documentação, direitos de execução limitados
- Modos Personalizados: Podem ser configurados com acesso a ferramentas específicas para fluxos de trabalho especializados
Troca de Modo
-
Processo
- Preservação do estado do modo atual
- Atualizações de disponibilidade de ferramentas
- Troca de contexto
-
Impacto nas Ferramentas
- Alterações no conjunto de ferramentas
- Ajustes de permissão
- Preservação de contexto
Melhores Práticas
Diretrizes de Uso de Ferramentas
-
Eficiência
- Use a ferramenta mais específica para a tarefa
- Evite chamadas de ferramentas redundantes
- Agrupe operações quando possível
-
Segurança
- Valide as entradas antes das chamadas de ferramentas
- Use as permissões mínimas necessárias
- Siga as melhores práticas de segurança
-
Tratamento de Erros
- Implemente a verificação de erros adequada
- Forneça mensagens de erro significativas
- Lide com falhas de forma elegante
Padrões Comuns
-
Coleta de Informações
[ask_followup_question](/features/tools/ask-followup-question) → [read_file](/features/tools/read-file) → [search_files](/features/tools/search-files)
-
Modificação de Código
[read_file](/features/tools/read-file) → [apply_diff](/features/tools/apply-diff) → [attempt_completion](/features/tools/attempt-completion)
-
Gerenciamento de Tarefas
[new_task](/features/tools/new-task) → [switch_mode](/features/tools/switch-mode) → [execute_command](/features/tools/execute-command)
-
Acompanhamento do Progresso
[update_todo_list](/features/tools/update-todo-list) → [execute_command](/features/tools/execute-command) → [update_todo_list](/features/tools/update-todo-list)
Tratamento e Recuperação de Erros
Tipos de Erro
-
Erros Específicos da Ferramenta
- Falhas na validação de parâmetros
- Erros de execução
- Problemas de acesso a recursos
-
Erros do Sistema
- Permissão negada
- Recurso indisponível
- Falhas de rede
-
Erros de Contexto
- Modo inválido para a ferramenta
- Requisitos ausentes
- Inconsistências de estado
Estratégias de Recuperação
-
Recuperação Automática
- Mecanismos de repetição
- Opções de fallback
- Restauração de estado
-
Intervenção do Usuário
- Notificações de erro
- Sugestões de recuperação
- Opções de intervenção manual