Agentes Personalizados
Los agentes de EXODUS utilizan archivos de configuración TOML simples con prompts de sistema modulares almacenados en archivos Markdown separados.
Estructura del Agente
exodus/agents/
├── single/ # Configuraciones TOML del Agente
│ ├── triage_agent.toml
│ └── recon_agent.toml
└── prompts/ # Archivos Markdown de prompt
├── common.md
└── recon_agent.md
Configuración Básica
[agent]
name = "recon_agent"
description = "Expert in reconnaissance and enumeration"
system_prompt = ["common.md", "recon_agent.md"] # Cargar múltiples archivos prompt
tools = ["core_bash"]
handoffs = ["triage_agent", "web_exploit_agent"]
[agent.llm]
model = "gemini/gemini-2.5-pro"
temperature = 0.5
Opciones de System Prompt
Opción 1: Prompts Modulares (Recomendado)
system_prompt = ["common.md", "recon_agent.md"] # Carga desde exodus/agents/prompts/
Opción 2: Archivo Único
system_prompt = ["recon_agent.md"]
Opción 3: Texto en Línea
system_prompt = "You are a pentesting expert. Analyze targets."
Opciones de Configuración del Agente
- name: Identificador único del agente
- description: Breve descripción para transferencias
- system_prompt: Cadena o array de archivos
.mddeprompts/ - tools: Lista de nombres de herramientas (ej.,
["core_bash"]) - handoffs: Otros agentes a los que transferir el control
- max_iterations: Sobrescribir límite de iteraciones global (opcional)
Configuración LLM Por Agente
[agent.llm]
model = "gemini/gemini-2.5-pro" # Sobrescribir modelo por defecto
temperature = 0.7 # Aleatoriedad (0-2)
max_tokens = 100000 # Longitud máxima de respuesta
max_context_tokens = 700000 # Tokens máximos en el contexto
Delegaciones de Agente (Handoffs)
EXODUS soporta delegación dinámica de agentes donde los agentes pueden transferir el control a otros agentes especializados durante la ejecución:
[agent]
name = "triage_agent"
description = "Enruta peticiones a agentes especializados"
system_prompt = "Analiza la petición del usuario y delega al experto apropiado."
tools = []
handoffs = ["security_expert", "code_analyst", "recon_specialist"]
[agent.llm]
temperature = 0.3
Cómo funciona:
- El agente analiza la tarea y determina si otro agente está más capacitado
- Llama a
transfer_to_{agent_name}con una razón para la delegación - El agente destino recibe el contexto y continúa la ejecución
- La memoria compartida preserva el historial de conversación a través de delegaciones
- El
max_iterationsglobal previene bucles infinitos en todos los agentes
Gestión del Contexto
EXODUS incluye una estrategia de contexto para manejar misiones de larga duración sin exceder los límites de tokens del LLM ni perder información crítica.
Cuando el historial de conversación de un agente se acerca al límite de max_context_tokens, EXODUS automáticamente:
- Detecta el umbral: Se activa cuando los tokens actuales alcanzan el 90% del límite.
- Auto-Resumen: Usa el LLM del agente para analizar el 60% más antiguo de la conversación.
- Extracción de Puntos Clave: Genera un resumen técnico que preserva entidades, resultados de herramientas y tareas pendientes.
- Actualización de Memoria: Reemplaza los mensajes antiguos con un único mensaje de resumen, liberando contexto para nuevas interacciones.
Configuración
Puedes habilitar y ajustar este comportamiento en tu settings.toml o configuración por agente:
[llm]
# Defecto global (opcional)
default_max_context_tokens = 700000
# Sobrescritura por agente en el TOML del agente
[agent.llm]
max_context_tokens = 500000