サイトをエージェント対応にするために行ったこと

ウェブサイトへのアクセスのうち、人間ではないものが増えています。誰かの質問に答えるためにページを読んだり、誰かに代わって製品を使おうとしたりする AI エージェントです。今週、当サイトと各製品のサイト(SawirPost、Sawirly、Rindraw、Math Daily など)を見直し、エージェントがより読みやすく、使いやすくなるようにしました。

チェックリストには isitagentready.com を使いました。サイトをレベルごとに評価してくれるサービスです。各ステップで何が必要だったかをご紹介します。

すべてのページに Markdown 版を用意

エージェントが HTML を読むと、数段落の本文にたどり着くまでにナビゲーションやスクリプト、フッターを延々と読み進めることになります。そこで、当サイトのすべてのページに、index.md という Markdown 版を並べて置くようにしました。中身はそのページの主要なコンテンツだけです。HTML から小さなスクリプトで生成しているので、内容がずれることはありません。

エージェントは 2 通りの方法で取得できます。URL の末尾に index.md を付けるか、Accept: text/markdown を指定してリクエストする方法です。静的ファイルの前段に置いた小さな Cloudflare Worker がこのヘッダーを確認し、Markdown 版を返します。その際、おおよそのトークン数を x-markdown-tokens ヘッダーに載せています。ブラウザには、これまでどおり通常のページが表示されます。

curl -H "Accept: text/markdown" https://sawirstudio.com/shopify/

Link ヘッダー

すべての HTML ページが、Markdown 版の場所を HTTP の Link ヘッダー(rel="alternate")で示すようになりました。ホームページでは、llms.txt とサイトマップの場所も示しています。エージェントは URL を推測しなくても、1 回のリクエストですべてを見つけられます。

llms.txt

llms.txt は、言語モデル向けに用意するサイトのプレーンテキストの目次です。1 行の概要と、各ページの説明付きの一覧で構成され、Markdown 版へのリンクが付いています。当サイトのものは、同じスクリプトでサイトマップから生成しています。

Content Signals

robots.txt が示すのは、誰がクロールしてよいかであり、読み取った内容を何に使ってよいかではありません。それを補うのが Content Signals です。当サイトの設定は 1 行で、3 つの用途すべてを許可しています。見つけてもらい、引用してもらいたいからです。

Content-Signal: ai-train=yes, search=yes, ai-input=yes

ここまでの 3 つのステップで、すべてのサイトがレベル 3 に到達しました。

API カタログと Agent Skills

SawirPost と Sawirly には API があるため、さらに先へ進みました。それぞれ /.well-known/api-catalog(RFC 9727)で API カタログを公開しています。OpenAPI の定義とドキュメントを指し示す、小さな JSON ファイルです。サイトにたどり着いたエージェントは、ページを 1 つも読まなくても API を見つけられます。

あわせて Agent Skills も公開しています。製品でよくある作業の進め方を、エージェント向けに短くまとめた手順書です。これで両方ともレベル 4 に到達しました。

ここで止めた理由

レベル 5 では、エージェントが OAuth のエージェント登録フローを通じて、自力でサインアップと認証を行えることが求められます。メールアドレスとパスワードでの登録方法を説明するページでは、条件を満たしません。これは本格的な機能開発であり、セキュリティ面の検討も欠かせません。そのため、急がずにじっくり考えているところです。

やる価値はあったか

静的サイトであれば、大半の作業は半日ほどで終わります。スクリプト 1 本、小さな Worker 1 つ、そして robots.txt への 1 行です。サイトを訪れる人にとっては、何も変わりません。今後は、当サイトのようなサイトを読んだエージェントが、より多くの質問に答えるようになると考えています。整った Markdown ページを用意しておくことが、正しく引用してもらうための一番の近道です。

お客様向けにも、同様の対応をローンチ&グロースの一環として行っています。

あわせてお読みください:Abilities API で WordPress プラグインを AI エージェントから使えるようにする、ホームページの「投げられるアプリアイコン」について

この記事は参考になりましたか?

新しい記事を公開したときに、このような記事をお届けしたいので、メールアドレスを教えていただけますと幸いです。

    迷惑メールは送りません。配信はいつでも解除できます。