İçeriğe geç
Twexapi
Türkçe
Esc
gezin⌘Jönizle
Bu sayfada

Pydantic AI

TwexAPI MCP üzerinden tipli tweet arama, profiller, takipçiler ve incelenen X eylemleri için Pydantic AI Twitter API agent'ları oluşturun.

TwexAPI’nin MCP sunucusu aracılığıyla bir Pydantic AI Twitter API agent’ı oluşturun. Tweet arayın, profilleri inceleyin ve her kalıcı devri bir Pydantic modeliyle doğrulayın. Önerilen her gönderi, yanıt, beğeni, takip veya doğrudan mesajı inceleyin.

Pydantic AI’yi TwexAPI ile neden kullanmalısınız?

Pydantic AI, model araç çağrılarını tipli Python çıktısıyla birleştirir. TwexAPI, MCP araçları explore ve twexapi_request aracılığıyla Twitter API rotaları sağlar.

Sınır Pydantic AI kontrolü Twitter agent faydası
MCP bağlantısı MCPServerStreamableHTTP Kimlik bilgilerini sürecinizde tutun
Son yanıt Pydantic output_type Hatalı tweet satırlarını ve imleçleri reddedin
Yazma işlemleri İnsan inceleme adımı Göndermeden, yanıtlamadan veya takip etmeden önce duraklatın
Bağlantı yaşam döngüsü async with agent İlgili çağrılar arasında tek bir MCP oturumunu yeniden kullanın

Tweet araması veya profil zenginleştirmesi için tek bir tipli agent kullanın. Her agent’ı odaklı tutun.

Önkoşullar

  • Python 3.10 veya daha yeni
  • TwexAPI API anahtarı
  • Araç çağırma destekli Pydantic AI uyumlu bir model
  • Yazma işlemleri için Twitter çerezi veya auth_token

Kurulum

python -m pip install "pydantic-ai[mcp]" python-dotenv

Gizlileri kaynak kontrolü dışında saklayın.

export TWEXAPI_API_KEY="YOUR_API_KEY"
export ANTHROPIC_API_KEY="YOUR_ANTHROPIC_KEY"

Tipli tweet arama agent’ı oluşturun

Agent’ı oluşturmadan önce son devri tanımlayın. Pydantic AI model çıktısını bu şemaya göre doğrular.

import asyncio
import os
from pathlib import Path
from typing import Literal

from dotenv import load_dotenv
from pydantic import BaseModel
from pydantic_ai import Agent
from pydantic_ai.mcp import MCPServerStreamableHTTP


class TweetRow(BaseModel):
    tweet_id: str
    text: str
    author_username: str | None = None
    created_at: str | None = None
    url: str | None = None


class TweetSearchHandoff(BaseModel):
    query: str
    route_used: str
    tweets: list[TweetRow]
    has_more: bool
    next_cursor: str | None = None
    stop_reason: Literal["complete", "requested_limit", "cursor_stalled"]


async def main() -> None:
    load_dotenv()

    server = MCPServerStreamableHTTP(
        "https://api.twexapi.io/mcp",
        headers={"x-api-key": os.environ["TWEXAPI_API_KEY"]},
    )

    agent = Agent(
        "anthropic:claude-sonnet-4-20250514",
        toolsets=[server],
        output_type=TweetSearchHandoff,
        instructions=(
            "Use TwexAPI MCP for Twitter API requests. Call explore before twexapi_request. "
            "Preserve exact IDs and cursors. Never invent missing tweet fields. "
            "Ask for confirmation before read_only: false actions."
        ),
    )

    result = await agent.run(
        "Search 25 recent tweets about Pydantic AI MCP. "
        "Return the query, route, tweet rows, cursor state, "
        "and an explicit stop reason."
    )

    Path("twexapi-pydantic-ai-handoff.json").write_text(
        result.output.model_dump_json(indent=2),
        encoding="utf-8",
    )


asyncio.run(main())

