Bird
Bird는 단일 X/Twitter 라우터입니다. 기본 저비용 읽기 계층으로 SocialData를 사용하세요. 태스크에 인증된 계정 컨텍스트, X 네이티브 객체, 또는 명시적으로 승인된 계정 변경이 필요한 경우에만 공식 xurl CLI를 사용하세요. 동일한 루틴 읽기에 두 프로바이더를 모두 사용하지 마세요.
트리거 및 호환성
X/Twitter URL, 트윗/스레드/글 추출, 검색, 프로필, 답글/인용/컨텍스트, 미디어 검색, X 계정 작업에 사용하세요.
다음 진입점을 유지하세요:
/bird <request>— 표준 라우터.- 레거시
bird.py <URL-or-ID>— 여전히 SocialData를 통해 읽습니다. /xurl ...— 명시적으로 xurl을 요청하는 사용자를 위한 호환성 진입점. Bird의 라우팅 및 쓰기 게이트를 따라야 합니다.
결정적 라우팅
| 의도 | 기본 | 대체 | 경계 |
|---|---|---|---|
| URL/ID로 트윗 읽기 | SocialData | 웹/브라우저만 공개 가시 증거용 | 존재한다는 이유만으로 xurl로 에스컬레이션 금지 |
| 스레드/대화/답글 읽기 | SocialData | xurl 읽기는 X 네이티브 컨텍스트가 고유하게 필요하고 지원되는 경우에만 | URL 형태가 아닌 가져온 데이터에서 스레드 결정 |
| 게시물 검색 | SocialData 제한 검색 | 기존 SocialData/웹 연구 경로 | 현재 xurl 최근 검색 접근은 가정하지 않음 |
| 공개 프로필 읽기 | SocialData | 계정별/현재 X 뷰가 필요한 경우 xurl 사용자 조회 | 대량 그래프 수집 금지 |
| X 글 | 먼저 SocialData 트윗 페이로드; 중첩 글 파싱 | 'article' 필드가 있는 xurl 원시 트윗 엔드포인트 | 글 텍스트가 없는 경우 연결된 자사 페이지 팔로우 |
| 첨부 미디어 다운로드 | SocialData 메타데이터 + 제한된 HTTPS 다운로드 | 브라우저만 공개 가시 미디어용 | URL/로그에 쿠키 금지; 호스트/크기/타입 검증 |
| 내是谁 / 인증된 신원 | xurl | 없음 | 읽기 전용 계정 컨텍스트 |
| 이후 참여에 필요한 정확한 X 네이티브 객체 | xurl | SocialData는 발견/컨텍스트용 | 정확한 객체/엔드포인트에만 xurl 사용 |
| 게시, 답글, 인용, 삭제, 좋아요, 리포스트, 북마크, 팔로우, 차단, 뮤트, DM, 업로드 | xurl | 없음 | 정확한 대상, 내용, 효과에 대한 명시적 승인 필요 |
엔드포인트 레시피, 오류 및 대체 규칙은 프로바이더 라우팅을 로드하세요. xurl 관련 작업에만 xurl 작업을 로드하세요.
프로바이더 및 비용 계약
- SocialData는 모든 일반 읽기의 기본값입니다. 현재 런타임에서 구성된 직접
SOCIALDATA_API_KEY를 먼저 사용하세요. 직접 키가 없고 H20 고객 키에socialdata기능이 있는 경우 승인된 Human20 Keys SocialData 프록시를 사용하세요. 일반 H20 모델 키는 존재할 수 있지만provider not allowed: socialdata를 반환할 수 있습니다. 이것이 xurl로 전환하는 정당한 이유가 아닙니다. - 라이브 Human20 Keys의
social-request기본 가격 클래스는0 credits/request로 확인되었습니다. 이를 변경 가능한 런타임 상태로 취급하고 비용을 주장하기 전에 다시 확인하세요. - 일반적으로 하나의 사용자 요청은 한 번의 조회/검색과 스레드 또는 요청된 컨텍스트에 필요한 제한된 종속 읽기만 소비해야 합니다. 팬아웃, 팔로워/팔로잉 스크래핑, 내보내기, 스트리밍, 폴링 또는 대량 가져오기를 수행하지 마세요.
- SocialData에서 유료 X API 호출로 자동으로 대체하지 마세요.
xurl은 프로바이더 실패가 아닌 기능 필요에 따라 선택됩니다.
비밀 및 실행 안전
- 비밀 저장소,
~/.xurl, 쿠키, 인증 헤더, API 키, 베어러 토큰, 요청 서명 또는 환경 값을 읽거나, 출력하거나, 구문 분석하거나, 요약하거나 노출하지 마세요. - 안전한 상태/프로브 명령을 통해서만 자격 증명을 확인하세요. xurl
--verbose/-v또는 인라인 자격 증명 플래그를 사용하지 마세요. - SocialData 호출은 읽기 전용이며 제한적입니다.
401/403은 자격 증명/정책,402는 크레딧/청구,404는 부재/비공개/삭제됨,429는 속도 제한,5xx는 프로바이더 실패로 처리하세요. 한 클래스를 다른 클래스로 잘못 레이블링하지 마세요. - 브라우저/릴레이는 최후의 수단이며 절대 쿠키 추출 메커니즘이 아닙니다.
- 쓰기는 보호된 효과입니다. xurl 변경 전에 정확한 대상과 페이로드를 다시 읽고, 해당 정확한 효과에 대한 명시적 사용자 승인을 요구하고, 한 번 실행하고, 원시 xurl/X 응답에서 확인하세요. 연구 승인은 참여 또는 게시 승인이 아닙니다.
- DM, 삭제, 차단, 계정 변경, 미디어 업로드 및 공개 게시는 절대 암시적으로 발생하지 않습니다.
워크플로
- 요청 분류:
read,search,profile,thread,article,media,account-read또는write. - 식별자를 변경하지 않고 X URL/ID를 정규화합니다. 트윗 대 스레드를 결정하기 전에 가져옵니다.
- 테이블에서 라우팅합니다. 일반 읽기의 경우 정확히 한 번 SocialData를 호출합니다.
- 방어적으로 구문 분석합니다. 글 페이로드는
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 <tweet URL>은 xurl이 아닌 SocialData를 선택합니다. -
/bird search from:handle은 제한된 SocialData 검색을 선택합니다. -
/bird whoami는 읽기 전용 xurl 신원을 선택합니다. -
/bird reply <URL> <text>는 xurl 전에 정확한 승인을 위해 중단됩니다. - SocialData
402가 누락된 자격 증명으로 보고되지 않습니다. xurl 최근 검색 실패가 신원/프로필 읽기를 비활성화하지 않습니다. - 스레드 및 글 파싱은 URL 추측이 아닌 가져온 구조를 사용합니다.
- SocialData 기본값 또는 쓰기 승인 계약을 제거하면 유효성 검사가 실패합니다.
완료 기준
- 요청된 X 콘텐츠/작업이 완료되거나 정확히 하나의 차단 요소가 보고되었습니다.
- 일반 읽기는 SocialData를 먼저 사용했고 중복 프로바이더 지출을 방지했습니다.
- xurl은 기능별 이유로만 사용되었습니다.
- 모든 쓰기 작업은 정확한 승인과 원시 API 읽기 확인이 있었습니다.
- 비밀/쿠키/개인 자격 증명 자료가 출력, 아티팩트 또는 로그에 입력되지 않았습니다.