> Fetch clean Markdown by appending `.md` to any page URL under https://signalwire.com/docs or requesting it with the HTTP header `Accept: text/markdown`. The root index at https://signalwire.com/docs/llms.txt lists the available documentation indexes. # set_prompt_pom > Set the prompt using a raw Prompt Object Model dictionary structure. [prompt-add-section]: /docs/server-sdks/reference/python/agents/agent-base/prompt-add-section [ref-agentbase]: /docs/server-sdks/reference/python/agents/agent-base 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()`][prompt-add-section] to build POM prompts incrementally. > **Info** > > 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`][ref-agentbase] -- Returns self for method chaining. ## **Example** ```python {4} 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() ``` > Set the prompt using a raw Prompt Object Model dictionary structure.