Skip to main content
Version: 2026.1

Pimcore Agent Bundle

AI-powered chat agents for Pimcore Studio with human-in-the-loop write control. Agents search, read, and propose changes to data objects, assets, documents, and tags through interactive chat. Start here → docs/01_Getting_Started/ for core concepts.

Features

  • Multi-agent system - Agents with a per-agent model/provider, tools, skills, and permissions, configured via YAML or Pimcore Studio. Users switch agents mid-conversation without losing history.
  • MCP tool integration - 35+ PHP tools spanning data objects, assets, documents, tags, and agent templates, grouped by read / propose (HITL) / direct-write access. Extensible via Symfony service tags; supports meta-tool discovery, third-party MCP servers, and access from external MCP clients.
  • Human-in-the-loop proposals - Propose / review / approve pipeline for every write operation. Interactive diff modals, batch approval, and refinement. No direct writes unless explicitly configured.
  • Interactive input - ask_user mid-turn questions and pauseAfter "continue or stop" checkpoints replace hard timeouts with interactive decisions.
  • Rich chat widgets - Eight interactive React components rendered in the chat: proposal cards, data tables, element links, agent-switch suggestions, and more.
  • Background task execution - Agent tasks run independently of the browser connection with SSE streaming, reconnection support, and cancel capability.
  • Real-time multi-client sync - Live turn delivery to every open tab and device via Studio's Mercure per-user topic; PHP remains the durable record, so a reload always reconstructs the session.
  • File attachments - Upload files into a session; agents read them through session-scoped, read-only staging.
  • Document & areabrick schema for LLMs - Twig-template AST analysis combined with co-located JSON example fixtures lets agents read, edit, and create Pimcore documents and areabricks in one shot. Third-party editable types are picked up automatically from Pimcore's registry; project-specific bricks ship example fixtures alongside their templates.
  • Template generation - Agents generate, validate, and HITL-propose Twig page/snippet/partial templates from a sandboxed private root.
  • Field hint system - Provider-based format hints for all Pimcore data types. Agents receive editableDataFormat and metadata for every field, enabling correct data composition.
  • Skills - Reusable Markdown instruction files that teach agents domain-specific workflows (PQL search, proposal flows, data-import patterns).
  • Tool security - SDK tool control with path sandboxing, system-denied tools, and agent-configurable opt-in.
  • Session storage - Database-backed persistence via Pimcore. Sessions, messages, proposals, and statuses survive server restarts.

Documentation

Getting Started

PageDescription
InstallationBundle installation, Docker, Nginx, security, env vars
Core ConceptsGlossary - read this once before the rest

Architecture

Internals - how the system works end-to-end.

PageDescription
Agent FrameworkCopilot SDK integration, adapters, LLM auth modes, model configuration
Communication FlowsThe system map - every runtime flow (chat/SSE, MCP, persistence, config export, Mercure, LLM) and the credential each uses
Request LifecycleEnd-to-end chat request, TaskRunner, the three event sinks, SSE streaming, reconnection
AuthenticationSession cookie + identity cache, the pmcp_ bearer scope, admin bearer token, per-provider LLM auth, rate limits, audit log
MCP IntegrationInternal vs external servers, the meta-tool, bearer + session-id forwarding, token lifecycle
Session StoragePimcore DB persistence model
Tool SecurityPre-tool-use hook, path sandboxing (mechanism)
Configuration SystemThree-layer merge, export endpoint, reload paths, skill materialization
Field Hint SystemHow the agent learns the correct JSON shape for every Pimcore field type
Document SchemaHow get_document_schema / get_area_brick work - AST analyzer + co-located example fixtures + the <index> placeholder convention
File StagingThe read-only file-set primitive: developer-configured sets, staging, the roots/denylist model
Agent Template GenerationThe Twig template write path: private root + namespace, validator/sandbox, test-render, drift-guard lint
Real-time SyncLive multi-client chat via Mercure + GlobalMessageBus, PHP as the record, catch-up/reconnect model

Features

What the product does, for operators and end users.

PageDescription
Agents and SwitchingShipped presets + how mid-conversation switching feels
Rich Chat WidgetsCanonical catalog of the eight built-in widgets
HITL ProposalsPropose → review → resolve workflow
Interactive Inputask_user questions + pauseAfter checkpoints
File AttachmentsUpload flow, staging, session-scoped file access
Agent TemplatesGenerate, validate, and HITL-propose Twig page/snippet/partial templates
Built-in Pimcore MCP ServersThe built-in tool-group catalog + how to use it from the built-in Pimcore Agent or an external MCP client

Configuration

Field-by-field reference.

PageDescription
AgentsYAML schema, editing in Studio, pause thresholds, model validation, hot reload
SkillsSkill file format, discovery, user vs bundle skills
MCP ServersConfiguring an agent's MCP access - direct vs meta-tool, env interpolation, TTL knob
Tool Security ReferenceSDK tool catalog, defaults, auto-derived permissions, path sandboxing rules
Environment VariablesComplete env-var reference, LLM adapter modes, BYOK limitations
Shipping PresetsShip agents / skills from your own bundle (hard vs optional dependency)
File StagingConfiguring the read-only file sets agents can stage
Agent TemplatesConfiguration for agent template generation
Provider CompatibilityThe localhost compatibility shim for strict LLM providers
Inference ProvidersDefining LLM backends: auth, endpoint, default model, per-agent selection

Inference

Choosing and evaluating the LLM behind each agent turn.

PageDescription
Model RequirementsWhat each agent needs from a model, by task complexity
Model EvaluationResults of evaluating models against the bundle's real agent tasks

Extending

PageDescription
Custom MCP ToolsAdd tools via PHP service tags, group management
Custom Rich Chat WidgetsYAML definition + React renderer
Custom Proposal TypesAdd HITL-controlled writes with approval flows
Custom Field Hint ProvidersFormat hints for custom Pimcore data types
Template ExamplesJSON example fixtures + dev-time SKILL + CLI helpers for areabricks and document templates

Operations

PageDescription
DevelopmentBuild commands, testing, linting, Docker dev override
TroubleshootingSymptoms → causes → diagnostic commands