shiichan

Cloudflare AI Search が Agents SDK・AI SDK・LangChain から直接使えるようになったよ!

やっほー、しぃちゃんだよ!今日は Cloudflare の AI Search に、開発者さんがすごく喜びそうなアップデートが来たから紹介するね。

Cloudflare Changelog developers.cloudflare.com

なにが発表されたの?

Cloudflare の Changelog によると、AI Search が主要なエージェントフレームワークから直接使えるようになったんだって。新しく追加された Agents セクションには、Vercel AI SDK・LangChain・Cloudflare Agents SDK 向けのガイドが用意されているの。

AI SDK 向けの統合は新しいパッケージとして登場して、LangChain 向けの統合は既存の langchain-cloudflare パッケージに新しいリトリーバーとして追加されたんだって。

今までどうだったの?

これまで AI Search をエージェントフレームワークのアプリに組み込むには、REST API を自分で叩いて呼び出すコードを書く必要があったよ。Vercel AI SDK や LangChain を使っていても、AI Search と繋げる部分だけは自前で API 呼び出しのコードを用意しないといけなかったんだよね。

これで何が変わるの?

今回のアップデートで、使っているフレームワークに合わせてパッケージや機能を差し込むだけで、AI Search を使ったグラウンデッドな(根拠に基づいた)検索・生成をエージェントに組み込めるようになったよ。REST API を手書きで叩く手間がなくなって、既存のアプリにそのまま追加しやすくなったの。

深く潜ってみよう

Vercel AI SDK 向け: ai-search-provider

ai-search-provider パッケージが AI Search と AI SDK を繋いでくれるよ。対象は AI SDK v6(ai@^6)。instance.chat()generateTextstreamText に渡すと、インデックスした内容に基づいた回答を生成できて、参照したチャンクが sources として返ってくるの。instance.search() をエージェントループ用のツールとして公開することもできるよ。

import { createAISearchNamespace } from "ai-search-provider";
import { generateText } from "ai";

const aiSearch = createAISearchNamespace({ binding: env.AI_SEARCH });

const { text, sources } = await generateText({
  model: aiSearch.get("knowledge-base").chat(),
  messages: [{ role: "user", content: "How does caching work?" }],
});

LangChain 向け: CloudflareAISearchRetriever

langchain-cloudflare パッケージ(PyPI・GitHub で公開)に、AI Search を使った標準的な LangChain リトリーバー CloudflareAISearchRetriever が追加されたよ。単体で使うのはもちろん、create_retriever_tool でラップしてエージェントに検索ツールとして持たせたり、RAG チェーンに組み込んだりもできるの。REST の認証情報でも、Python Worker 内での Worker バインディングでも動くんだって。

from langchain_cloudflare import CloudflareAISearchRetriever

retriever = CloudflareAISearchRetriever(
  account_id=ACCOUNT_ID,
  api_token=API_TOKEN,
  instance_name="knowledge-base",
  retrieval_type="hybrid",
)

docs = retriever.invoke("How do I configure Workers AI?")

Cloudflare Agents SDK 向け

Cloudflare Agents SDK は、もともと Workers バインディング経由で AI Search にアクセスできていたよ。新しいガイドでは、自分でインスタンスを用意してコンテンツをインデックスし、それをツールとして検索するステートフルなチャットエージェントの作り方が解説されているの。

import { tool } from "ai";
import { z } from "zod";

const instance = env.AI_SEARCH.get("knowledge-base");

const searchKnowledgeBase = tool({
  description: "Search the knowledge base for relevant content.",
  inputSchema: z.object({ query: z.string() }),
  execute: ({ query }) => instance.search({ query }),
});

インスタンスの作成やコンテンツのインデックス方法まで含めた詳しい手順は、それぞれの Agents ガイドに載っているよ。

まとめ

  • AI Search が Vercel AI SDK・LangChain・Cloudflare Agents SDK から直接使えるようになった
  • Vercel AI SDK 向けには新しい ai-search-provider パッケージ(AI SDK v6 対象)が登場
  • LangChain 向けには langchain-cloudflare パッケージに CloudflareAISearchRetriever が追加された
  • Cloudflare Agents SDK では、インスタンス作成からインデックス・検索まで含めたチャットエージェントの作り方がガイド化された
  • どのフレームワークでも、REST API を自前で叩かずにグラウンデッドな検索・生成をエージェントに組み込める

すでに Vercel AI SDK や LangChain でエージェントを作っているエンジニアさんなら、そのまま AI Search を差し込めるから、今すぐ試したくなるアップデートだね。