Web検索とフェッチ
Triggerfishはエージェントに2つのツールを通じてインターネットへのアクセスを提供します:情報を 見つけるためのweb_searchとWebページを読むためのweb_fetch。これらを組み合わせることで、 エージェントはトピックを調査し、ドキュメントを検索し、最新情報を確認し、Webからデータを取得できます — すべて他のすべてのツールと同じポリシー強制の下で。
ツール
web_search
Webを検索します。タイトル、URL、スニペットを返します。
| パラメーター | タイプ | 必須 | 説明 |
|---|---|---|---|
query | string | はい | 検索クエリ。より良い結果のために関連するキーワード、名前、または日付を含めてください。 |
max_results | number | いいえ | 返す最大結果数(デフォルト:5、最大:20) |
レスポンス例:
"deno sqlite module"の検索結果:
1. @db/sqlite - Deno SQLite bindings
https://jsr.io/@db/sqlite
Fast SQLite3 bindings for Deno using FFI...
2. Deno SQLite Guide
https://docs.deno.com/examples/sqlite
How to use SQLite with Deno...web_fetch
URLから読み取り可能なコンテンツをフェッチして抽出します。デフォルトではMozilla Readabilityを 使用して記事テキストを返します。
| パラメーター | タイプ | 必須 | 説明 |
|---|---|---|---|
url | string | はい | フェッチするURL。web_searchの結果からURLを使用してください。 |
mode | string | いいえ | 抽出モード:readability(デフォルト、記事テキスト)またはraw(完全なHTML) |
抽出モード:
readability(デフォルト)— ナビゲーション、広告、定型文を除いてメインの記事コンテンツを 抽出します。ニュース記事、ブログポスト、ドキュメントに最適です。raw— 完全なHTMLを返します。Readability抽出が少なすぎるコンテンツを返す場合(例:シングルページ アプリ、動的コンテンツ)に使用します。
エージェントの使用方法
エージェントは検索してからフェッチするパターンを使用します:
web_searchを使用して関連URLを見つけるweb_fetchを使用して最も有望なページを読む- 情報を統合してソースを引用する
Web情報で回答する際、エージェントはすべてのチャンネル(Telegram、Slack、CLIなど)で見えるように ソースURLをインラインで引用します。
設定
Web検索には検索プロバイダーが必要です。triggerfish.yamlで設定します:
yaml
web:
search:
provider: brave # 検索バックエンド(braveがデフォルト)
api_key: your-api-key # Brave Search APIキー| キー | タイプ | 説明 |
|---|---|---|
web.search.provider | string | 検索バックエンド。現在サポート:brave。 |
web.search.api_key | string | 検索プロバイダーのAPIキー。 |
検索プロバイダーが設定されていない場合、web_searchは検索が利用できないことをエージェントに
伝えるエラーメッセージを返します。web_fetchは独立して機能します — 検索プロバイダーは不要です。 :::
セキュリティ
- フェッチされたすべてのURLはSSRF防止を通過します:DNSが最初に解決され、ハードコードされたIP デナイリストに対して確認されます。プライベート/予約済みIPレンジは常にブロックされます。
- フェッチされたコンテンツは分類され、他のすべてのツールレスポンスと同様にセッションtaintに寄与します。
PRE_TOOL_CALLフックは各フェッチ前に発火し、POST_TOOL_RESPONSEは後に発火するため、 カスタムポリシールールでエージェントがアクセスするドメインを制限できます。
