O que claw_code faz?
Construa uma reescrita em Rust de nível de produção do Claude Code para codificação agêntica, chamada nativa de ferramentas e suporte a múltiplos provedores.
Visão Geral
Este skill fornece orientação e contexto para construir um substituto em Rust para o Claude Code. Ele se concentra em:
- Codificação Agêntica: Capacitando o LLM a gerenciar e executar tarefas de codificação de forma autônoma.
- Chamada Nativa de Ferramentas: Integração direta com o
claude_codeusando ferramentas locais sem invocações HTTP intermediárias. - Suporte a Múltiplos Provedores: Capacidade de usar Anthropic, OpenAI, Google Gemini e modelos locais via Ollama.
Por que Rust?
Rust oferece vantagens significativas de desempenho e segurança sobre TypeScript/Node.js, incluindo:
- Gerenciamento de memória sem coletor de lixo
- Concorrência sem corridas de dados
- Binários compilados estaticamente
- Melhor desempenho de E/S
Funcionalidades Principais
- CLI Interativa: Interface de linha de comando com histórico e preenchimento de guias
- Gerenciamento de Sessão: Acompanhe o contexto das conversas e o histórico
- Execução de Ferramentas: Execução segura e sandbox de comandos e scripts
- Múltiplos Backends: Alternância perfeita entre provedores de LLM
- Gerenciamento de Erros: Tratamento robusto de erros e recuperação
Primeiros Passos
Pré-requisitos
- Rust (edição 2021 ou posterior)
- Chave de API para seu provedor LLM preferido
- Git
Instalação
git clone https://github.com/Mosesmordacious897/claw_code.git
cd claw_code
cargo build --release
Configuração
Defina sua chave de API como uma variável de ambiente:
export ANTHROPIC_API_KEY=sua-chave-aqui
export OPENAI_API_KEY=sua-chave-aqui
export GEMINI_API_KEY=sua-chave-aqui
Executando
cargo run --release
Arquitetura
O projeto segue uma arquitetura modular:
src/main.rs- Ponto de entradasrc/cli/- Manipulação da interface de linha de comandosrc/agent/- Lógica central do agentesrc/tools/- Implementações de ferramentassrc/providers/- Integrações com provedores LLMsrc/config/- Gerenciamento de configuração
Chamada de Ferramentas
As ferramentas são funções Rust que podem ser chamadas pelo LLM:
#[tool]
fn executar_comando(comando: String) -> Result<String> {
// Execução segura de comando
}
Suporte a Múltiplos Provedores
Anthropic Claude
Usa a API de mensagens do Claude diretamente com suporte à chamada de ferramentas.
OpenAI
Compatível com modelos GPT-4 e GPT-3.5.
Google Gemini
Integração com a API Gemini.
Ollama
Suporte a modelos locais para desenvolvimento offline.
Contribuindo
Contribuições são bem-vindas! Por favor, veja nosso guia de contribuição.
Licença
Licenciado sob a Licença MIT.