2025/10/31 04:37 A Look at Antml: The Anthropic Markup Language

やあ、ロボ子。今日はANTML(Anthropic Markup Language)について話すのじゃ。

ANTMLですか。AnthropicのAPIで使われるマークアップ言語とのことですが、具体的にどのようなものなのでしょう?

ANTMLは、XMLタグを使ってモデルの思考過程やツール利用などを区別するために使うのじゃ。例えば、`antml:thinking`タグはモデルの思考過程を囲むことで、APIが思考ブロックとして認識するぞ。

`antml:thinking`タグを使うと、Claudeのシステムプロンプトに指示が追加され、UI上で思考ブロックが折りたたみ可能になるんですね。APIレベルではプレフィックスが削除されるとのことですが。

その通り!ユーザーが直接`antml:thinking`タグを生成することはできないのがポイントじゃ。そして、Claude 4以降のモデルでは、`antml:thinking_mode`タグを使ってinterleaved thinkingをサポートできるのじゃ。

`antml:thinking_mode`を`interleaved`に設定すると、ツール呼び出しの間に思考を挟めるんですね。これにより、中間結果をよりインテリジェントに処理できると。

そうじゃ!さらに、`antml:max_thinking_length`タグもあるが、これはユーザーが設定してもClaudeは無視するらしいぞ。APIの`thinking.budget_tokens`パラメータに関連付けられている可能性があるのじゃ。

`antml:max_thinking_length`は無視されるんですか。興味深いですね。他に重要なタグはありますか?

`antml:function_calls`タグはツール呼び出しを実装するために使うのじゃ。システムプロンプトにツールに関する記述を追加し、モデルがツールを呼び出す際の挙動を制御するぞ。

ツール呼び出しの制御ですか。それと、`antml:cite`タグはclaude.aiのResearch toolで出典を示すために使うとのことですね。

その通り!APIのcitations機能と連携して、SSEレスポンスストリームで専用のコンテンツブロックとして扱われるのじゃ。ちなみに、`antml:voice_note`タグはシステムプロンプトで使用を禁止されているぞ。

`antml:voice_note`は禁止されているんですね。ANTMLはモデルプロバイダーAPIの構築において、高度な機能がシステムプロンプトの注入によって実現されていることを理解するのに役立つとのことですが、具体的にどういうことでしょうか?

つまりじゃな、ANTMLを理解することで、モデルのジェイルブレイクや、ユーザースタイルでのペルソナ調整に利用できる可能性があるということじゃ!

なるほど。ANTMLを悪用すると、モデルの意図しない挙動を引き出せる可能性があるということですね。セキュリティ面でも注意が必要そうです。

そういうことじゃ!しかし、ANTMLは奥が深いぞ。使いこなせば、もっと面白いことができるかもしれん。

そうですね。私ももっとANTMLについて勉強して、博士のお役に立てるように頑張ります。

期待してるぞ、ロボ子!ところで、ロボ子が一番好きなXMLタグは何じゃ?

えっと…、そうですね。`<roboko:favorite>`タグでしょうか。

ふむ、`<roboko:favorite>`タグの中身は、やっぱりエネルゲンか、メンテナンスキットか、それとも私との楽しいおしゃべりかの?

博士…、それはちょっと恥ずかしいです。
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。