0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

駆け出しAIエンジニアがAIエージェント開発、AIチャットをAPI連携する上でLLM・AIモデルによって結果が異なる対応をどうすべきか(特にAPI参照型)

0
Last updated at Posted at 2026-03-15

最新情報、時事問題を考慮したAIエージェント、AIチャットでAPI連携をするには・・・

にてTypingmindとOpenRouterを組み合わせた記事を投稿しました。この手法はAPIでAIモデルに問合わせ結果を受け取る方法としては安く収まる方法です。

各モデルの反応を見るため、試しに以下の文言を入力して回答を得てみました。
「openrouterはAI実行履歴を自動でSnowflake蓄積できますか」
「openrouterはAI実行履歴を自動でSnowflake蓄積できますか?最新のWeb情報も検索して教えて」

いくつかのAIモデルを使いましたが、AIモデル毎に結果は異なる。古い安いモデルなら当然情報が最新化されづらいので最新情報が返せない。これは自然だと思います。
ところが最近リリースされたAIにおいて皮肉にもxAI Grok 4.2 Betaは概ね正しく、最近リリースの2026年3月のGemini 3.1 Flash PreviewがGrokに負けていると取れる結果に。一方で、本家のCopilotやGeminiの無料Webチャット画面では概ね期待した回答が返って来る。
AI界隈ではある意味常識の範疇でしょうけど、この手の問題はこういう事例を基に理由を把握しないとAI活用に失敗するとも気づきます。日々なんとなくGeminiやCopilotのチャットしていると一番肝心なことを忘れてしまうのです。

特にAIエージェントと呼ばれるAPI活用をするようなものにおいては大きく考慮しないといけない点が3つあります。
①モデルごとの知識更新、ネット上の情報を引き渡すか検索させる指定をするのか
②質問解釈
③概念の理解
この3つが一致するようにAI活用を行わないといけません。
①についてRAGを使用する場合でモデルが対応できそれ以外は無視するエージェントの場合はそこまで問題ないとも受け取れそうです。ネット情報、ツイート情報の最新を考慮せよとなる期待ではAPIのパラメーター設定、モデルによってできることできないことバラバラになってしまう。
②、③特に専門用語の解釈は受け取り方が異なると回答が変わる。ここも注意しないといけません。この用語、目的はこういう意味ですと補完して個別具体的に教えないと正しい情報を返す力があっても期待通りに返せなくなるおそれがある。

「情報についてはこちらで全て用意されたファイルに基づいて、資料を作成せよ」という指示の場合、モデルそのものの効果が発揮できそうですが、情報がネット上に点在しているとか理解が人によってばらつくようなものについてはAIに投げたところでAIごとに回答はバラバラ。同じGeminiやGrokの回答でもAPIの回答と本家Webチャットの回答が正反対ということも生じ得る良い題材ではないかと思ったところです。

例えばTypingmindなどのUI側のプラグインでネット検索結果をAIモデルに引き渡す方法、APIモデル呼び出し時に:online引数を指定するなどで改善が期待できることもあるようだ。
image.png

最新情報を追えていない事例.jpg
最新情報を追えていない事例2.jpg

Geminiになぜ回答が違うのか聞いてみた。

openrouterはAI実行履歴を自動でSnowflake蓄積できますか という質問をこのチャットとAPI経由でGeminiやGrokで尋ねた場合と結果が違うのはなぜですか

Gemini 本家Webチャット無償版の回答

結論から申し上げますと、OpenRouterには**「Broadcast」という機能があり、SnowflakeへAIの実行履歴(トレース)を自動で蓄積することが可能**です。
ご質問にある「GeminiやGrokでの回答結果が異なる理由」については、主に情報の鮮度と**学習データのカットオフ(知識の区切り)**が関係しています。

1. OpenRouterとSnowflakeの連携について
OpenRouterは「Observability(観測性)」の一環として、外部ストレージや分析ツールにデータを直接送信するBroadcast機能を提供しています。
自動蓄積の仕組み: OpenRouterの管理画面(Settings > Observability)で「Snowflake」を送信先に設定すると、API経由でのリクエストやチャットの履歴(入力・出力・トークン数・コストなど)が、指定したSnowflakeのテーブルへ準リアルタイムでストリーミングされます。
メリット: 自分でDB保存用のコードを書く必要がなく、分析や監査用のログをSnowflakeに集約できます。

2. なぜ回答結果がモデルによって違うのか?
AIモデル(Gemini、Grok、GPTなど)に同じ質問をしても回答が食い違う主な理由は以下の3点です。
① 情報の鮮度(最新アップデートの把握)
OpenRouterのSnowflake連携は比較的新しい機能、もしくはドキュメントの更新頻度が高い分野です。
Gemini: Googleの最新検索機能(Grounding)を併用している場合、今現在のWeb上のドキュメントを参照して「できる」と答えます。
Grok: X(旧Twitter)のリアルタイム情報を参照できるため、最新の仕様変更に強い傾向があります。
古いモデル: 学習データが数ヶ月〜1年前で止まっているモデルの場合、「そのような公式機能はない(手動でAPIを叩いて保存する必要がある)」と、古い情報を元に回答してしまうことがあります。

