[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)