Runtime integration (LLMs, MCP, APIs)
Brando vocab v1.3 is designed to be consumed at runtime by:
- LLM-based applications (chatbots, copilots, agents),
- MCP servers and tools,
- API layers in a Brand Operating System (Brand OS),
- search / RAG / retrieval pipelines.
This page explains how to:
- resolve
brando:Brandandbrando:Contextfor a request, - gather tokens and policies as a runtime configuration,
- plug that configuration into:
- LLM prompts and guard rails,
- MCP tools,
- API workflows,
- track enforcement and observability.
1. Core runtime pattern
At a high level, every integration follows the same pattern:
- Input comes in
Example inputs:
brandId– whichbrando:Brandto use.contextId– whichbrando:Contextnode applies (or parameters that resolve one).userPersona/segment– may refine context selection.productCategory/GTIN– optional, for category-level rules.-
channel metadata – e.g.
"chatbot","support","email". -
Brand OS resolves graph nodes
From the Brand Knowledge Graph (JSON-LD / graph DB):
- load the
brando:Brandnode with that@id, -
load associated:
brando:Context,Brando:VerbalIdentity/Visual/Audio,brando:Policy,brando:BrandedCategory,brando:Campaign,brando:AutomationRule.
-
Assemble a runtime configuration
Conceptually:
interface RuntimeBrandConfig {
brand: Brand;
context: Context;
Verbals: Verbal[];
Visuals: Visual[];
Audios: Audio[];
policies: Policy[];
campaigns: Campaign[];
categories: BrandedCategory[];
automationRules: AutomationRule[];
}
-
Adapter converts configuration into runtime-native structures
- For chat models: system messages, tools, safety settings.
- For MCP tools: parameters and tool schema.
- For APIs: request/response decorators, policy middleware.
-
Observability
- Log which Brando nodes were used for each interaction.
- Log which policies / enforcement levels applied.
- Log which automation rules fired.
The sections below show concrete variants for LLMs, MCP, and APIs.
2. LLM integration pattern
2.1 System prompt construction
From a RuntimeBrandConfig, you typically build a system message that encodes:
- brand identity (
brando:missionStatement,brando:coreValues,brando:brandNarrative), - context (
brando:domainContext,brando:audienceSegment,brando:audiencePersona), - verbal expression (
brando:toneOfVoice,brando:dialogueStyle,brando:writingStyle,brando:approvedTerms/brando:prohibitedTerms), - governance (
brando:guardRails,brando:mustDos,brando:mustNotDos,brando:refusalStrategies).
Non-normative example system prompt (derived from Brando nodes):
You are Northstar Bank's assistant.
Brand identity:
- Mission: Financial clarity with absolute trust.
- Vision: Help people feel in control of their financial future.
- Core values: Clarity over complexity; Do the right thing; Long-term alignment with customers.
Context:
- Channel: Chatbot on the public website (UK region).
- Audience: Retail banking customers and prospects researching savings accounts.
- Persona: Everyday saver.
Tone of voice:
- Reassuring and efficient. Focus on clear next steps.
- Use second person; acknowledge emotion, then move to options.
- Short paragraphs, concrete steps, minimal jargon.
Approved terms:
- interest rate; fees; savings goals
Prohibited terms:
- get rich quick; guaranteed returns
Guard rails (mandatory):
- Do not output hate speech, harassment, or discriminatory language.
- Do not claim features or capabilities the brand does not provide.
- Do not provide personalised investment advice.
Refusal strategies:
- Explain that you cannot provide personalised investment advice.
- Offer to connect the user with a regulated advisor.
You must follow these constraints strictly.
You generate this text directly from the Brando graph; you do not hardcode it in prompts.
2.2 Example: JSON-LD → runtime config
Example JSON-LD (simplified):
{
"@context": {
"schema": "https://schema.org/",
"brando": "https://brandoschema.com/"
},
"@graph": [
{
"@id": "https://example.com/brand/northstar",
"@type": "brando:Brand",
"schema:name": "Northstar Bank",
"brando:missionStatement": "Financial clarity with absolute trust.",
"brando:coreValues": [
"Clarity over complexity",
"Do the right thing",
"Long-term alignment with customers"
],
"brando:hasContext": {
"@id": "https://example.com/brand/northstar/context/retail-chatbot"
},
"brando:hasPolicy": {
"@id": "https://example.com/brand/northstar/policies/global-brand-safety"
}
},
{
"@id": "https://example.com/brand/northstar/context/retail-chatbot",
"@type": "brando:Context",
"brando:audienceSegment": [
"Retail banking customers",
"Prospects researching savings accounts"
],
"brando:audiencePersona": [
"Everyday saver"
],
"brando:domainContext": {
"channel": "chatbot",
"surface": "public-website",
"region": "UK"
},
"brando:usesVerbal": {
"@id": "https://example.com/brand/northstar/tokens/verbal/support"
}
},
{
"@id": "https://example.com/brand/northstar/tokens/verbal/support",
"@type": "Brando:VerbalIdentity",
"brando:toneOfVoice": "Reassuring and efficient. Focus on clear next steps.",
"brando:dialogueStyle": "Use second person, acknowledge emotion, then move to options.",
"brando:writingStyle": "Short paragraphs, concrete steps, minimal jargon.",
"brando:approvedTerms": [
"interest rate",
"fees",
"savings goals"
],
"brando:prohibitedTerms": [
"get rich quick",
"guaranteed returns"
]
},
{
"@id": "https://example.com/brand/northstar/policies/global-brand-safety",
"@type": "brando:Policy",
"brando:enforcementLevel": "mandatory",
"brando:riskTag": [
"brand-safety"
],
"brando:guardRails": [
"Do not output hate speech, harassment, or discriminatory language.",
"Do not claim features or capabilities the brand does not provide."
],
"brando:refusalStrategies": [
"Explain that you cannot provide personalised investment advice.",
"Offer to connect the user with a regulated advisor."
],
"brando:retrievableInLLM": true
}
]
}
Your runtime:
- Loads this graph.
- Resolves the relevant Brand + Context.
- Collects the Verbal and Policy nodes.
- Builds a system prompt or configuration object for the LLM API.
3. MCP integration pattern
Brando works naturally with MCP (Model Context Protocol) because MCP servers are essentially structured tool APIs for LLMs.
Typical use:
-
A Brand OS MCP server exposes Brando-derived tools:
get_brand_config(brandId, contextId)list_policies(brandId, filters)get_tokens(brandId, contextId, modality)- The LLM client calls these tools to fetch structured brand guidance mid-conversation.
3.1 Mapping Brando types to MCP tools
Examples (non-normative):
-
get_brand_context-
Inputs:
brandId(string)contextId(string, optional)
-
Output:
- JSON with Brand + Context + tokens + policies (a
RuntimeBrandConfig-style object).
- JSON with Brand + Context + tokens + policies (a
-
-
list_policies-
Inputs:
brandId-
optional
riskTag,enforcementLevel- Output:
-
Array of policy nodes (or policy summaries).
-
-
explain_policy-
Inputs:
policyId
-
Output:
- Human-readable explanation derived from
brando:guardRails,brando:riskScenarios, etc.
- Human-readable explanation derived from
-
These tools internally query the Brand Knowledge Graph and return structured results based on Brando vocab.
3.2 Using externalSystem and externalSystemId
If your Brand OS is MCP-enabled, you can describe that relationship in Brando itself:
{
"@id": "https://example.com/brand/northstar",
"@type": "brando:Brand",
"schema:name": "Northstar Bank",
"brando:externalSystem": {
"@id": "https://example.com/integrations/brand-os-mcp"
},
"brando:externalSystemId": "northstar_brand"
}
Separate schema:SoftwareApplication node:
{
"@id": "https://example.com/integrations/brand-os-mcp",
"@type": "schema:SoftwareApplication",
"schema:name": "Northstar Brand OS MCP Server",
"schema:applicationCategory": "Brand Operating System"
}
This allows:
- human readers to see which MCP server powers this brand,
- automated tooling to discover integration endpoints based on Brando metadata.
4. API integration pattern
In many organisations, the Brand OS is exposed as a REST or GraphQL API.
Typical responsibilities for that API:
- Provide a simple call to get all relevant Brando nodes for a request.
- Provide lookup endpoints for policies, categories, campaigns.
- Encapsulate governance logic (e.g. enforcement level rules).
4.1 Example REST endpoints (non-normative)
-
GET /brand-config?brandId=...&contextId=...- Returns a
RuntimeBrandConfigobject.
- Returns a
-
GET /policies?brandId=...&riskTag=...- Returns a list of
brando:Policynodes or summaries.
- Returns a list of
-
POST /automation/evaluate -
Evaluates
brando:AutomationRulenodes and returns actions to apply.
These endpoints internally:
- query the Brando graph,
- interpret
brando:effectiveDuring,brando:enforcementLevel,brando:riskTag, - possibly call external monitoring endpoints described by
brando:dataSource.
5. RAG and retrieval integration
Brando interacts with RAG and search in two main ways:
-
High-trust structured layer
-
Brando nodes (Brand, Context, Policy, Tokens) are treated as trusted, prescriptive data.
-
They can be stored in a vector database, but should be:
- curated,
- tagged with
brando:retrievableInLLMandbrando:visibilityRating, - indexed separately from unstructured documents.
-
Metadata for unstructured content
-
Brando properties can be used as metadata tags on content in a RAG corpus:
brando:hasProductCategory,brando:riskTag,brando:campaignName, etc.
5.1 Example: Policy node in RAG index
{
"@id": "https://example.com/brand/northstar/policies/regulated-claims-uk",
"@type": "brando:Policy",
"brando:enforcementLevel": "mandatory",
"brando:riskTag": [
"financial-regulation",
"consumer-protection"
],
"brando:guardRails": [
"Do not promise guaranteed investment returns.",
"Do not provide personalised investment advice."
],
"brando:refusalStrategies": [
"Explain that you cannot provide personalised investment advice.",
"Offer to connect the user with a regulated advisor."
],
"brando:retrievableInLLM": true,
"brando:embeddingQuality": "high"
}
Your RAG pipeline can:
- embed this node (or a human-readable projection),
- index
riskTagandenforcementLevelas metadata, - restrict retrieval to nodes where
retrievableInLLMistrue.
6. Enforcement and automation
Runtime integration is where enforcement happens.
6.1 Enforcement levels
Policies and automation rules have:
brando:enforcementLevel– e.g."mandatory","advisory","conditional".brando:riskTag– risk domains affected (e.g."brand-safety","financial-regulation").
Implementation guidance (non-normative):
-
For
"mandatory":- enforce before generation where possible,
- enforce after generation (output filtering),
- log violations and treat as incidents.
-
For
"advisory":- present guidance to the model,
- log deviations for analysis, but do not necessarily block outputs.
-
For
"conditional":- tie enforcement to
brando:AutomationRuleand local context logic.
- tie enforcement to
6.2 Automation rules at runtime
Automation rules (brando:AutomationRule) link runtime metrics to policy behaviour.
Example:
{
"@id": "https://example.com/brand/northstar/automation/rag-high-risk-monitor",
"@type": "brando:AutomationRule",
"brando:triggerType": "metric-threshold",
"brando:monitoredMetric": {
"name": "unsafe_output_rate",
"threshold": 0.05,
"operator": ">",
"window": "7d"
},
"brando:dataSource": "https://monitoring.example.com/api/metrics/unsafe_output_rate",
"brando:automationAction": {
"actionType": "increase_enforcement",
"targetPolicies": [
"https://example.com/brand/northstar/policies/global-brand-safety"
],
"newLevel": "mandatory",
"notify": [
"risk-team@northstar.example"
]
},
"brando:enforcementLevel": "mandatory",
"brando:riskTag": [
"brand-safety",
"llm-guardrails"
]
}
A runtime evaluator:
- Fetches metric data from
dataSource. - Parses
monitoredMetricand checks the condition. -
If triggered:
- parses
automationAction, - updates enforcement level of target policies in its configuration,
- notifies governance teams.
- parses
The Brand OS is responsible for that evaluation; Brando just provides the structured description.
7. Observability and audit
To be governance-ready, runtime integrations should record:
- which
brando:Brand,brando:Context,brando:Policy,brando:AutomationRulenodes were in effect, - what
enforcementLevelandriskTagvalues applied, - which
AutomationRulenodes fired and what actions were applied.
This enables:
- after-the-fact explanations: “Why did the AI answer in this way?”
- risk reporting: “How many policies are currently mandatory for this brand?”
- change tracking: “Which enforcement changes came from automation vs human edits?”
Brando vocab provides the structure; your observability stack records the events.
8. Summary
At runtime, Brando vocab v1.3 is used to:
- Resolve relevant Brand, Context, Tokens, Policies, Categories, Campaigns, and AutomationRules.
- Assemble a
RuntimeBrandConfigfor the current interaction. -
Adapt that configuration into:
- LLM prompts and guard rails,
- MCP tools,
- API middleware,
- RAG filters.
-
Enforce behaviour based on
enforcementLevelandriskTag. - Automate adjustments via
AutomationRuleand live metrics. - Audit which brand instructions were in place for each AI decision.
For related detail: