Communitygithub.com

ardathhomeless585/mini-coding-agent

Construa um agente de codificação local com Ollama, snapshots de workspace, uso de ferramentas, aprovações e memória persistente para codificação automatizada mais segura.

O que é mini-coding-agent?

O mini-coding-agent é um projeto que permite construir um agente de codificação totalmente local que roda com modelos de linguagem via Ollama. Ele oferece recursos avançados de segurança, como snapshots do workspace antes de cada ação, um sistema de aprovação para intervenção manual e memória persistente que registra decisões e contexto entre sessões. O agente pode usar ferramentas (como ler/escrever arquivos, executar comandos) e é ideal para desenvolvedores que desejam automatizar tarefas de codificação com controle total sobre o ambiente. Ele suporta plataformas como Claude Code, Cursor e Codex, e sua documentação detalhada (SKILL.md) explica como configurar, executar e estender o agente para fluxos de trabalho personalizados.

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add ardathhomeless585/mini-coding-agent

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

O que mini-coding-agent faz?

Construa um agente de codificação local com Ollama, snapshots de workspace, uso de ferramentas, aprovações e memória persistente para codificação automatizada mais segura.

Visão Geral

Este agente de codificação é executado inteiramente na sua máquina, usando modelos de linguagem via Ollama. Ele foi projetado para automatizar tarefas de desenvolvimento com segurança, tirando snapshots do workspace antes de executar ações, solicitando aprovações para operações críticas e mantendo um registro persistente de contexto e decisões entre sessões.

Funcionalidades

  • Uso de Ferramentas: O agente pode ler, escrever e modificar arquivos, executar comandos do terminal e interagir com o sistema de arquivos.
  • Snapshots de Workspace: Antes de cada ação, o workspace é capturado em um snapshot, permitindo rollback fácil.
  • Aprovações: Ações potencialmente destrutivas ou arriscadas exigem aprovação manual antes da execução.
  • Memória Persistente: Decisões, contexto e preferências são armazenados em um banco de dados local para reutilização em sessões futuras.
  • Design Modular: Fácil de estender com novas ferramentas e comportamentos.

Pré-requisitos

  • Python 3.10+
  • Ollama instalado e em execução
  • Um modelo de linguagem compatível (recomendado: llama3.2, qwen2.5-coder)

Instalação

git clone https://github.com/ardathhomeless585/mini-coding-agent
cd mini-coding-agent
pip install -r requirements.txt

Uso

  1. Certifique-se de que o Ollama está rodando com um modelo puxado:
ollama pull llama3.2
  1. Configure o modelo no arquivo config.yaml:
model: llama3.2
snapshot_dir: ./snapshots
memory_backend: sqlite
  1. Execute o agente:
python agent.py --task "Conserte o bug no arquivo main.py" --workspace ./meu-projeto
  1. O agente analisará a tarefa, usará ferramentas conforme necessário e solicitará aprovações para alterações importantes.

Estrutura do Projeto

  • agent.py — Ponto de entrada do agente
  • tools/ — Módulos de ferramentas (ler, escrever, executar)
  • memory/ — Backend de memória persistente
  • snapshots/ — Diretório para armazenar snapshots do workspace
  • config.yaml — Arquivo de configuração

Exemplo de Ferramenta

# tools/file_tools.py
def read_file(path: str) -> str:
    with open(path, 'r') as f:
        return f.read()

def write_file(path: str, content: str) -> None:
    with open(path, 'w') as f:
        f.write(content)

Aprovações

O agente usa um sistema de aprovação em modo prompt:

  • Para comandos de execução
  • Para alterações em arquivos sensíveis (definidos no config.yaml)
  • Para ações que afetam múltiplos arquivos

Memória Persistente

Memória é armazenada em um banco SQLite local. O agente pode:

  • Lembrar preferências do usuário
  • Reutilizar soluções anteriores
  • Manter contexto entre tarefas

Personalização

Você pode adicionar novas ferramentas registrando-as em tools/__init__.py. Cada ferramenta deve ser uma função assíncrona que recebe um dicionário de argumentos e retorna uma string.

Contribuição

Contribuições são bem-vindas! Por favor, abra uma issue ou pull request.

Licença

MIT

Habilidades Relacionadas