logoalt Hacker News

ultmasterlast Sunday at 4:22 PM5 repliesview on HN

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.


Replies

throwanemlast Sunday at 8:20 PM

I guess naïvely, 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.

valenterrylast Monday at 2:54 AM

> I'm thinking what is the missing piece here

First, it's cool that you work on it. Creating a new language is not an easy task.

I would suggest to try to stand on the shoulders of giants instead of trying to come up with a completely new thing.

Have a look at dhall: https://dhall-lang.org/ - it is a language that was created for cases like yours. Or, if you want to make POML a fully fledged language (and turing complete, with for-loops etc.) then it would be advised to use an existing programming language and create a DSL-like library.

See react. React did it right JSX. It might look like XML, but that's just the syntax part. You can create components in pure javascript syntax, because JSX is just the wrapper. You could do the same with POML. That will future proof it and relieve you from a lot of headache when people will ask you for more features, but without breaking backwards compat.

skim_milklast Monday at 10:26 AM

Awesome idea, for some reason I've never thought about using MVC patterns with LLM prompts. I got carried away and tried implementing this with ASP.NET Razor components, imagining the possibilities with this pattern.

Kuyawalast Sunday at 6:17 PM

Can we replace <output-format> for just <output> before it's too late? Sorry but my OCD just tingled a bit.

show 1 reply
golly_nedlast Sunday at 4:59 PM

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.

show 2 replies