Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Coding Agent Avanzado

Sistema multiagente de coding assistant: un agente principal que coordina 5 subagentes especializados (Explorer, Researcher, Implementer, Tester, Reviewer), con RAG propio, memoria persistente de proyecto, políticas de seguridad configurables y observabilidad — sin frameworks de orquestación (LangChain/LangGraph/CrewAI/AutoGen).

Documentación completa en docs/:

Instalación

Requiere Python 3.9+.

python3 -m venv .venv
source .venv/bin/activate   # Windows: .venv\Scripts\activate
pip install anthropic python-dotenv tavily-python pyyaml numpy sentence-transformers pytest langfuse

Configuración

  1. Copiá .env.example a .env y completá:
    ANTHROPIC_API_KEY=...
    ANTHROPIC_MODEL=claude-sonnet-5
    TAVILY_API_KEY=...
    # Opcionales — sin esto, la observabilidad sigue funcionando en modo local (ver abajo)
    LANGFUSE_PUBLIC_KEY=...
    LANGFUSE_SECRET_KEY=...
    
  2. Cloná el proyecto sobre el que va a trabajar el agente (el "caso de uso") en cualquier carpeta, y apuntá workspace: en agent.config.yaml a esa carpeta (relativo a la raíz de este repo). Por default apunta a ../flask-class.
  3. (Solo una vez, o cuando cambie rag_corpus/) generá el índice del RAG:
    cd agent
    python rag/ingest.py

Ejecución

Modo conversación interactivo:

cd agent
python main_agent.py

Te va a preguntar si querés activar plan mode (el agente propone un plan y espera tu aprobación antes de tocar nada) y supervisión (te pide confirmar cada acción que no sea de solo lectura). Podés escribir off en cualquier momento para desactivar ambos.

Scripts de demostración (no interactivos, pensados para las pruebas del TP):

python scripts/run_feature_task.py     # Test 4: caso de uso completo (usa la API)
python scripts/run_reviewer_only.py    # Termina el Test 4 sin rehacer los otros 4 subagentes (usa la API)
python scripts/run_rag_test.py         # Test 1: RAG con citas de fuentes (usa la API)
python scripts/run_memory_test.py      # Test 2: memoria persistente entre sesiones (usa la API)
python scripts/run_loop_guard_test.py  # Test 3: detección de loops (NO usa la API)

Tests locales (no usan la API de Anthropic)

agent/tests/ tiene 43 tests de pytest sobre policy.py, state.py, memory.py, context.py, execution.py y rag/retrieve.py — ninguno llama a messages.create (el retrieval del RAG corre 100% local con sentence-transformers, y las llamadas al modelo en context.py se reemplazan por un stub). Se pueden correr todas las veces que haga falta sin gastar crédito:

cd agent
python -m pytest tests/ -v

Políticas del agente

Ver agent.config.yaml: qué no se puede leer/escribir, qué comandos están prohibidos, y cuáles requieren aprobación manual. Se valida antes de cada tool call en agent/policy.py + agent/execution.py.

Observabilidad

Si LANGFUSE_PUBLIC_KEY/LANGFUSE_SECRET_KEY no están configuradas, el sistema sigue funcionando normalmente y deja un log local en logs/observability.jsonl (modelo, tokens, latencia, costo estimado por cada llamada al LLM). Con las keys configuradas (cuenta gratuita en cloud.langfuse.com), además se envían trazas completas a la UI de Langfuse.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages