diff --git a/.claude/CLAUDE.md b/.claude/CLAUDE.md index d1efc58..98f21eb 100644 --- a/.claude/CLAUDE.md +++ b/.claude/CLAUDE.md @@ -56,7 +56,9 @@ shell/mcp/ cliente y servidor MCP (Model Context Protocol) shell/skills/ loader (filesystem) + executor (scripts) shell/effects/ Runner: []Action → side effects shell/bus/ comunicacion inter-agente -agents/runtime.go Agent{}: ensambla core + shell +agents/types.go Runner interface (comun a Agent y Robot) +agents/runtime.go Agent{}: ensambla core + shell (runtime completo con LLM) +agents/robot.go Robot{}: runtime ligero command-only (sin LLM, reglas, memoria) agents// agent.go (reglas puras) + config.yaml + prompts/system.md tools/ tool registry + tool implementations (subpackages) tools/mcptools/ bridge: convierte MCP tools → tools.Tool @@ -97,18 +99,22 @@ Guias detalladas en `.claude/rules/index.md`: | Regla | Cuando | |-------|--------| -| `create_agent.md` | Crear nuevo bot/agente | +| `create_agent.md` | Crear nuevo bot/agente/robot | | `create_tool.md` | Añadir tool para function calling | | `create_command.md` | Añadir comando !xxx | | `create_issue.md` | Crear issue en dev/issues/ | | `fix_issue.md` | Implementar un issue existente | -## Agentes +## Agentes y Robots -| ID | LLM | Descripcion | -|----|-----|-------------| -| assistant-bot | GPT-4o | Asistente general, DMs | -| asistente-2 | GPT-4o | Asistente con tools | +Dos tipos de runtime: **Agent** (completo, con LLM) y **Robot** (ligero, solo comandos). +Config: `agent.type: "agent"` (default) o `agent.type: "robot"`. +Templates: `agents/_template/` (agent) y `agents/_template_robot/` (robot). + +| ID | Tipo | LLM | Descripcion | +|----|------|-----|-------------| +| assistant-bot | agent | GPT-4o | Asistente general, DMs | +| asistente-2 | agent | GPT-4o | Asistente con tools | ## Build diff --git a/.claude/rules/create_agent.md b/.claude/rules/create_agent.md index a2864bb..6c713e0 100644 --- a/.claude/rules/create_agent.md +++ b/.claude/rules/create_agent.md @@ -1,20 +1,40 @@ -# Policy: Crear un nuevo agente +# Policy: Crear un nuevo agente o robot -Guía ejecutable para Claude. Seguir paso a paso sin desviarse. +Guia ejecutable para Claude. Seguir paso a paso sin desviarse. + +## Robot vs Agent — decidir primero + +| | Agent | Robot | +|---|---|---| +| **Cuando usar** | Necesita LLM, reglas, memoria, tools | Solo responde comandos (!xxx) | +| **Runtime** | `agents.New()` — completo | `agents.NewRobot()` — ligero | +| **Config type** | `type: agent` (default) | `type: robot` | +| **LLM** | Si | No | +| **Reglas** | Si (`agent.go` con `Rules()`) | No (sin `agent.go`) | +| **Memoria/Knowledge/Skills** | Si (opcionales) | No | +| **Tools** | Si (opcionales) | No | +| **System prompt** | Si (`prompts/system.md`) | No necesario | +| **Comandos built-in** | help, ping, tools, tool, status, info, clear, prompts, version | help, ping, status, info, version | +| **Comandos custom** | Si (`RegisterCommand`) | Si (`RegisterCommand`) | +| **Template** | `agents/_template/` | `agents/_template_robot/` | +| **Config ejemplo** | ~260 lineas | ~55 lineas | + +**Regla**: si el bot necesita entender lenguaje natural, es un Agent. Si solo necesita comandos directos, es un Robot. ## Inputs — preguntar al usuario si no los da | Input | Requerido | Default | Ejemplo | |-------|-----------|---------|---------| -| `agent-id` | sí | — | `monitor-bot` | -| `display-name` | sí | — | `"Monitor Agent"` | -| `description` | sí | — | `"Monitorea servicios y reporta estado"` | -| `llm.provider` | no | `openai` | `openai` o `anthropic` | -| `llm.model` | no | `gpt-4o` | `gpt-4o`, `claude-sonnet-4-20250514` | -| `tool_use` | no | `false` | `true` si necesita herramientas | -| System prompt | sí | — | Texto describiendo rol y capacidades | +| `agent-id` | si | — | `monitor-bot` | +| `display-name` | si | — | `"Monitor Agent"` | +| `description` | si | — | `"Monitorea servicios y reporta estado"` | +| `type` | no | `agent` | `agent` o `robot` | +| `llm.provider` | no (N/A para robots) | `openai` | `openai` o `anthropic` | +| `llm.model` | no (N/A para robots) | `gpt-4o` | `gpt-4o`, `claude-sonnet-4-20250514` | +| `tool_use` | no (N/A para robots) | `false` | `true` si necesita herramientas | +| System prompt | si (N/A para robots) | — | Texto describiendo rol y capacidades | -Si el usuario da todos los inputs, ir directo a la Ruta Rápida. Si faltan, preguntar antes de empezar. +Si el usuario da todos los inputs, ir directo a la Ruta Rapida. Si faltan, preguntar antes de empezar. ## Ruta rápida — script automatizado