[HN Gopher] POML: Prompt Orchestration Markup Language
___________________________________________________________________
POML: Prompt Orchestration Markup Language
Author : avestura
Score : 87 points
Date : 2025-08-10 06:26 UTC (16 hours ago)
(HTM) web link (github.com)
(TXT) w3m dump (github.com)
| liamkinne wrote:
| XML? how is this not just XML with a schema?
| epolanski wrote:
| Maybe it's not fully XML compliant.
|
| Anyway quite an interesting project, XML's a better fit for
| "programmable" data.
| gavinray wrote:
| It has self-closing tags, which you can see in the repo
| screenshot, so you're correct.
| actionfromafar wrote:
| But why... standards are good, eveyone should have one, I
| guess.
| PeterStuer wrote:
| XML, for those born after 1990, you could have well said COBOL
| or FORTRAN, something gramps used to mention.
| floatrock wrote:
| Does XML allow you to define for-loops inside <bracketed> items
| then reference the loop variables inside {{template vars}}?
| https://youtu.be/b9WDcFsKixo?t=223
|
| I guess it doesn't _prevent_ you from doing such things, but...
| well... there 's some eyebrow-raising shoehorning in this one.
| AbuAssar wrote:
| it is concerning that Microsoft didn't provide SDK for its own
| C#/.Net regarding this new technology, only nodejs and python,
| which says alot!
| rahkiin wrote:
| It just says the current agent ecosystem is focused on python
| and javascript stacks?
| ajdude wrote:
| Microsoft doesn't even use their own SDK for their apps
| anymore, it's all electron.
| valenterry wrote:
| Yeah. I judge the maturity by that. If there's only a
| javascript/node and python sdk, that means I'll stay far away
| from it for the time being.
| stitched2gethr wrote:
| I'll keep using markdown.
| ulrischa wrote:
| There is already the .prompt.yaml format
| (https://docs.github.com/en/github-models/use-github-models/s...)
| from github, which is also Microsoft. Would be great to see some
| standard evolving.
| rco8786 wrote:
| This is interesting but not sure why it needs to be a library
| airstrike wrote:
| The video shows it embedding the content of a docx file
|
| Not sure why you'd use docx but...
| hoppp wrote:
| Because its from microsoft so its compatible with word
| airstrike wrote:
| Yes, I appreciate that fact, but why would I write a prompt
| in docx
| mh- wrote:
| It clearly (to me) shows that it's providing a docx for
| background knowledge, the way all of the existing
| providers allow you to upload a file as part of creating
| a new prompt. It's in a <document> tag, under a <hint>
| with a caption attribute that has a value "Background
| Knowledge".
|
| No one is suggesting you write a prompt in docx..
| deadbabe wrote:
| With all these languages for writing better prompts, are we going
| to end up coming full circle?
| pseufaux wrote:
| With greatly reduced reliability...
| OJFord wrote:
| Our latest model is fully deterministic! The full list of
| functions you can call to compose your question is available in
| the docs _here_.
| gregman1 wrote:
| Idk, looks like IP squatting
| aaronvg wrote:
| You may also want to check out BAML
| https://github.com/BoundaryML/baml - a DSL for prompt templates
| that are literally treated like functions.
|
| the prompt.yaml format (which this project uses) suffers from the
| fact that it doesn't address the structured outputs problem.
| Writing schemas in yaml/xml is insanely painful. But BAML just
| feels like writing typescript types.
|
| I'm one of the developers!
| tannhaeuser wrote:
| SGML is so back!
| baggiponte wrote:
| How's this different from xml?
| ultmaster wrote:
| I'm the sole code contributor of POML, maybe except for Codex and
| cc. I think I've found where all that GitHub stars suddenly came
| from. :)
|
| I'm from a small group under Microsoft Research. POML originally
| came from a research idea that Prompt should have a view layer
| like the traditional MVC architecture in the frontend system. The
| view layer should take care of the data, the styles and rendering
| logic, so that the user no longer needs to care how some table
| needs to be rendered, how to present few-shot examples, how to
| reformat the whole prompt with another syntax (e.g., from
| markdown to XML).
|
| I have to admit that I spent so much time on making POML work
| well with VSCode, building all the auto completion, preview,
| hover stuff. The time is long enough that the codebase is almost
| becoming a monster for an individual developer to handle. The
| outside environment is also changing drastically. The rise of
| Agentic AI, tool calls, response format. The models today are no
| longer sensitive to small changes in prompt format as they used
| to. AI-aided programming can simply give you code to read in
| PDFs, Excels and render them in any style you want. With all that
| in mind, I used to feel hopeless about POML.
|
| Nevertheless, after several months of working on another
| projects, I recently noticed that the view layer can be more of
| just a view layer. With proper user interface (e.g., a VSCode
| live preview), it can deliver a very smooth experience in prompt
| debugging, especially in a multi-prompt agent workflow. I also
| noticed that the "orchestration" idea can go beyond a XML-like
| code. I'll share more details when I had a tutorial / screenshot
| to share.
|
| Going through this thread, I saw a lot of thoughts that once went
| through my mind. We love markdowns. We love template engines like
| jinja. We need those response formats. I'm thinking what is the
| missing piece here. I've spend so much time writing prompts and
| building agents in the past few months. What's my biggest pain
| points?
|
| I'm quite surprised that the news hit me first before I'm ready
| to hit the news. If you have tried POML, please send me
| feedbacks. I'll see what I can do; or maybe we end up not needing
| a prompt language at all.
| golly_ned wrote:
| It strikes me as a massive anti-pattern to have one developer
| be the sole contributor of an open-source project sponsored by
| a $3T company. It doesn't speak well to its longevity or the
| strength of the sponsorship Microsoft's putting behind it in
| practice.
| lf-non wrote:
| There is a difference between a product that a company pushes
| out as part of its business roadmap with a commercial
| strategy around it vs. an experimental research project that
| a single developer takes up on their own initiative.
|
| It is great that they were allowed to open source it.
| mh- wrote:
| I hope everyone realizes these comments just discourage
| companies from letting their employees do their work in the
| open, in collaboration with the community.
|
| If you want them to wait until everything is super ready (or
| dead) and then "throw it over the fence" into their public
| GitHub org, keep it up.
| Kuyawa wrote:
| Can we replace <output-format> for just <output> before it's
| too late? Sorry but my OCD just tingled a bit.
| N2yhWNXQN3k9 wrote:
| > Sorry but my OCD just tingled a bit.
|
| A compulsion to give design notes without any reasoning on
| something you've just heard of?
| watersb wrote:
| > _A compulsion to give design notes without any reasoning
| on something you 've just heard of?_
|
| Me! _o/
|
| Compulsion to give feedback before thinking!
|
| So happy to be here.
| throwanem wrote:
| I guess naively, this seems like an enormous amount of tooling
| for what appears to be a relatively straightforward XML
| transformation. Why all this... _this?_ Could it not be at all
| more simple? As is, while the idea on display is tremendously
| provocative, I feel I risk considerable time and effort
| learning to understand this implementation well enough to know
| whether to do so was wise.
|
| Also, please good heavens hire a narrator for the demo video.
| That AI voice sucks in an extremely uncanny-valley way, as if
| the speaker is one second from collapsing of benzodiazepine
| overdose, and it makes me like your work less well with every
| word.
| nine_k wrote:
| Does anybody find it mildly ironic that LLM prompts, which are
| intended to be plain informal text, accumulate more and more
| structure around them, including a markup language in question?
|
| This is not unlike the way the language of legal documents is
| highly formulaic, structured, and codified. When precise meaning
| is desirable, firmer structures tend to arise. With a bit more
| time, proper code languages may start to appear, to help tell
| LLMs _exactly_ what we mean or want.
| dragonwriter wrote:
| This markup language isn't structure for prompts for LLMs, it
| is structure for conventional programs that need to construct
| prompts for LLMs.
|
| Conventional programs using structured templates with
| deterministic rules to construct output is... not new.
|
| (Jinja templates have been widely used for communicating
| structure to assemble conversation history, tool calls, etc.,
| into promots for open models for a while.)
| beefnugs wrote:
| This is "The Dream" vs whatever actually happened
| leke wrote:
| Do you have to install poml via the node or python or is the
| vscode plugin enough?
| LudwigNagasena wrote:
| <let name="objVar" type="object" value="{{ { key: 'value' } }}"/>
| <item for="item in ['apple', 'banana', 'cherry']">{{item}}</item>
| <p if="isVisible">This paragraph is visible.</p>
|
| This looks like JSX but worse. What's wrong with throwing a bit
| of imperative syntax into a DSL if you need imperativity? It
| seems unnecessary to put code into strings.
| Involution wrote:
| this looks like a straight rip off of SignalWire's Prompt Object
| Model (POM) (from q1-2 2025)
|
| https://developer.signalwire.com/ai/pom/technical-reference
___________________________________________________________________
(page generated 2025-08-10 23:01 UTC)