KAISTの研究者たちは、言語モデル駆動のトレーディングボットに5日ごとに自身のプロンプトを書き換えさせることで、シャープレシオを2.94から4.00へと向上させ、50日間の試行において50ベーシスポイントのアウトパフォーマンスを実現したことを示しました。この利益は、ボットのあらゆる計算を文章から実行可能なPythonコードへと移行させたことによって得られました。

なぜ静的なプロンプトでは不十分なのか

コードを実行するほとんどのLLMエージェントは、モデルの振る舞いを指示するテキストブロックである、固定されたシステムプロンプトから始まります。多くの場合、プロンプトはコードツールを単なるオプションの装飾として扱っています。モデルはボラティリティや期待収益について「思考」するかもしれませんが、数値をプレーンテキストで書き込み、その後の投資額を曖昧な推測に基づいて決定してしまいます。その結果、モデルは完全に有効なコードを生成できるにもかかわらず、最終的な取引サイズがそのコードの外で選択されるという乖離が生じ、意思決定がハルシネーション(幻覚)の影響を受けやすくなります。

EvolveTradeのアプローチ

KAISTのチームは、静的なプロンプトを、5日間のローリングウィンドウでボットのパフォーマンスをレビューするメタエージェントに置き換えました。各レビューの後、メタエージェントはシステムプロンプトを書き換え、言語モデルとそのコードインタープリター間の契約を強化します。新しいプロンプトでは、以下の3つの具体的なステップを義務付けています。

  • Pythonを使用して、すべての資産のメトリクス(指標)のテーブルを作成する。
  • 明示的な数学的公式を適用して資産をスコアリングする。
  • Markdownテキスト内ではなく、コード内でターゲットとなるポートフォリオのウェイトを算出する。

実際、進化させたボットは、メトリクスの計算、リスクリミットの検証、ウェイトの調整のために、1回の取引サイクルにつき11回Pythonツールを呼び出しました。一方、ベースラインのエージェントはツールを1回しか呼び出さず、残りのプロセスはテキストベースのヒューリスティックに依存していました。

重要な数値

標準的な資産ユニバースを用いた50日間のバックテストにおいて、進化させたエージェントは以下の結果を記録しました。

  • シャープレシオ: 4.00(静的なエージェントの2.94に対し)
  • 累積リターン: 10.56%(静的なエージェントの8.88%に対し)

50ベーシスポイントのアウトパフォーマンスは、アクションを決定論的な数学に密接に結びつけたことによって直接的に生じたものです。モデルの意思決定パイプラインを完全に観測可能かつ再現可能にすることで、研究者たちはLLM駆動のトレーディング戦略を通常低下させる要因となる「推測」を排除しました。

勝者と敗者

金融ボットを構築する開発者にとって、教訓は明確です。エージェントが実行環境にアクセスできる場合、プロンプトは、あらゆる実行可能なインサイトをコードとして表現するように強制しなければなりません。この原則を無視すると、モデルがツールの出力を単なる背景情報として扱ってしまい、パフォーマンスの低下やリスクの増大を招く可能性があります。

限界と反論

次に注目すべき点

要点: LLMに自身の指示セットを書き換えさせることで、すべての取引決定が検証可能なコードへと強制され、曖昧なテキストベースのエージェントが、規律ある高リターンなエンジンへと変貌します。プロンプトとツールの契約を無視する開発者は、本来得られるはずの利益を逃すリスクがあります。