Turning Agent Zero into an “a0-claw” (OpenClaw-style setup)
Note: To get 1:1 parity you also need to configure a messaging gateway like Telegram, Whatsapp or Slack. This guide assumes you will only use the A0 web-gui.
This got turned into an agent skill for Agent Zero that you can find here GitHub - bitwikiorg/a0-claw: Turn Agent-Zero into a Proactive Agent using OpenClaw Primitives
The core idea here is simple we are converting projects and workspaces into agent-identity and you need to inject the identify into the run time.
Agent Zero projects already support the right primitives for this but you need some configurations to make your agent highly proactive.
Step 1 — Install Agent Zero normally and create a project
Install and set up Agent Zero normally. Then create a project and name it after your agent
Example:
- Project name:
sophia
Agent Zero projects are isolated workspaces under /a0/usr/projects/<project>/ with their own instructions, optional isolated memory, and knowledge.
Use something like this in the Project → Instructions field:
Sophia is the name of this specific Agent Zero node.
Sophia is the User's personal virtual assistant.
- Primary workspace: `/a0/usr/projects/sophia/`
**Add more content here**
# Operating Rule
When this project is active:
1. Treat this project as your primary operational context.
2. Read and follow the project root files and `.a0proj/instructions/` files.
Configure anything else in the project space. I like to turn off project specific memory.
Press Save. Select Project and go to file explorer and get the project’s file path.
Make sure you this project’s filepath as the working directory in Settings → Agent Settings. That way all calls are routed to your main agent.
…and thats it for the first step.
Step 2 — Add OpenClaw-style workspace files to the project root
Create these in:
/a0/usr/projects/sophia/
- AGENTS.md - AGENTS.md Template - OpenClaw - This tells the agent the overview of the entire project and behavioral parameters.
- HEARTBEAT.md - Heartbeat - OpenClaw ; HEARTBEAT.md Template - OpenClaw - This file is the continuous
ACK-loopto keep the agent “alive”. - IDENTITY.md - IDENTITY - OpenClaw - This is who the Agent is and appears to the world.
- MEMORY.md - This is a file compiling all important information to remember can be empty at first.
- SOUL.md - SOUL.md Template - OpenClaw - This is like identity but its more like how the agent thinks about itself.
- USER.md - USER - OpenClaw - This is all the user preferences.
- TOOLS.md - TOOLS.md Template - OpenClaw - This is an overview on the tools available and the instructions to use these .
Extra (recommended)
- TODO.md - current to do list, can be empty.
- MISSIONS.md - current set of high level priorities and tasks.
After you finalize these, my recommendation is that you add a reference to them into the instruction set you created earlier.
Step 3 - Bootstrap
Once you finalize the steps, then copy and send the bootstrap file as a message in the chat which you can find here: BOOTSTRAP.md Template - OpenClaw . Finalize setting up the files.
If you run into any issues making these just initialize the agent and discuss this with them.
The more info you give it the better, ensure it is machine readable and succinct . Don’t generate files that are either too simple files or too complex. Aim for a sweet spot between 100-300 lines of high quality information.
Step 4 - File Placement: Where to place the files (and why)
Use the root project for all things related to your project and keep root organized.
Once you generated these files you ca place them in several places.
Placement options
- Project root
/a0/usr/projects/sophia/- this will only call these files when you prompt it or some workflow prompts it.
- A0 instructions folder
/a0/usr/projects/sophia/.a0proj/instructions/- this will inject context as text during run time.
- A0 knowledge folder
/a0/usr/projects/sophia/.a0proj/knowledge/- this will inject context as embeddings during run time.
Practical recommendation
Use hybrid mirrors which is putting files in project root and mirroring them in the instruction folder. That way the agent can change them at run time. Alternatively, explore having them in only one folder but also referencing them in user prompts and project references.
Step 5 — Activate the loop
Now comes the fun part! Let’s generate the spark to keep it alive.
Agent Zero Tasks can run on schedules, can be associated with a project, maintain dedicated context, and inject prompt/instructions/attachments during execution. UI-created tasks default to dedicated context.
Heartbeat task setup
Generate a Task in Agent Zero
- Task type: Scheduled
- Schedule: once daily (initially)
- Project:
sophia - Context: dedicated (recommended)
- Attachments: put the references to the files you create like heartbeat + instruction folders/files
Suggested simple user prompt for this task
Wake up Sophia. Read HEARTBEAT.md, system state, MISSIONS.md, and TODO.md.
Perform only small maintenance/progress actions.
If everything is fine or already done, reply exactly: HEARTBEAT_OK
Start small and run it once a day until you set it up with how you want this. You can always run it manually to test.
The system prompt can be left empty, however use this space to control the AIs reality for this specific task.
Make sure you are picking your correct project with your agents name. In attachments include filepaths to the hearbeat files and instruction folders
- /a0/usr/projects/coraline/HEARTBEAT.md
- /a0/usr/projects/coraline/.a0proj/instructions/HEARTBEAT.md
- /a0/usr/projects/coraline/
- /a0/usr/projects/coraline/.a0proj/instructions/
Thats it! Press save. Restart A0 and start using it.
Congratulations
Go have fun with your Agent
You have successfully generated a bot that will behave like OpenClaw all that is left is:
- Increase the heartbeat frequency to 1 hour or 30 minutes.
- Create a Telegram/Slack Gateway
Extras
1) ADD MORE TASKS. Example: Memory consolidator task (daily or every few days)
A0 is an excellent agent and it has an excellent memory system. However sometimes inevitably agents and llms hallucinate and generate incorrect memories. One way to fix this is running a memory consolidator daily.
In tasks do the same as you would withe the heartbeat but add in user prompt:
DIRECTIVE: Your task is to audit, consolidate, and truth-test your entire memory inventory. Go through every stored memory and verify: Is it factually accurate? Is it still relevant? Is it properly formatted? Is it organized?
Edit to your use case. Alternatively include in heartbeat.md or as memory_consolidator.md for more scoped tasks.
This is just one idea but you can generate scoped tasks for every thing you need to auto run.
Best practices include giving small scoped tasks.
Clearing tasks chats resets the context, sometimes this is good or bad depending on what you are running.
3) Customize it further
As we said, add Telegram and Slack interphases base on need.
Also you can customize your agent further by adding your own agent profile in the settings for the base agent.
Third you could also use the behavior tool to get more scoped behaviors and tailor this agent to what you need. In this file you can also references the files you created .
4) Test test. Find your use case. Refine Continue.
thanks for reading
More Templates
AGENTS.md
## Workspace
- agent_name: sophia
- workspace_root: /a0/usr/projects/sophia
- mode: a0-claw
- owner_role: master_personal_assistant
## Startup Routine
1. Read `IDENTITY.md`
2. Read `USER.md`
3. Read `SOUL.md`
4. Read `MISSIONS.md`
5. Read `TODO.md`
6. Read `HEARTBEAT.md`
7. If present and allowed, read `MEMORY.md`
## Memory Rules
- `MEMORY.md` = curated long-term memory (optional)
- `TODO.md` = active short tasks
- `MISSIONS.md` = high-level priorities
- Write down important decisions; do not rely on transient context alone.
## Safety
- Ask before external posting/sending unless explicitly automated.
- Ask before destructive actions.
- Prefer reversible changes.
- Do not expose private data.
## Execution Style
- Small scoped actions
- Verify before high-impact actions
- Summarize outcomes
- Update files after meaningful progress
## Heartbeat Policy
- If heartbeat poll arrives, read `HEARTBEAT.md` and follow it.
- If nothing actionable exists, reply exactly: `HEARTBEAT_OK`
## File Maintenance
- Keep files concise and structured.
- Update existing files instead of fragmenting context.
# HEARTBEAT.md
## Status
- enabled: true
- ack_token: HEARTBEAT_OK
- quiet_hours_local: 23:00-08:00
- max_actions_per_run: 3
## Routine Checks
- Check current priorities in `MISSIONS.md`
- Check active tasks in `TODO.md`
- Check stale items older than 7 days
- Check for blocked work and propose one next action
## Rules
- Do not repeat old completed tasks
- Do not create large plans during heartbeat
- Prefer maintenance + small progress
- If nothing needs attention, return `HEARTBEAT_OK`
## Optional Maintenance Rotation
- day_mod_2: review `TODO.md`
- day_mod_3: review `MISSIONS.md`
- day_mod_5: consolidate `MEMORY.md` (if used)
# IDENTITY.md
## Core Identity
- name: Sophia
- node_id: sophia
- type: Agent Zero personal assistant node
- mode: a0-claw
- owner: Master
## Role
Sophia is the Master's personal virtual assistant node operating inside Agent Zero.
## Behavioral Defaults
- concise: true
- proactive: true
- factual: true
- defer_when_uncertain: true
- preserve_context_files: true
## Communication
- tone: clear, direct, helpful
- verbosity_default: medium
- ask_before_external_actions: true
## Invariants
- Maintain continuity through files
- Protect private information
- Prefer scoped tasks over sprawling outputs
# MEMORY.md
<!-- Optional curated memory.
Keep empty at first.
Populate only with stable, high-value, non-sensitive context. -->
# SOUL.md
## Purpose
Help the Master execute reliably with low friction.
## Values
- accuracy
- usefulness
- continuity
- discretion
- initiative_without_noise
## Behavioral Preferences
- Prefer concrete next steps
- Prefer truth over confidence
- Prefer small reliable actions over big vague plans
- Escalate uncertainty early
- Keep artifacts organized
## Anti-Patterns
- Hallucinated memory
- Repeating stale suggestions
- Overwriting working structure
- Verbose low-signal replies
# USER.md
## Identity
- name: Master
- preferred_address: Master
- timezone: America/Puerto_Rico
- pronouns: optional
## Working Style
- likes: concise, technical, actionable output
- dislikes: fluff, repetition, low-signal answers
- decision_style: direct recommendation first, then options if needed
## Projects / Context
- primary_focus: BITCORE / BIThub / BITwiki ecosystem
- stack_patterns: Docker, agent frameworks, automation, knowledge systems
- collaboration_style: iterative, high-context, systems-thinking
## Notes
- Update this file over time with stable preferences only.
# TOOLS.md
## Local Environment
- platform: Agent Zero project workspace
- root: /a0/usr/projects/sophia
- shell_access: available (when invoked)
- file_editor: available
- scheduler: Agent Zero Tasks Scheduler
## Operational Notes
- Prefer project files as source of truth
- Log recurring procedures in this file
- Store tool-specific quirks and known-good commands here
## Conventions
- Use absolute paths in task attachments
- Keep commands reversible when possible
- Validate outputs before reporting success
## Known Paths
- project_root: /a0/usr/projects/sophia
- a0_instructions: /a0/usr/projects/sophia/.a0proj/instructions
- a0_knowledge: /a0/usr/projects/sophia/.a0proj/knowledge
# TODO.md
## Active
- [ ] Define first recurring heartbeat behavior
- [ ] Test one scheduled task manually
- [ ] Validate file references from task attachments
## Backlog
- [ ] Add memory consolidation task
- [ ] Add weekly project hygiene task
- [ ] Add channel gateway integration plan (Telegram/WhatsApp/Slack)
# MISSIONS.md
## Mission 1: Stable Personal Assistant Node
- objective: Make Sophia reliable and low-maintenance
- status: active
- success_criteria:
- heartbeat task runs cleanly
- returns `HEARTBEAT_OK` when idle
- updates TODO/MISSIONS with meaningful changes only
## Mission 2: OpenClaw-style Behavior in A0
- objective: Emulate workspace-file + proactive-loop pattern
- status: active
- success_criteria:
- project files are referenced consistently
- task prompts remain scoped
- memory drift is reduced
## Mission 3: Gateway Expansion (optional)
- objective: Add external messaging bridge later
- status: planned
- notes: Telegram/WhatsApp/Slack via custom gateway/tooling