Agent explore ve twexapi_request araçlarını keşfeder. Agent bir rota veya parametre şeklini bilmediğinde önce explore çağırın.

Depolamadan önce alanları doğrulayın

Bu kaynak alanlarını çıktı modelinizde değiştirmeden tutun:

  • Tweet satırları: tweet_id, text, author_username, created_at, url
  • Profil satırları: user_id, username, name, description, takipçi sayıları
  • Sayfa durumu: has_more, next_cursor veya dile özgü imleç adları
  • Yazma makbuzları: rota adı, dönen tweet kimliği, onay durumu

Büyük kimlikleri asla kayan noktalı sayıya dönüştürmeyin. Kaynak kimliklerini yalnızca çıktı modelinizde tweet_id veya user_id olarak eşleyin.

has_more true kaldığında boş bir sayfada devam edin. İmleç yoksa veya sunucu bir imleci tekrarladığında durun. Toplanan satır sayısıyla cursor_stalled döndürün.

Tipli devir oluşturun

Tweet arama

Sorgu, rota, tweet kimlikleri, yazarlar, URL’ler, has_more, next_cursor ve durma nedeni saklayın.

Profil sorgulama

user_id, username, name, description ve takipçi sayılarını saklayın.

Takipçi sayfaları

Kaynak kullanıcı adı, takipçi satırları ve imleç kontrol noktasını saklayın.

Yazma işlemleri

Rota, önizleme metni, çerez gereksinimi ve onay kaydını saklayın.

API anahtarlarını agent çıktısının dışında tutun. Bkz. Agent MCP Handoff.

MCP bağlantısını yeniden kullanın

Birden fazla çalıştırma tek bağlantıyı paylaşmalıysa ilgili çağrıları sarın.

async def collect_two_search_pages(agent: Agent) -> None:
    async with agent:
        first_page = await agent.run(
            "Search 25 tweets about Pydantic AI MCP. Preserve the next cursor."
        )
        cursor = first_page.output.next_cursor
        if not first_page.output.has_more or cursor is None:
            return

        second_page = await agent.run(
            f"Continue tweet search for {first_page.output.query!r}. "
            f"Use explore, then twexapi_request with cursor {cursor!r}."
        )
        _ = second_page

X eylemlerinden önce onay gerektirin

Salt okunur agent’lar tweet’leri otomatik arayabilir. Yazma yetenekli agent’lar her X eyleminden önce insan kararı gerektirir.

class WritePlan(BaseModel):
    action: str
    endpoint: str
    preview_text: str
    requires_human_confirmation: bool = True

read_only: false rotalarını çağırmadan önce agent’ı durdurun. Yükleri CLI --dry-run ile önizleyin, ardından onaydan sonra REST veya Python SDK ile yürütün.

Hata yönetimi

Durum Pydantic AI kararı
400 Yeniden denemeden önce isteği düzeltin
401 Durdurun ve kimlik bilgisini değiştirin
403 Erişim veya kredi sorunlarını bildirin
429 Geri çekilin ve imleci koruyun
5xx Güvenli okumaları sınırlı geri çekilme ile yeniden deneyin

Zaman aşımından sonra dönen durumu kontrol etmeden bekleyen bir yazma işlemini yeniden oluşturmayın.

Pydantic AI MCP mi REST mi?

Gereksinim Seçin Neden
Bir model tweet veya profil işlemlerini seçer Pydantic AI MCP Agent explore ile rotaları keşfeder
Uygulama kodu tek bilinen rotayı çağırır Python SDK İstek deterministik kalır
Bir insan X eylemini incelemelidir Pydantic AI MCP + manuel REST Yürütmeden önce duraklatın
Zamanlanmış dışa aktarma model olmadan çalışır Prefect veya REST Model kararı gerekmez

Paket sürümleri

Paket Desteklenen aralık
Python >=3.10
pydantic-ai >=0.8
pydantic >=2.7

Sonraki adımlar

Bu sayfa yardımcı oldu mu?