Files
clawdbot/docs/agent.md
2025-12-20 16:52:11 +00:00

2.5 KiB
Raw Blame History

summary, read_when
summary read_when
Agent runtime (embedded Pi), workspace contract, and session bootstrap
Changing agent runtime, workspace bootstrap, or session behavior

Agent Runtime 🤖

CLAWDIS runs a single agent runtime: Pi (embedded, in-process).

Workspace (required)

You must set an agent home directory via inbound.workspace. CLAWDIS uses this as the agents only working directory (cwd) for tools and context.

Recommended: use clawdis setup to create ~/.clawdis/clawdis.json if missing and initialize the workspace files.

Bootstrap files (injected)

Inside inbound.workspace, CLAWDIS expects these user-editable files:

  • AGENTS.md — operating instructions + “memory”
  • SOUL.md — persona, boundaries, tone
  • TOOLS.md — user-maintained tool notes (e.g. imsg, sag, conventions)
  • BOOTSTRAP.md — one-time first-run ritual (deleted after completion)
  • IDENTITY.md — agent name/vibe/emoji
  • USER.md — user profile + preferred address

On the first turn of a new session, CLAWDIS injects the contents of these files directly into the agent context.

If a file is missing, CLAWDIS injects a single “missing file” marker line (and clawdis setup will create a safe default template).

Built-in tools (internal)

Pis embedded core tools (read/bash/edit/write and related internals) are defined in code and always available. TOOLS.md does not control which tools exist; its guidance for how you want them used.

Skills

Clawdis loads skills from three locations (workspace wins on name conflict):

  • Bundled (shipped with the install)
  • Managed/local: ~/.clawdis/skills
  • Workspace: <workspace>/skills

Skills can be gated by config/env (see skills.* in docs/configuration.md).

Sessions

Session transcripts are stored as JSONL at:

  • ~/.clawdis/sessions/<SessionId>.jsonl

The session ID is stable and chosen by CLAWDIS.

Steering while streaming

Incoming user messages are queued while the agent is streaming. The queue is checked after each tool call. If a queued message is present, remaining tool calls from the current assistant message are skipped (error tool results with "Skipped due to queued user message."), then the queued user message is injected before the next assistant response.

Configuration (minimal)

At minimum, set:

  • inbound.workspace
  • inbound.allowFrom (strongly recommended)

Next: Group Chats 🦞