Skip to navigation
AgentsAgentBase

set_prompt_pom

View as MarkdownOpen in Claude

Set the prompt directly as a POM (Prompt Object Model) dictionary structure. This is a low-level method that accepts the POM data format directly. For most cases, use prompt_add_section() to build POM prompts incrementally.

The POM format structures prompts into titled sections with body text, bullet points, and nested subsections. This structure helps the AI model parse complex instructions more reliably than flat text.

Parameters

pom
PromptObjectModel | list[dict[str, Any]]Required

POM structure. A list of section dictionaries is converted to a PromptObjectModel before it is stored; an existing PromptObjectModel is accepted as-is. Each section dictionary has keys:

  • title (str) — Section heading
  • body (str) — Section body text
  • bullets (list[str]) — Optional bullet points
  • numbered (bool) — Whether the section is numbered
  • subsections (list[dict]) — Optional nested sections with the same keys

Returns

AgentBase — Returns self for method chaining.

Example

from signalwire import AgentBase
agent = AgentBase(name="support", route="/support")
agent.set_prompt_pom([
{
"title": "Role",
"body": "You are a customer support agent for Acme Corp."
},
{
"title": "Guidelines",
"body": "",
"bullets": [
"Always greet the caller by name if available",
"Never share internal pricing details",
"Escalate to a human if the caller requests it"
]
},
{
"title": "Capabilities",
"body": "You can help with the following:",
"subsections": [
{"title": "Orders", "body": "Look up order status, process returns"},
{"title": "Billing", "body": "Check balances, explain charges"}
]
}
])
agent.serve()