d05ec0bd57
Setear working_dir a /tmp/claude-agents/<agent-id> en assistant-bot y asistente-2, evitando que claude -p herede el CWD del launcher (raiz del repo). El directorio se crea automaticamente al arrancar gracias al MkdirAll añadido en el commit anterior. Se mantiene bypassPermissions ya que el aislamiento real viene del working_dir — sin acceso al repo, el bypass no expone codigo fuente. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
299 lines
6.5 KiB
YAML
299 lines
6.5 KiB
YAML
# ============================================
|
|
# IDENTIDAD
|
|
# ============================================
|
|
agent:
|
|
id: asistente-2
|
|
name: "Asistente 2"
|
|
version: "1.0.0"
|
|
enabled: true
|
|
description: "Asistente con herramientas. Puede responder preguntas y consultar la hora actual."
|
|
tags: [assistant, llm, tools]
|
|
|
|
# ============================================
|
|
# PERSONALIDAD Y COMPORTAMIENTO
|
|
# ============================================
|
|
personality:
|
|
tone: friendly
|
|
verbosity: concise
|
|
language: es
|
|
languages_supported: [es, en]
|
|
emoji_style: minimal
|
|
prefix: "🛠️"
|
|
error_style: helpful
|
|
|
|
templates:
|
|
greeting: "Hola, soy asistente-2. ¿En qué puedo ayudarte?"
|
|
unknown_command: "No entiendo ese comando. Escríbeme directamente lo que necesitas."
|
|
permission_denied: "No tengo permiso para hacer eso."
|
|
error: "Algo salió mal: {{.Error}}"
|
|
success: "{{.Summary}}"
|
|
busy: "Procesando tu solicitud anterior, dame un momento..."
|
|
|
|
behavior:
|
|
proactive: false
|
|
ask_confirmation: false
|
|
show_reasoning: false
|
|
thread_replies: true
|
|
typing_indicator: true
|
|
acknowledge_receipt: false
|
|
|
|
# ============================================
|
|
# LLM — CONEXIÓN Y RAZONAMIENTO
|
|
# ============================================
|
|
llm:
|
|
primary:
|
|
provider: claude-code
|
|
model: ""
|
|
api_key_env: ""
|
|
base_url: ""
|
|
max_tokens: 4096
|
|
temperature: 0.7
|
|
claude_code:
|
|
binary: "claude"
|
|
timeout: 3m
|
|
disable_tools: true # no ejecuta herramientas internas de claude
|
|
allowed_tools: []
|
|
disallowed_tools: []
|
|
working_dir: "/tmp/claude-agents/asistente-2"
|
|
permission_mode: "bypassPermissions"
|
|
model: "sonnet"
|
|
fallback_model: ""
|
|
session_id: ""
|
|
add_dirs: []
|
|
|
|
# Fallback desactivado — solo claude-code
|
|
fallback:
|
|
provider: ""
|
|
model: ""
|
|
api_key_env: ""
|
|
base_url: ""
|
|
max_tokens: 0
|
|
temperature: 0
|
|
|
|
reasoning:
|
|
system_prompt_file: "prompts/system.md"
|
|
context_window: 16384
|
|
memory_messages: 30
|
|
|
|
tool_use:
|
|
enabled: true # herramientas HABILITADAS
|
|
max_iterations: 5
|
|
parallel_calls: false
|
|
|
|
rate_limit:
|
|
requests_per_minute: 60
|
|
tokens_per_minute: 200000
|
|
concurrent_requests: 5
|
|
|
|
# ============================================
|
|
# TOOLS — current_time habilitada
|
|
# ============================================
|
|
tools:
|
|
ssh:
|
|
enabled: false
|
|
allowed_targets: []
|
|
forbidden_commands: []
|
|
timeout: 0s
|
|
max_concurrent: 0
|
|
require_confirmation: []
|
|
|
|
http:
|
|
enabled: false
|
|
allowed_domains: []
|
|
timeout: 0s
|
|
max_retries: 0
|
|
|
|
scripts:
|
|
enabled: false
|
|
scripts_dir: ""
|
|
allowed: []
|
|
timeout: 0s
|
|
sandbox: false
|
|
|
|
file_ops:
|
|
enabled: false
|
|
allowed_paths: []
|
|
read_only: true
|
|
|
|
mcp:
|
|
enabled: false
|
|
servers: []
|
|
expose:
|
|
port: 0
|
|
tools: []
|
|
|
|
memory:
|
|
enabled: true
|
|
|
|
knowledge:
|
|
enabled: true
|
|
|
|
# ============================================
|
|
# MEMORIA — ventana de conversación + hechos
|
|
# ============================================
|
|
memory:
|
|
enabled: true
|
|
window_size: 30
|
|
|
|
# ============================================
|
|
# MATRIX — CONEXIÓN Y ROOMS
|
|
# ============================================
|
|
matrix:
|
|
homeserver: "https://matrix-af2f3d.organic-machine.com"
|
|
user_id: "@asistente-2:matrix-af2f3d.organic-machine.com"
|
|
access_token_env: MATRIX_TOKEN_ASISTENTE_2
|
|
device_id: "IVECMVQWNZ"
|
|
|
|
encryption:
|
|
enabled: true
|
|
store_path: "./agents/asistente-2/data/crypto/"
|
|
pickle_key_env: PICKLE_KEY_ASISTENTE_2
|
|
trust_mode: tofu
|
|
recovery_key_env: SSSS_RECOVERY_KEY_ASISTENTE_2
|
|
|
|
rooms:
|
|
listen: []
|
|
respond: []
|
|
admin: []
|
|
|
|
filters:
|
|
command_prefix: "!"
|
|
mention_respond: true
|
|
dm_respond: true
|
|
ignore_bots: true
|
|
ignore_users: []
|
|
allowed_users: [] # vacío = sin restricción (todos pueden hablar)
|
|
unauthorized_response: silent # silent | explicit
|
|
min_power_level: 0
|
|
|
|
# ============================================
|
|
# COMUNICACIÓN INTER-AGENTES
|
|
# ============================================
|
|
agents:
|
|
peers:
|
|
- id: assistant-bot
|
|
capabilities: [general, llm]
|
|
room: ""
|
|
|
|
delegation:
|
|
enabled: false
|
|
can_delegate_to: []
|
|
can_receive_from: [assistant-bot]
|
|
max_delegation_depth: 1
|
|
timeout: 30s
|
|
|
|
protocol:
|
|
format: json
|
|
channel: matrix
|
|
heartbeat_interval: 60s
|
|
|
|
# ============================================
|
|
# SSH — no aplica para este bot
|
|
# ============================================
|
|
ssh:
|
|
defaults:
|
|
user: ""
|
|
port: 22
|
|
key_file_env: ""
|
|
known_hosts: ""
|
|
keepalive_interval: 0s
|
|
timeout: 0s
|
|
targets: {}
|
|
|
|
# ============================================
|
|
# PERMISOS Y SEGURIDAD
|
|
# ============================================
|
|
security:
|
|
roles:
|
|
admin:
|
|
users: ["@admin:matrix-af2f3d.organic-machine.com"]
|
|
actions: ["*"]
|
|
user:
|
|
users: ["*"]
|
|
actions: ["ask", "help", "summarize"]
|
|
|
|
audit:
|
|
enabled: false
|
|
log_file: "./agents/asistente-2/data/audit.log"
|
|
log_to_room: ""
|
|
include: []
|
|
|
|
secrets:
|
|
provider: env
|
|
|
|
# ============================================
|
|
# SCHEDULING — sin tareas automáticas
|
|
# ============================================
|
|
schedules: []
|
|
|
|
# ============================================
|
|
# OBSERVABILIDAD
|
|
# ============================================
|
|
observability:
|
|
logging:
|
|
level: info
|
|
format: json
|
|
output: stdout
|
|
file: "./agents/asistente-2/data/asistente-2.log"
|
|
|
|
metrics:
|
|
enabled: false
|
|
port: 9092
|
|
path: /metrics
|
|
export: prometheus
|
|
|
|
health:
|
|
enabled: true
|
|
port: 8082
|
|
path: /healthz
|
|
|
|
tracing:
|
|
enabled: false
|
|
provider: ""
|
|
endpoint: ""
|
|
|
|
# ============================================
|
|
# RESILIENCIA
|
|
# ============================================
|
|
resilience:
|
|
circuit_breaker:
|
|
failure_threshold: 5
|
|
timeout: 30s
|
|
half_open_max: 2
|
|
|
|
retry:
|
|
max_attempts: 2
|
|
backoff: exponential
|
|
initial_delay: 1s
|
|
max_delay: 10s
|
|
|
|
shutdown:
|
|
timeout: 10s
|
|
drain_messages: true
|
|
save_state: false
|
|
state_file: ""
|
|
|
|
queue:
|
|
enabled: true
|
|
max_size: 100
|
|
priority_users: ["@admin:matrix-af2f3d.organic-machine.com"]
|
|
|
|
# ============================================
|
|
# ALMACENAMIENTO Y ESTADO
|
|
# ============================================
|
|
storage:
|
|
state:
|
|
backend: sqlite
|
|
path: "./agents/asistente-2/data/asistente-2.db"
|
|
|
|
cache:
|
|
enabled: true
|
|
backend: memory
|
|
ttl: 5m
|
|
max_entries: 200
|
|
|
|
history:
|
|
backend: sqlite
|
|
path: "./agents/asistente-2/data/history.db"
|
|
retention: 168h # 7 días
|