Prism
The Laravel LLM layer the kit builds on, and what makes it an agent platform: durable agent sessions, MCP tools, memory, a guarded browser, sandboxed workspaces, Human+ presence, tracing, and the rest of the Perplexity API.
LLM layer
1 package · headless — install and call it · LLM providers for Laravel: text, structured output, streaming and tool calling
Maintained fork of prism-php/prism -- the Laravel LLM integration layer the kit builds on. Unified text / structured / streaming across providers, with the telemetry that makes per-run AI spend attributable. fancy-flow-php's PrismLlmClient adapter targets it, and credentials resolve at call time rather than from env, so DB-backed provider rows and queue workers are first-class.
$composer require particle-academy/prismAgent sessions
1 package · headless — install and call it · LLM agent harness: durable sessions, modes, tool permissions and subagents
Durable agent sessions for Laravel -- threads, modes, tool permissions and subagents on top of Prism. Where a conversation with an agent stops being one request and becomes state you can resume, inspect and govern.
$composer require particle-academy/prism-harnessTools
1 package · headless — install and call it · MCP client: remote MCP tools as Prism tools, across a visible trust boundary
Model Context Protocol for Prism -- consume remote MCP tools as ordinary Prism tools, across a trust boundary you can see. The boundary is the point: a remote tool is not quietly indistinguishable from a local one.
$composer require particle-academy/prism-mcpMemory
1 package · headless — install and call it · Agent memory: vector store, semantic recall and token-budget-aware retrieval
Persistent context and semantic recall for Laravel -- vector storage, remember / recall, and token-budget-aware retrieval on top of Prism. The other half of a bounded context window: somewhere for what leaves it to go, so a compacted agent is not simply blind to its own earlier work.
$composer require particle-academy/prism-memoryBrowser
1 package · headless — install and call it · Web browsing for agents: guarded, policy-first browser automation
Guarded browser automation for Prism agents -- bounded observations, policy-first navigation, and durable sessions. First-party, so driving a browser from an agent does not start with a third-party approval conversation.
$composer require particle-academy/prism-browserWorkspace
1 package · headless — install and call it · Agent sandbox: a session-scoped filesystem behind a path guard
Sandboxed, session-scoped agent workspaces for Laravel -- a scoped Storage disk behind a path guard, shipped with the adversarial corpus that proves the boundary holds. Where an agent gets somewhere to write without getting everywhere to write.
$composer require particle-academy/prism-workspaceHuman+
1 package · headless — install and call it · Human+ presence: agent sessions joining live Fancy surfaces over MCP relay
Human+ participant presence for Prism Harness -- an agent session joins live Fancy surfaces through trusted MCP relay attachments, so the human and the agent are on the same surface rather than trading turns through a transcript.
$composer require particle-academy/prism-human-plusTracing
1 package · headless — install and call it · LLM tracing: OpenTelemetry GenAI spans for agent runs
OpenTelemetry bridge for Prism -- turns Prism telemetry events into GenAI-convention spans for Arize Phoenix and any OTLP backend, so agent runs are readable in the tracing you already operate rather than a second place to look.
$composer require particle-academy/prism-opentelemetryPerplexity
1 package · headless — install and call it · Perplexity search, embeddings and async deep research
The rest of the Perplexity API for Prism -- embeddings, direct search, and async deep research beyond the Agent API chat surface.
$composer require particle-academy/prism-perplexitycomposer require particle-academy/prism. The kit reaches it through a seam rather than directly: FancyFlow\Capabilities\Adapters\PrismLlmClient implements fancy-flow-php's LlmClient contract, and prism-php/prism stays under composer suggest with every entry point isAvailable()-guarded — so fancy-flow's core keeps its no-runtime-dependencies rule and an app that already uses Prism gets a working llm_router with no glue. Credentials resolve at call time, not at boot. PrismLlmClient takes a callable mapping a host credential reference to provider config, applied through ->using($provider, $model, $config), so API keys living on a database row rather than in .env — and queue workers with no request-scoped config — are the supported case rather than the awkward one.