≪ Today I learned. RSS購読
公開日
タグ
AI
著者
ダーシノ

POMLでAIプロンプトを構造化して管理する

主流なAI(GPT)では、プロンプト(指示)を自然言語で与えて、タスクを実行させる。

そこで、誰もが一度は「自然言語を使った指示はあいまいで、実行ごとに結果が困って困る」「利用者によってプロンプトのフォーマットが異なるので管理しづらい」と思ったことがあるだろう。

自然言語は「あいまいさ」があって実行ごとに結果が異なる場合はあるので、DSLで厳密な指示をしたい気持ちが大きくなってきた

— ダーシノ / NES.css (@bc_rikko) August 6, 2025

そんなことを思っていたところ、MicrosoftがPOML(Prompt Orchestration Markup Language)を公開した。XMLでプロンプトのロールやタスク、例、アウトプットのフォーマット、マルチモーダルデータの統合などを構造化して定義できる。

POMLの基本構文

ファイルには*.pomlという拡張子をつける。

<poml>
  <role>あなたは{役割}です。</role>
  <task>以下の画像を使って{タスク}をしてください。</task>
  <img src="example.png" alt="◯◯の図解" />
  <output-format>
    100文字以内で説明してください。
  </output-format>
</poml>
<poml>
  <!-- コードを使う場合 -->
  <code inline="true">const x = 42;</code>
  <code lang="javascript">
    const ans = 42;
    console.log('ans', ans);
  </code>

  <!-- リスト -->
  <list>
    <item>Item 1</item>
    <item>Item 2</item>
  </list>

  <!-- 例示 -->
  <example>
    <input>{country}の首都は?</input>
    <output>{country}の首都は{capital}です。</output>
  </example>

  <!-- ステップバイステップの指示 -->
  <stepwise-instructions>
    <list>
      <item>調査対象の{country}を受け取る</item>
      <item>{country}の首都を調べる</item>
      <item>結果を{capital}として出力する</item>
    </list>
  </stepwise-instructions>
</poml>

さいごに

POMLが公開されて日が浅いため、今後どのように変わっていくかはわからない。ただ、構造化してやりたいことを明確に指示できるのは便利なので、今後も注目していきたい。