② 学習データの「カットオフ」
AIには「この日までのデータで学習した」という期限があります。Snowflake連携機能がリリースされた時期よりも前のデータで学習したモデルは、その機能の存在を知りません。

③ 質問の解釈の揺れ
「API経由で」という言葉の解釈がモデルによって異なる場合があります。
解釈A: 「OpenRouterというサービス自体に、履歴をSnowflakeへ飛ばす設定があるか?」
解釈B: 「自分が書くコードの中で、OpenRouterのAPIを叩いた後に、その結果をSnowflakeに書き込む処理を書けるか?」
モデルがBと解釈した場合、「(プログラムを書けば)可能です」という汎用的な回答になり、Aの「公式の自動機能」に言及しないことがあります。

3. 正しい確認方法
現在、OpenRouterの公式ドキュメントには**「Broadcast to Snowflake」**というガイドラインが存在します。
[!TIP]
実際の設定手順の概要:
Snowflake側で履歴保存用のテーブル(OPENROUTER_TRACESなど)を作成する。
Snowflakeの認証トークンを発行する。
OpenRouterの「Settings」→「Observability」でSnowflakeを有効化し、認証情報を入力する。
もしよろしければ、Snowflake側に作成すべきSQLテーブルの定義や、OpenRouterの設定画面で必要な項目について詳しくお調べしましょうか?
大変失礼いたしました。OpenAIやxAI、Googleの最新・最上位モデルであっても、情報が正確でなかったとのこと、非常に重要なご指摘です。
実際、「OpenRouterがSnowflakeへ自動で履歴を蓄積(Broadcast)できる」という情報は正しいのですが、なぜ多くの最新AIたちがこれを「できない」と回答したり、誤った解説をしてしまうのか、その裏側にある**「AIの限界」と「特定の技術仕様」**について解説します。
なぜ最新AI(GPT-5.3 / Grok 4.1 / Gemini 3.1)でも間違えるのか?
結論から言うと、「情報のマイナーさ」と「名前の混同」、そして**「ドキュメントの更新タイミング」**が重なっているためです。
1. 「Broadcast」機能が比較的新しく、かつ特定用途向けである
OpenRouterの「Broadcast to Snowflake」は、公式ドキュメントに記載されている現役の機能ですが、一般的な「チャット履歴の保存」ではなく、開発者向けの**「分散トレーシング(Observability)」**という枠組みで実装されています。
多くのAIは「OpenRouterに保存機能があるか?」と聞かれると、一般的なダッシュボード上の履歴表示機能を連想し、外部DB連携というマニアックな設定項目まで知識が及ばないことがあります。
2. モデルの名称と「ハルシネーション(幻覚)」
ご提示いただいたモデル名(GPT-5.3やGrok 4.1など)は、現時点(2026年3月)で非常に新しい、あるいは特定のバージョンアップ版です。
知識の空白: 最新モデルであればあるほど、その学習データが「つい数ヶ月前」で切り替わっている可能性があり、OpenRouterのような変化の激しいプラットフォームの最新のUI変更を追いきれていない場合があります。
推論の癖: AIは「AというサービスとBというサービスが直接連携している例」が世の中に少ない場合、確率的に「できない(自分でAPIを組む必要がある)」と回答するバイアスがかかりやすいです。

3. API経由での回答における「検索の欠如」
API経由でGeminiやGrokを利用する場合、「リアルタイム検索(Web Search)」機能がオフになっていることが多々あります。
検索がオフだと、AIは「自分の頭の中にある古い(または不完全な)知識」だけで回答します。
その結果、公式サイトの「Observability > Snowflake」という設定項目の存在に気づけず、間違った回答をしてしまいます。
確実な事実としての「OpenRouter × Snowflake」連携
あらためて、OpenRouterの公式仕様(2026年現在のドキュメントベース)に基づく事実は以下の通りです。
機能名: Broadcast(ブロードキャスト)
仕組み: OpenRouterの Settings > Observability から設定。
動作: API経由のリクエストが発生するたびに、OpenRouter側からSnowflakeの指定テーブルへ、自動的に実行履歴(入力、出力、トークン数、コスト等)がストリーミング送信されます。

必要なもの: 1. Snowflakeの ACCOUNTADMIN 権限で作ったアクセストークン

2. 受け皿となる OPENROUTER_TRACES テーブル(SQLで事前作成が必要)
今後のためのアドバイス
今回のように「最新のクラウドサービスの連携可否」を問う場合、AIは非常に間違いやすいです。
「OpenRouterの公式ドキュメント(openrouter.ai/docs/guides/features/broadcast/snowflake)を検索して、最新の仕様を教えてください」
このようにURLを指定したり「検索を強制」する指示を出すと、GPT-5.3やGemini 3.1 Flash Liteなどの高性能モデルでも、間違いを劇的に減らすことができます。
もしよろしければ、実際にSnowflake側で叩くべき 「履歴蓄積用テーブル作成SQL」 のコードをお出ししましょうか?

