Subsystems
How phpClaw actually works.
Six subsystems, verified from source across all 8 adapters. Every number traces to file:line — including where the common assumption was wrong.
phpClaw Tools: How the Agent Calls Code
The 4-method ToolInterface, per-provider tool schemas, two sequential tool filters, all 8 adapter tool sets, and how to register your own tool.
phpClaw Guard: What Stops a Bad Tool Call
Seven guards run by default on all 8 phpClaw adapters. Every one blocks by throwing GuardException. Here is the exact enforcement path.
phpClaw Skills: Injecting Domain Knowledge Without Fine-Tuning
Four ways to inject domain knowledge into a phpClaw agent — file, class, inline, and remote — plus precedence rules, the 24h cache, and all 8 adapters.
phpClaw Hooks: The Agent Lifecycle You Can Intervene In
phpClaw fires 40 named lifecycle events and re-fires each as a native event on your platform. They observe the run — they cannot mutate or abort it.
phpClaw Providers: Choosing and Configuring the Model Backend
Eight provider slugs, two tool-schema shapes, and a 5-tool cap that fires only on Ollama and Groq. What actually changes when you switch model backends.
phpClaw Memory: What the Agent Remembers, and What It Costs
How phpClaw stores agent state across 8 PHP adapters: a locked 3-table schema, a 3-entry injection cap, lazy TTL, and retention you manage yourself.