7913116a8e
- .claude/agents/fn-analizador/SKILL.md - .claude/agents/fn-constructor/SKILL.md - .claude/agents/fn-executor/SKILL.md - .claude/agents/fn-mejorador/SKILL.md - .claude/agents/fn-orquestador/SKILL.md - .claude/agents/fn-recopilador/SKILL.md - .claude/commands/app.md - .claude/commands/compile.md - .claude/commands/cpp-app.md - .claude/commands/create_functions.md - ... Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
5.8 KiB
5.8 KiB
name, kind, lang, domain, version, purity, signature, description, tags, uses_functions, uses_types, returns, returns_optional, error_type, imports, params, output, tested, tests, test_file_path, file_path
| name | kind | lang | domain | version | purity | signature | description | tags | uses_functions | uses_types | returns | returns_optional | error_type | imports | params | output | tested | tests | test_file_path | file_path | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| agent_scaffold | pipeline | bash | pipelines | 1.0.0 | impure | agent_scaffold(id: string, --display-name string, [--skills cat/skill,...], [--llm provider], [--model model], [--description string], [--tags tags], [--no-register], [--no-commit], [--dry-run]) -> json | Crea un agente nuevo en agents_and_robots/agents/<id>/ listo para arrancar. Copia el _template/, adapta config.yaml (id, name, version, template:false, llm, skills, matrix env vars), valida skills declaradas, registra el bot en Synapse via bin/register y hace commit en el repo. |
|
|
false | error_go_core |
|
JSON con campos: status (ok/error), id, agent_dir (path relativo al registry), skills_enabled (array), registered (bool), committed (bool), message (advertencias si las hay). | false | bash/functions/pipelines/agent_scaffold.sh |
Ejemplo
# Crear agente basico con openai
export FN_REGISTRY_ROOT=$HOME/fn_registry
bash bash/functions/pipelines/agent_scaffold.sh monitor-bot \
--display-name "Monitor Agent" \
--description "Monitorea servicios y reporta estado" \
--tags "monitor,ops" \
--llm openai \
--model gpt-4o
# Crear agente con skills habilitadas y claude-code
bash bash/functions/pipelines/agent_scaffold.sh devops-bot \
--display-name "DevOps Bot" \
--skills devops/deploy-service,system/health-check \
--llm claude-code \
--description "Bot para operaciones de infraestructura" \
--no-register --no-commit
# Ver plan sin modificar nada
bash bash/functions/pipelines/agent_scaffold.sh test-bot \
--display-name "Test Bot" \
--skills devops/deploy-service \
--description "Bot de prueba" \
--no-register --no-commit --dry-run
Salida JSON
{
"status": "ok",
"id": "monitor-bot",
"agent_dir": "projects/element_agents/apps/agents_and_robots/agents/monitor-bot",
"skills_enabled": ["devops/deploy-service"],
"registered": true,
"committed": true
}
Estructura generada
agents/<id>/
config.yaml # Adaptado desde _template, con id/name/version/template:false
agent.go # Copiado del template (reglas puras — editar despues)
prompts/
system.md # Stub minimo si el del template era generico
knowledge/ # Directorio creado si faltaba
Pasos del pipeline
- Localizar el proyecto
agents_and_robotsenprojects/element_agents/apps/agents_and_robots/ - Validar que el id es valido (snake/kebab-case, sin espacios, no existe ya)
- Copiar
agents/_template/aagents/<id>/, eliminartemplate_para_llm.mdyPERSONALITIES.md - Editar
config.yaml: id, name, version, template:false, description, tags, role, llm.provider, llm.model, api_key_env, skills (si aplica), matrix user_id/tokens/crypto paths - Validar que cada
cat/skilldeclarada en--skillsexiste comoskills/<cat>/<name>/SKILL.md - Crear
prompts/system.mdyknowledge/si no existen o son el stub del template - Si no
--no-register: compilarbin/registersi falta y ejecutar registro en Synapse - Si no
--no-commit:git add agents/<id>/ && git commit "feat: scaffold agent <id>" - Emitir JSON de resultado
Variables de entorno requeridas
| Variable | Requerida para | Descripcion |
|---|---|---|
FN_REGISTRY_ROOT |
siempre (o ejecutar desde la raiz) | Raiz del fn_registry |
MATRIX_ADMIN_TOKEN |
paso 7 (registro) | Token de admin de Synapse |
Comportamiento de errores
- Si
agents_and_robots/no existe: error fatal, no crea nada - Si el id ya existe: error fatal, no sobreescribe
- Si una skill no existe: error fatal con lista de skills disponibles
- Si
bin/registerno compila o falta MATRIX_ADMIN_TOKEN: advertencia en JSON, continua sin registrar - Si el git commit falla: advertencia en JSON, el agente queda creado en disco
Notas
El pipeline NO hace push al remote ni arranca el agente. Estos pasos quedan pendientes:
- Editar
agents/<id>/agent.gopara personalizar las reglas de decision (puro) - Editar
agents/<id>/prompts/system.mdcon el system prompt real - Registrar el blank import en
cmd/launcher/main.go(ver.claude/rules/create_agent.md) - Reconstruir el launcher:
go build -tags goolm ./... - Arrancar:
./dev-scripts/server/restart.sh - Push:
/full-git-pushdesde el proyecto