| How you build | Describe it in chat. Friday writes the agents and config. You can edit, version, and share the result. | Describe it in chat. The behavior lives in that conversation context going forward. |
| Spinning up agents | Describe a new capability in chat. Friday configures the agent, assigns its tools, and wires it into the job. The agent is explicit in your config and guaranteed to run. | Drop a SKILL.md file. The LLM decides whether to route to it based on intent matching. At scale, roughly 1 in 7 skills become unreachable with no warning. |
| Workflow format | Single workspace.yml — agents, triggers, and steps in one version-controlled file. | Spread across SOUL.md, MEMORY.md, HEARTBEAT.md, and installed skills. |
| Prompt decay | Versioned config pins behavior. Model updates do not silently shift outputs. | Conversation-based. The same prompt can produce different results after a model update. |
| Sharing with a teammate | Share a file. They import it and it runs identically. | Rebuild config per machine. Setup is not portable. |
| Multi-step pipelines | FSM job engine. Each step passes typed data to the next. Branches and retries are explicit. | Chat-first. The LLM decides tool order and execution flow each time. |
| Adding a server | Install from the built-in MCP catalog or define your own in workspace.yml. Scope per-workspace or globally across all workspaces. | openclaw mcp set from the CLI. Stored in central user config. |
| Authentication | Tokens and API keys passed in as env variables. | Env variables, or HTTP headers for remote transports. |
| Transports | stdio, streamable HTTP. | stdio, HTTP/SSE, streamable HTTP. |
| Tool exposure | Each agent's tools: array lists serverId/toolName explicitly. An agent only sees the tools you wired to it. | Configured MCP tools are available globally to whichever agent the router picks. |
| Adding a skill | Install from the built-in skills catalog or define your own. Scope per-workspace or globally across all workspaces. | Drop a SKILL.md into one of six locations (workspace, project, personal, managed, bundled, extra). A precedence hierarchy resolves conflicts. |
| Format | SKILL.md — Markdown with YAML frontmatter. Pure instruction text. Can also be inlined in workspace.yml. | SKILL.md — Markdown with YAML frontmatter. Can also bundle inside plugins with executable code (shell, JS, Python). |
| How memory works | Narrative memory stores attached to each workspace. Auto-injected into agent context at each run. Readable, editable, version-controlled alongside your config. | MEMORY.md and DREAMS.md files updated by a background "dreaming" process. No UI to browse or prune. Silent circuit breaker degrades recall when the index is slow. |
| Memory visibility | Every memory entry is a plain-text record in your workspace. You can read, edit, and delete entries directly. | Managed by background processes. No way to see what was or was not promoted, or why the agent "forgot" something. |
| Memory across teammates | Memory stores can be mounted read-only or read-write across workspaces. Shared context is explicit and auditable. | Memory is local to one machine and one agent. Sharing requires manual file copying. |
| Run inspector | Step-by-step UI showing every tool call, input, output, and timing. | Terminal logs and chat notifications. |
| Logs | Everything is logged per-workspace and broken down by chat vs session. Browse from Studio. | Terminal logs. One stream per process. |
| Failure diagnosis | Failed step surfaces which state broke and why. Job stops there. | Reconstruct failures from logs. |
| Token usage | Per-session breakdown in the UI. | Requires log inspection. |
| Agent permissions | Each agent declares which tools it can call. Enforced by the config, not a prompt. | Full system access. The LLM decides which tools to use. |
| Compliance | SOC 2 Type II. | No formal certification. 1,300+ security advisories since launch; CVE-2026-33579 disclosed Apr 2026. |