Agent System
Agent System Prompt
Build composable, insurance-aware system prompts for conversational agents
Cell provides a modular prompt system for building insurance-aware conversational agents. Prompts are composed from independent modules that adapt to the platform and communication intent.
Quick start
import { buildAgentSystemPrompt } from "@claritylabs-inc/cell";
import type { AgentContext } from "@claritylabs-inc/cell";
const ctx: AgentContext = {
platform: "email",
intent: "direct",
siteUrl: "https://app.example.com",
companyName: "Acme Insurance",
userName: "Jane Smith",
};
const systemPrompt = buildAgentSystemPrompt(ctx);
// Use with any LLM: pass as the system message
How it works
buildAgentSystemPrompt(ctx) composes all modules in order, filtering out any that return null:
Identity → Who the agent is, company context
Company context → Organization-specific information (if provided)
Intent → Behavior rules for direct / mediated / observed
Formatting → Platform-specific output rules
Safety → Scope guardrails, anti-hallucination, prompt injection defense
Coverage gaps → Gap detection guidance (null in some intents)
COI routing → Certificate of insurance handling
Quotes/policies → How to differentiate document types
Memory → Cross-conversation continuity guidance
AgentContext
The context object drives all prompt composition:
interface AgentContext {
platform: Platform; // "email" | "chat" | "sms" | "slack" | "discord"
intent: CommunicationIntent; // "direct" | "mediated" | "observed"
platformConfig?: PlatformConfig;
companyName?: string;
companyContext?: string; // Organization-specific context string
siteUrl: string;
userName?: string;
coiHandling?: "broker" | "user" | "member" | "ignore";
brokerName?: string;
brokerContactName?: string;
brokerContactEmail?: string;
}
Individual modules
Each module is independently importable for custom prompt composition:
import {
buildIdentityPrompt,
buildSafetyPrompt,
buildFormattingPrompt,
buildCoverageGapPrompt,
buildCoiRoutingPrompt,
buildQuotesPoliciesPrompt,
buildConversationMemoryGuidance,
buildIntentPrompt,
} from "@claritylabs-inc/cell";
Custom composition
Build your own prompt from a subset of modules:
const customPrompt = [
buildIdentityPrompt(ctx),
buildSafetyPrompt(ctx),
buildFormattingPrompt(ctx),
// Skip coverage gaps, COI routing, etc.
].filter(Boolean).join("\n\n");
Document context
Build ranked document context for agent responses:
import { buildDocumentContext } from "@claritylabs-inc/cell";
const context = buildDocumentContext(documents, "What's my GL limit?");
// Returns policies/quotes ranked by relevance to the query
Conversation memory
Add conversation history context:
import { buildConversationMemoryContext } from "@claritylabs-inc/cell";
const memoryContext = buildConversationMemoryContext(previousConversations);
Intent classification
Classify incoming messages before routing to the agent:
import { buildClassifyMessagePrompt } from "@claritylabs-inc/cell";
const classificationPrompt = buildClassifyMessagePrompt("email");
// Returns a prompt that classifies whether a message is insurance-related
// and suggests an intent