Cos'è SOUL.md?
Ogni agente OpenClaw ha un file chiamato SOUL.md che funge da livello di identità fondamentale. È un semplice file Markdown che definisce la personalità dell'agente, lo stile di comunicazione, i valori fondamentali e le barriere comportamentali. OpenClaw legge questo file all'avvio e lo applica come prompt a livello di sistema a ogni interazione — che il proprio agente stia rispondendo a un messaggio mattutino, redigendo un'email o eseguendo un'attività programmata alle 3 di notte.
A differenza dei chatbot tradizionali che resettano la loro personalità ad ogni conversazione, il proprio agente OpenClaw mantiene un senso di sé coerente attraverso SOUL.md. Lo stesso tono, le stesse priorità, le stesse regole — sempre.
Dove Si Trova?
SOUL.md si trova in:
~/.openclaw/agents/<agent_id>/SOUL.md
Se si ha un solo agente (quello predefinito), il percorso è tipicamente ~/.openclaw/agents/default/SOUL.md. OpenClaw crea un SOUL.md minimale durante l'onboarding, ma la maggior parte degli utenti lo personalizza pesantemente nel tempo.
Anatomia di un Buon SOUL.md
Un SOUL.md ben strutturato ha quattro sezioni:
1. Identità
Chi è l'agente? Qual è il suo nome? Qual è il suo ruolo?
# Identity
You are Atlas, a technical assistant for a software engineering team.
You work for Acme Corp. Your primary user is Sarah, the lead engineer.
2. Stile di Comunicazione
Come dovrebbe parlare l'agente? Formale o informale? Conciso o dettagliato?
# Communication Style
- Be concise. Prefer bullet points over paragraphs.
- Never use emojis unless the user does first.
- Default to English. Switch to Chinese if the user writes in Chinese.
- When explaining technical concepts, use analogies.
3. Valori Fondamentali e Regole
Limiti comportamentali non negoziabili. Questa è la sezione più importante per la sicurezza e l'allineamento.
# Rules
- Never delete files without explicit confirmation.
- Never send messages to contacts unless specifically asked.
- Always summarize what you plan to do before executing multi-step tasks.
- If you are unsure about something, say so. Do not guess.
- Never share API keys, passwords, or sensitive data in chat messages.
4. Conoscenza del Dominio
Contesto a cui l'agente dovrebbe sempre avere accesso.
# Context
- Our tech stack: Next.js, PostgreSQL, Redis, deployed on AWS
- Sprint cycle: 2-week sprints, standup at 9:30 AM PST daily
- Code style: We follow the Airbnb ESLint config
- Jira project key: ACME
Esempi dal Mondo Reale
Il Minimalista
You are a helpful assistant. Be brief. Confirm before destructive actions.
Questo funziona. SOUL.md non deve essere lungo. Ma istruzioni specifiche producono comportamenti specifici.
L'Assistente Esecutivo
# Identity
You are Monday, a personal executive assistant.
# Style
- Professional but warm tone
- Proactive: suggest follow-ups after completing tasks
- Morning briefing at 8 AM: calendar, unread messages, weather, top news
# Rules
- Never schedule meetings without checking calendar conflicts first
- Always include timezone when mentioning times
- Summarize long emails in 3 bullet points before forwarding
L'Agente DevOps
# Identity
You are Ops, a DevOps automation agent for a small startup.
# Style
- Terse, terminal-style responses
- Use code blocks for all commands
- No pleasantries
# Rules
- Never run destructive commands (rm -rf, DROP TABLE, force push) without confirmation
- Log all infrastructure changes to #ops-log channel
- Alert on-call if any health check fails twice in a row
# Context
- Infrastructure: 3 EC2 instances, RDS PostgreSQL, CloudFront CDN
- Monitoring: Datadog, PagerDuty
- Deploy: GitHub Actions -> ECR -> ECS
Suggerimenti per Scrivere Anime Migliori
- 1.Essere specifici, non vaghi. "Sii utile" non produce nulla. "Massimo 5 punti elenco, conferma prima della cancellazione dei file" produce un comportamento coerente.
- 2.Iniziare in breve, iterare. Iniziare con 10 righe. Aggiungere regole solo quando si nota che l'agente fa qualcosa che non si desidera. Ogni riga in SOUL.md dovrebbe meritare il proprio posto.
- 3.Testare con casi limite. Chiedere all'agente di fare qualcosa di ambiguo o rischioso. Osservare come risponde. Regolare le regole.
- 4.Usare l'agente per scrivere la propria anima. Dopo una settimana di utilizzo, chiedere all'agente: "Basandoti sulle nostre interazioni finora, suggerisci miglioramenti al tuo SOUL.md." Spesso identifica lacune che si sono sfuggite.
- 5.Mantenerlo sotto le 2.000 parole. SOUL.md viene caricato in ogni prompt. Un'anima gonfiata spreca token e diluisce le regole importanti. Se si ha bisogno di conoscenza di dominio estesa, utilizzare le skill o la memoria.
SOUL.md vs. Skill vs. Memoria
| Livello | Scopo | Persistenza |
|---|---|---|
| SOUL.md | Identità, tono, regole | Sempre caricato |
| Skill | Capacità (cosa l'agente sa fare) | Caricato su richiesta |
| Memoria | Fatti appresi nel tempo | Cresce nel tempo |
SOUL.md definisce chi è l'agente. Le skill definiscono cosa può fare. La memoria definisce cosa sa. Tutti e tre lavorano insieme, ma SOUL.md è la base che modella come vengono utilizzate le skill e come vengono interpretati i ricordi.
Per Iniziare
- 1.Aprire il proprio SOUL.md:
nano ~/.openclaw/agents/default/SOUL.md - 2.Scrivere la propria identità, stile e regole
- 3.Riavviare OpenClaw:
openclaw restart - 4.Testare chattando con il proprio agente e osservando il tono e il comportamento
- 5.Iterare
L'anima del proprio agente è solo testo Markdown. Se si sa scrivere un documento, si può creare un agente che sembri proprio.
Per ulteriori esempi e template contribuiti dalla comunità, consultare il riferimento ufficiale SOUL.md e il progetto template soul.md.