Make Conversations, Not Prompts

jgalego1 pts0 comments

Ulexite โ€” the conversation-first language for LLM interactions | Ulexite

Skip to main content<br>๐Ÿ’ฌ Conversation-first<br>History is automatic and structural โ€” every message, in order, content-addressed. You never hand-roll a reducer to thread state through calls.<br>๐Ÿงฉ Multimodal artifacts<br>text, image, pdf, audio, embedding, and more โ€” routing a video into a model that only accepts [text, image] is a compile error, not a runtime 400.<br>โš–๏ธ Built-in judges<br>judge returns a typed, exhaustively-matched Verdict โ€” Pass, Fail(reason), Score(value), Escalate โ€” not a hand-written grading prompt glued to string matching.<br>๐Ÿ” Traces & replay<br>Every run produces a complete, replayable trace โ€” resume a conversation from any point, with model calls memoized instead of re-invoked.

๐Ÿ‘€ What it looks like<br>A complete, runnable conversation: translate, have a judge check fluency, retry once on failure, escalate to a human if the judge can't decide.translate.ulx<br>judge Fluency(subject: text) -> Verdict {

rubric: """Is this an accurate, fluent translation of the source?

Answer Pass, Fail(reason), or Escalate if you cannot tell."""

conversation Translate(source: text, target_lang: text) -> text {

system: """You are a professional translator."""

user: """Translate to {target_lang}: {source}"""

assistant -> draft: text

match judge Fluency(draft) {

Pass => draft

Fail(reason) => retry(2) {

user: """Rejected: {reason}. Try again."""

assistant -> draft

} else escalate(human_approval, reason: reason)

Escalate => escalate(human_approval, reason: "judge could not decide")

Score(_) => draft

Try it yourself in the live playground โ€” no install needed โ€” or see the full examples gallery for eleven more.<br>๐ŸŽฌ See it run<br>ulx run translate.ulx Translate --provider anthropic โ€” the judge can't decide, so it escalates to a human instead of guessing. It suspends, a reviewer runs ulx approve, and the same run resumes to completion.bash<br>$ ulx run translate.ulx Translate --arg source=hello --arg target_lang=fr --provider anthropic<br>๐Ÿงญ system: You are a professional translator.<br>๐Ÿง‘ user: Translate to fr: hello<br>๐Ÿค– assistant: Bonjour<br>โš–๏ธ judge Fluency: Escalate<br>๐Ÿ™‹ escalate human_approval: judge could not decide (suspended)<br>suspended: waiting on `human_approval` โ€” judge could not decide

run id7f2c9a1e4b0d6f83<br>statussuspended<br>capabilitieschat, judge, escalate<br>provideranthropic โ€” chat (claude-haiku-4-5), judge (claude-sonnet-4-5)

resume with: ulx approve 7f2c9a1e4b0d6f83 --value (or: ulx deny 7f2c9a1e4b0d6f83)<br>$ ulx approve 7f2c9a1e4b0d6f83 --value "Bonjour"<br>๐Ÿ™‹ escalate human_approval: judge could not decide => Bonjour<br>Bonjour

run id7f2c9a1e4b0d6f83<br>statusok<br>capabilitieschat, judge, escalate<br>provideranthropic โ€” chat (claude-haiku-4-5), judge (claude-sonnet-4-5)

judge escalate translate text reason decide

Related Articles