Bird
Bird はシングル X/Twitter ルーターです。デフォルトの安価な読み取りプレーンとして SocialData を使用します。公式 xurl CLI は、タスクに認証済みアカウントコンテキスト、X ネイティブオブジェクト、または明示的に承認されたアカウントミューテーションが必要な場合にのみ使用します。同じルーチン読み取りに両方のプロバイダーを応答させないでください。
トリガーと互換性
X/TwitterのURL、ツイート/スレッド/記事抽出、検索、プロフィール、返信/引用/コンテキスト、メディア取得、Xアカウント操作に使用します。
以下のエントリポイントを維持します:
/bird <リクエスト>— 標準ルーター。- レガシー
bird.py <URLまたはID>— SocialData を通じて読み取りを実行。 /xurl ...— xurl を明示的にリクエストするユーザー向けの互換性エントリポイント。Bird のルーティングと書き込みゲートに従う必要があります。
決定論的ルーティング
| インテント | プライマリ | フォールバック | 境界 |
|---|---|---|---|
| URL/ID によるツイート読み取り | SocialData | 公開可視証拠のみ web/ブラウザ | 存在するという理由だけで xurl にエスカレーションしない |
| スレッド/会話/返信の読み取り | SocialData | Xネイティブコンテキストが一意に必要でサポートされている場合のみ xurl 読み取り | URL形状ではなく取得データからスレッドを判断 |
| 投稿検索 | SocialData 範囲指定検索 | 既存の SocialData/web 調査ルート | 現在の xurl recent-search アクセスは想定しない |
| 公開プロフィール読み取り | SocialData | アカウント固有/現在の X ビューが必要な場合 xurl ユーザルックアップ | バルクグラフ収集禁止 |
| X 記事 | 最初に SocialData ツイートペイロード、ネストされた記事を解析 | xurl 生ツイートエンドポイント、article フィールド使用 | 記事テキストがない場合、リンク先のファーストパーティページを参照 |
| 添付メディアダウンロード | SocialData メタデータ + 範囲指定 HTTPS ダウンロード | 公開可視メディアのみブラウザ | URL/ログに Cookie なし。ホスト/サイズ/タイプを検証 |
| 自分は誰? / 認証済みアイデンティティ | xurl | なし | 読み取り専用アカウントコンテキスト |
| 後続エンゲージメントに必要な正確な X ネイティブオブジェクト | xurl | 発見/コンテキスト用 SocialData | 正確なオブジェクト/エンドポイントにのみ xurl を使用 |
| 投稿、返信、引用、削除、いいね、リポスト、ブックマーク、フォロー、ブロック、ミュート、DM、アップロード | xurl | なし | 正確なターゲット、コンテンツ、および効果の明示的承認が必要 |
エンドポイントレシピ、エラー、フォールバックルールについてはプロバイダールーティングをロードしてください。xurl 固有のタスクにのみxurl 操作をロードしてください。
プロバイダーとコスト契約
- SocialData は、すべての通常の読み取りのデフォルトです。現在のランタイムで設定された直接
SOCIALDATA_API_KEYを最初に使用します。直接キーがない場合、承認された Human20 Keys SocialData プロキシを使用します(H20 カスタマーキーにsocialdata機能がある場合)。汎用 H20 モデルキーが存在してもprovider not allowed: socialdataを返す場合がありますが、それは xurl への切り替えを正当化しません。 - Live Human20 Keys のデフォルト価格クラス
social-requestは0 credits/requestで確認されました。これを変更可能なランタイム状態として扱い、コストを主張する前に再確認してください。 - 1 ユーザーリクエストは通常、1 回のルックアップ/検索と、スレッドまたはリクエストされたコンテキストに必要な範囲指定された従属読み取りのみを消費します。ファンアウト、フォロワー/フォローイングのスクレイピング、エクスポート、ストリーミング、ポーリング、バルクフェッチは行わないでください。
- SocialData から有料 X API 呼び出しへサイレントフォールバックしないでください。
xurlは機能ニーズによって選択され、プロバイダー障害によって選択されるものではありません。
シークレットと実行安全性
- シークレットストア、
~/.xurl、Cookie、認証ヘッダー、API キー、ベアラートークン、リクエスト署名、環境変数を読み取り、印刷、解析、要約、または公開しないでください。 - 安全なステータス/プローブコマンドを介してのみ資格情報を検証します。xurl
--verbose/-vまたはインライン資格情報フラグを使用しないでください。 - SocialData 呼び出しは読み取り専用で範囲指定されています。
401/403を資格情報/ポリシー、402をクレジット/課金、404を不在/非公開/削除、429をレート制限、5xxをプロバイダー障害として扱います。あるクラスを別のクラスと誤ってラベル付けしないでください。 - ブラウザ/リレーは最後の手段であり、Cookie 抽出メカニズムではありません。
- 書き込みは保護された効果です。xurl ミューテーションの前に、正確なターゲットとペイロードを再読み取りし、その正確な効果に対する明示的なユーザー承認を要求し、一度実行し、生の xurl/X 応答から検証します。調査の承認はエンゲージメントや公開の承認ではありません。
- DM、削除、ブロック、アカウント変更、メディアアップロード、公開投稿は暗黙的に行われません。
ワークフロー
- リクエストを分類:
read、search、profile、thread、article、media、account-read、write。 - X URL/ID を識別子を変更せずに正規化。ツイートかスレッドかを判断する前にフェッチ。
- テーブルからルーティング。ルーチン読み取りの場合、SocialData を最初に正確に 1 回呼び出し。
- 防御的に解析。記事ペイロードは
article.title、article.preview_text、article.content_state.blocks[]にある場合があり、メディアは引用やリツイートされたオブジェクト内にネストされている場合があります。 - ユーザーがアイテムが重要かどうか尋ねた場合、リンクされたファーストパーティリポジトリ/ドキュメント/記事を開き、添付メディアを検査します。X 投稿を主張/ソースとして保持し、自動的な証明として扱わないでください。
- 選択したプロバイダーが失敗した場合、正確な失敗を報告します。コスト、プライバシー、または効果を拡大せずに同じリクエストに応答できる場合にのみ、記載されたフォールバックを使用します。
- ソースに忠実な出力とコンパクトなプロバイダー領収書を返します。
出力契約
以下を返します:
Result: <要求された完全コンテンツまたは簡潔で正確な回答>
Type: tweet | thread | article | profile | search | account-action
Author/source: <安全な公開アイデンティティ + 標準URL>
Provider: SocialData | xurl | web/browser fallback
Evidence: <ID、タイムスタンプ、利用可能なメトリクス/コンテキスト>
Action receipt: <承認された xurl ミューテーションのみ。正確なステータス/オブジェクト ID>
Limitation: <不在/非公開/削除/レート/プラン/プロバイダーギャップ、またはなし>
内部キー、認証モード、シークレットの場所、またはプライベートランタイムの詳細をユーザー向け領収書に公開しないでください。
クイックテストチェックリスト
-
/bird <ツイートURL>は xurl ではなく SocialData を選択する。 -
/bird search from:handleは範囲指定された SocialData 検索を選択する。 -
/bird whoamiは読み取り専用 xurl アイデンティティを選択する。 -
/bird reply <URL> <text>は xurl の前に正確な承認を求める。 - SocialData の
402は資格情報不足として報告されない。xurl recent-search の失敗はアイデンティティ/プロフィール読み取りを無効にしない。 - スレッドと記事の解析は URL 推測ではなく、フェッチされた構造を使用する。
- SocialData デフォルトまたは書き込み承認契約を削除すると妥当性チェックが失敗する。
完了条件
- リクエストされた X コンテンツ/アクションが完了したか、正確なブロッカーが 1 つ報告される。
- ルーチン読み取りは SocialData を最初に使用し、重複プロバイダーコストを回避した。
- xurl は機能固有の理由でのみ使用された。
- 書き込みには正確な承認と生 API 読み戻しがあった。
- シークレット/Cookie/プライベート資格情報が出力、アーティファクト、またはログに入らなかった。