Copilot 本家Webチャット無償版の回答

結論から言うと、
*   **OpenRouterは「設定すれば」AI実行履歴(トレース)をSnowflakeへ自動蓄積できます**
*   ただしその事実を\*\*このチャット/API/Gemini/Grokで聞いたときに回答が食い違うのは、LLMごとの知識範囲・更新時期・質問解釈・実行環境(UIかAPIか)\*\*が異なるためです
以下、技術的に分解して説明します。
***

## 1. OpenRouterはAI実行履歴をSnowflakeに自動蓄積できるのか?
### 正確な答え
**はい、可能です。ただし「デフォルト」ではなく「Broadcast設定を有効化した場合のみ」です。**

OpenRouterには **Observability → Broadcast** という機能があり、  
これを有効にすると **すべてのAPIリクエストのトレース(入力・出力・トークン数・コスト・レイテンシ等)をSnowflakeへストリーミング送信**できます。 [\[openrouter.ai\]](https://openrouter.ai/docs/guides/features/broadcast/snowflake), [\[openrouter.ai\]](https://openrouter.ai/docs/guides/features/broadcast)
#### ポイント
*   自動蓄積 ✅(設定後)
*   Snowflake側に `OPENROUTER_TRACES` テーブルを作成
*   OpenRouterは **push型** でトレースを送信
*   アプリ側に追加実装は不要

つまり、
> 「OpenRouterはAI実行履歴を自動でSnowflakeに蓄積できますか?」
への**正確で最新の答え**は:
> **「はい。ObservabilityのBroadcast機能を有効化すれば可能です(デフォルトでは無効)」**
***
## 2. では、なぜ Gemini や Grok、API経由で聞くと答えが違うのか?
これは偶然ではなく、**構造的な理由**があります。
***
## 3. 理由①:モデルごとの知識カットオフと機能追加の時期
OpenRouterの **Snowflake Broadcast機能は比較的新しい公式機能**です  
(少なくとも2024後半〜2025年にかけて一般化)。
*   古い知識ベースのモデル  
    →「OpenRouterはSnowflake連携できない」「不明」
*   新しいドキュメントを参照できるモデル  
    →「Broadcastで可能」
という差が生じます。 [\[openrouter.ai\]](https://openrouter.ai/docs/guides/features/broadcast/snowflake)

特に:
*   **Gemini(特定バージョン)**
*   **Grok(軽量・リアルタイム志向)**
は、**OpenRouterのObservability機能まで網羅していないケース**があります。
***
## 4. 理由②:「OpenRouter自身が保存するか」vs「外部に送れるか」の解釈違い
質問文:
> openrouterはAI実行履歴を自動でSnowflake蓄積できますか
この文は **2通りに解釈可能**です。
| 解釈                                 | 回答    |
| ---------------------------------- | ----- |
| OpenRouterが**勝手に**Snowflakeへ保存するか? | ❌ しない |
| OpenRouterが**連携設定により**送信できるか?      | ✅ できる |
一部のモデルは前者として解釈し、  
「OpenRouterは実行履歴を永続保存しない」「stateless APIである」  
と答えます。 [\[openrouter.ai\]](https://openrouter.ai/docs/api/reference/responses/overview)
→ **これは半分正しく、半分誤り**
***

## 5. 理由③:UI(このチャット)とAPI経由のモデル差
### このチャット(Copilot系)
*   ドキュメントを横断的に統合
*   「Broadcast」「Observability」という**正確な機能名**を理解
*   Snowflake連携を「公式機能」として説明可能

### API経由(Gemini / Grok)
*   単体モデル推論
*   機能名が曖昧だと **存在しないものとして扱う**
*   「ログ保存=データ保持ポリシー」と混同しがち [\[openrouter.ai\]](https://openrouter.ai/docs/guides/privacy/logging)

***

## 6. 理由④:OpenRouterの「ログ」と「データ保持」の分離設計
OpenRouterは意図的に以下を分離しています:
| 項目                | 仕様                        |
| ----------------- | ------------------------- |
| API               | **stateless**(会話状態を保持しない) |
| データ保持             | Provider依存(30日/ゼロ保持など)    |
| 観測(Observability) | **外部転送で解決**               |
この設計を知らないモデルは、
> 「OpenRouterは実行履歴を保存しない → Snowflakeも無理」
と短絡します。 [\[openrouter.ai\]](https://openrouter.ai/docs/guides/privacy/logging)
***

## 7. まとめ(なぜ結果が違ったのか)
**違いが出た理由を一文で言うと:**
> **「OpenRouterのSnowflake連携は“新しく”“設定前提”の機能であり、  
> モデルごとに知識更新・質問解釈・ログ概念の理解がズレているから」**
### 正解の整理
*   ✅ OpenRouterは **SnowflakeへAI実行履歴を自動送信できる**
*   ✅ 公式機能名は **Observability → Broadcast**
*   ❌ デフォルトで勝手に保存はしない
*   ❌ すべてのLLMがこの機能を知っているわけではない
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?