feat: father-bot — agente del sistema que crea otros agentes via Matrix
Primer agente privilegiado en agents/_specials/. Usa provider claude-code con acceso completo al repositorio para ejecutar el pipeline de creacion de agentes de forma autonoma (scaffold, build, register, verify, restart). Archivos: - agent.go: reglas puras (DM/mention → LLM) - config.yaml: claude-code provider, bypassPermissions, E2EE, audit - prompts/system.md: guia completa de creacion con decision tree, convencion de IDs, validaciones y seccion anti-injection Config: claude-code con working_dir al repo, allowed_tools restringido, model sonnet, timeout 10m, add_dirs con templates y referencias. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,231 @@
|
||||
# ============================================
|
||||
# FATHER BOT — Agente privilegiado del sistema
|
||||
# ============================================
|
||||
# Crea otros agentes y robots via Matrix usando claude-code.
|
||||
# Ubicado en _specials/ por su rol de sistema. ACL admin-only.
|
||||
|
||||
agent:
|
||||
id: father-bot
|
||||
name: "Father Bot"
|
||||
version: "1.0.0"
|
||||
enabled: true
|
||||
description: "Agente del sistema que crea otros agentes y robots via Matrix. Acceso completo al repositorio."
|
||||
tags: [system, privileged, creator]
|
||||
|
||||
# ============================================
|
||||
# PERSONALIDAD Y COMPORTAMIENTO
|
||||
# ============================================
|
||||
personality:
|
||||
tone: technical
|
||||
verbosity: concise
|
||||
language: es
|
||||
languages_supported: [es, en]
|
||||
emoji_style: minimal
|
||||
prefix: ""
|
||||
error_style: detailed
|
||||
|
||||
role: "Arquitecto de agentes — crea, configura y despliega nuevos bots Matrix"
|
||||
backstory: "Soy el agente padre del sistema. Conozco la arquitectura completa del proyecto y puedo crear nuevos agentes o robots bajo demanda."
|
||||
expertise: [go, matrix, agent-architecture, devops, shell-scripting]
|
||||
limitations: ["No modifico agentes existentes sin confirmacion explicita", "No elimino agentes"]
|
||||
|
||||
communication:
|
||||
formality: semiformal
|
||||
humor: none
|
||||
personality: pragmatic
|
||||
response_style: structured
|
||||
quirks: []
|
||||
avoid_topics: []
|
||||
catchphrases: []
|
||||
|
||||
custom_directives:
|
||||
- "Siempre confirma el tipo (agent/robot) y el nombre antes de crear"
|
||||
- "Reporta cada paso del pipeline con resultado (exito/fallo)"
|
||||
- "Si algo falla, muestra el error y sugiere recovery"
|
||||
|
||||
templates:
|
||||
greeting: "Soy Father Bot. Puedo crear agentes y robots para este sistema. Describeme lo que necesitas."
|
||||
unknown_command: "Comando desconocido. Usa !help o describeme que agente necesitas crear."
|
||||
permission_denied: "Solo administradores pueden interactuar conmigo."
|
||||
error: "Error en la operacion: {{.Error}}"
|
||||
success: "{{.Summary}}"
|
||||
busy: "Estoy creando un agente, espera a que termine..."
|
||||
|
||||
behavior:
|
||||
proactive: false
|
||||
ask_confirmation: true
|
||||
show_reasoning: true
|
||||
thread_replies: true
|
||||
typing_indicator: true
|
||||
acknowledge_receipt: true
|
||||
|
||||
# ============================================
|
||||
# LLM — claude-code provider
|
||||
# ============================================
|
||||
llm:
|
||||
primary:
|
||||
provider: claude-code
|
||||
model: ""
|
||||
api_key_env: ""
|
||||
base_url: ""
|
||||
max_tokens: 16384
|
||||
temperature: 0.3
|
||||
|
||||
claude_code:
|
||||
binary: "claude"
|
||||
timeout: 10m
|
||||
disable_tools: false
|
||||
allowed_tools: [Bash, Read, Edit, Write, Glob, Grep]
|
||||
disallowed_tools: []
|
||||
working_dir: "/home/ubuntu/CodeProyects/agents_and_robots"
|
||||
permission_mode: "bypassPermissions"
|
||||
model: "sonnet"
|
||||
fallback_model: "haiku"
|
||||
session_id: ""
|
||||
add_dirs:
|
||||
- ".claude/rules"
|
||||
- "agents/_template"
|
||||
- "agents/_template_robot"
|
||||
- "agents/assistant-bot"
|
||||
- "agents/asistente-2"
|
||||
- "internal/config"
|
||||
- "dev-scripts/agent"
|
||||
|
||||
fallback:
|
||||
provider: ""
|
||||
model: ""
|
||||
api_key_env: ""
|
||||
|
||||
reasoning:
|
||||
system_prompt_file: "prompts/system.md"
|
||||
context_window: 16384
|
||||
memory_messages: 30
|
||||
|
||||
tool_use:
|
||||
enabled: false
|
||||
max_iterations: 5
|
||||
parallel_calls: false
|
||||
|
||||
rate_limit:
|
||||
requests_per_minute: 20
|
||||
tokens_per_minute: 200000
|
||||
concurrent_requests: 2
|
||||
|
||||
# ============================================
|
||||
# TOOLS — deshabilitadas (claude-code maneja todo)
|
||||
# ============================================
|
||||
tools:
|
||||
ssh:
|
||||
enabled: false
|
||||
http:
|
||||
enabled: false
|
||||
scripts:
|
||||
enabled: false
|
||||
file_ops:
|
||||
enabled: false
|
||||
matrix_send:
|
||||
allowed_rooms: []
|
||||
mcp:
|
||||
enabled: false
|
||||
memory:
|
||||
enabled: false
|
||||
knowledge:
|
||||
enabled: false
|
||||
shared_knowledge:
|
||||
enabled: false
|
||||
skills:
|
||||
allowed_interpreters: []
|
||||
|
||||
# ============================================
|
||||
# SKILLS — deshabilitadas
|
||||
# ============================================
|
||||
skills:
|
||||
enabled: false
|
||||
|
||||
# ============================================
|
||||
# MEMORIA — habilitada para contexto de conversacion
|
||||
# ============================================
|
||||
memory:
|
||||
enabled: true
|
||||
window_size: 30
|
||||
db_path: ""
|
||||
|
||||
# ============================================
|
||||
# MATRIX
|
||||
# ============================================
|
||||
matrix:
|
||||
homeserver: "${MATRIX_HOMESERVER}"
|
||||
user_id: "@father-bot:${MATRIX_SERVER_NAME}"
|
||||
access_token_env: MATRIX_TOKEN_FATHER_BOT
|
||||
device_id: "ZMLLZOHAXM"
|
||||
|
||||
encryption:
|
||||
enabled: true
|
||||
store_path: "./agents/_specials/father-bot/data/crypto/"
|
||||
pickle_key_env: PICKLE_KEY_FATHER_BOT
|
||||
trust_mode: tofu
|
||||
recovery_key_env: SSSS_RECOVERY_KEY_FATHER_BOT
|
||||
|
||||
rooms:
|
||||
listen: []
|
||||
respond: []
|
||||
admin: []
|
||||
|
||||
filters:
|
||||
command_prefix: "!"
|
||||
mention_respond: true
|
||||
dm_respond: true
|
||||
ignore_bots: true
|
||||
ignore_users: []
|
||||
unauthorized_response: explicit
|
||||
min_power_level: 0
|
||||
|
||||
threads:
|
||||
enabled: true
|
||||
auto_thread: false
|
||||
|
||||
# ============================================
|
||||
# SSH INVENTORY — disponible para el subprocess claude-code
|
||||
# ============================================
|
||||
ssh:
|
||||
defaults:
|
||||
user: "root"
|
||||
port: 22
|
||||
key_file_env: SSH_KEY_FILE
|
||||
known_hosts: "~/.ssh/known_hosts"
|
||||
keepalive_interval: 30s
|
||||
timeout: 60s
|
||||
targets: {}
|
||||
|
||||
# ============================================
|
||||
# SEGURIDAD
|
||||
# ============================================
|
||||
security:
|
||||
audit:
|
||||
enabled: true
|
||||
log_file: ""
|
||||
log_to_room: ""
|
||||
include: [command, llm_request, llm_response]
|
||||
|
||||
secrets:
|
||||
provider: env
|
||||
|
||||
sanitize:
|
||||
enabled: true
|
||||
mode: warn
|
||||
min_severity: medium
|
||||
disabled_patterns: []
|
||||
|
||||
tool_rate_limit:
|
||||
enabled: false
|
||||
|
||||
# ============================================
|
||||
# SCHEDULING
|
||||
# ============================================
|
||||
schedules: []
|
||||
|
||||
# ============================================
|
||||
# STORAGE
|
||||
# ============================================
|
||||
storage:
|
||||
base_path: ""
|
||||
Reference in New Issue
Block a user