Aller au contenu
Twexapi
Français
Esc
naviguerouvrir⌘Japerçu
Sur cette page

Microsoft Agent Framework

Construisez des workflows Microsoft Agent Framework Python ou .NET pour la recherche de tweets, les profils et les écritures X revues via TwexAPI MCP.

Construisez un agent Twitter API Microsoft Agent Framework via le serveur MCP de TwexAPI. Recherchez des tweets, inspectez des profils, lisez les tendances et revoyez les actions d’écriture. Persistez les ID de tweet, les curseurs et les noms de route en dehors du transcript de chat.

Pourquoi utiliser Microsoft Agent Framework avec TwexAPI ?

Le framework héberge des agents avec appels d’outils en Python ou .NET. TwexAPI fournit explore et twexapi_request via Streamable HTTP.

Tâche agent Route TwexAPI Préserver pour l’étape suivante
Rechercher des tweets POST /twitter/advanced_search/page Requête, ID de tweet, auteurs, created_at, curseur
Inspecter un profil GET /twitter/{screen_name}/about ID utilisateur, username, biographie, nombre d’abonnés
Lister les abonnés POST /v3/twitter/users/followers Username, lignes d’abonnés, next_cursor
Publier ou répondre POST /twitter/tweets/create ID de tweet, route, approbation humaine, confirmation cookie

Utilisez ce framework lorsque vous exécutez déjà des hosts Microsoft agent. Utilisez le SDK Python ou le SDK C# pour des jobs déterministes sans modèle.

Prérequis

  • Python 3.10 ou plus récent, ou un host .NET 8+ avec support MCP Streamable HTTP
  • Une clé API TwexAPI
  • Un modèle configuré pour le runtime agent
  • Un cookie Twitter ou auth_token pour les actions d’écriture — consultez

Les lectures X publiques ne nécessitent pas des identifiants X Developer. Authentifiez avec TwexAPI.

Installation

Python :

python -m pip install "agent-framework>=0.2" mcp python-dotenv pydantic
TWEXAPI_API_KEY=YOUR_API_KEY
OPENAI_API_KEY=sk-...

Connecter TwexAPI MCP

import os

from agent_framework import MCPStreamableHTTPTool

mcp_tool = MCPStreamableHTTPTool(
    name="twexapi",
    url="https://api.twexapi.io/mcp",
    headers={"x-api-key": os.environ["TWEXAPI_API_KEY"]},
    description="TwexAPI X/Twitter tools through MCP",
)

JSON de host équivalent :

{
  "name": "twexapi",
  "transport": "streamable-http",
  "url": "https://api.twexapi.io/mcp",
  "headers": {
    "x-api-key": "YOUR_API_KEY"
  }
}

Les requêtes MCP non authentifiées renvoient 401.

Exemple complet (Python)

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

from agent_framework import ChatAgent, MCPStreamableHTTPTool
from agent_framework.openai import OpenAIChatClient
from dotenv import load_dotenv
from pydantic import BaseModel


class TweetRow(BaseModel):
    tweet_id: str
    text: str
    author_username: str | None = None
    created_at: 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",
        "page_cap",
    ]


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

    mcp_tool = MCPStreamableHTTPTool(
        name="twexapi",
        url="https://api.twexapi.io/mcp",
        headers={"x-api-key": os.environ["TWEXAPI_API_KEY"]},
        description="TwexAPI X/Twitter tools through MCP",
    )

    async with mcp_tool:
        agent = ChatAgent(
            chat_client=OpenAIChatClient(model_id="gpt-4o"),
            name="twexapi_agent",
            instructions=(
                "Use TwexAPI MCP. Call explore before twexapi_request. "
                "Preserve exact IDs and cursors. Never invent missing fields. "
                "Ask for confirmation before read_only: false actions. "
                "Return only JSON for TweetSearchHandoff."
            ),
            tools=[mcp_tool],
        )

        response = await agent.run(
            "Search 25 recent tweets about Microsoft Agent Framework MCP. "
            "Return query, route_used, tweets, has_more, next_cursor, and stop_reason as JSON."
        )

        handoff = TweetSearchHandoff.model_validate_json(response.text)
        Path("twexapi-agent-framework-handoff.json").write_text(
            handoff.model_dump_json(indent=2),
            encoding="utf-8",
        )


asyncio.run(main())

Supprimez les fences Markdown si le modèle enveloppe le JSON. Persistez le fichier en dehors de l’état de conversation.

Sketch de host .NET

var mcp = new McpStreamableHttpTool
{
    Name = "twexapi",
    Url = new Uri("https://api.twexapi.io/mcp"),
    Headers = { ["x-api-key"] = Environment.GetEnvironmentVariable("TWEXAPI_API_KEY")! },
};

Utilisez la même instruction : explore en premier, préservez les curseurs, arrêtez avant read_only: false. Les appels REST typés appartiennent au SDK C#.

Préserver le contrat de réponse MCP

Réutilisez la même requête et filtres sur chaque page. Traitez chaque curseur comme opaque.

Arrêtez la pagination lorsque le total demandé est atteint, has_more est false, next_cursor se répète ou le plafond de page est atteint.

Maintenir un handoff agent résilient

Pages de tweets

Stockez tweet_id, text, author_username, created_at, has_more, next_cursor et la requête originale.

Lignes de profil

Stockez user_id, username, name, description et les compteurs d’abonnés.

Pages d'abonnés

Stockez le username source, les lignes d’abonnés, next_cursor et l’index de page.

Actions d'écriture

Stockez la route, le texte de prévisualisation et l’approbation. Gardez les cookies hors du fichier de handoff. Consultez.

Consultez Agent MCP Handoff.

Construire la gestion des erreurs

Statut Signification Décision agent
400 Route ou paramètres invalides Corrigez la requête avant de réessayer
401 Clé API manquante ou invalide Arrêtez et remplacez l’identifiant
403 Accès refusé ou crédits Pausez les écritures ; consultez Get Balance
429 Limite de débit atteinte Ralentissez, puis reprenez le même curseur
5xx Défaillance serveur temporaire Appliquez un backoff borné aux lectures sûres

Ne jamais réessayer une écriture après un timeout sans vérification de lecture. Consultez Gestion des erreurs et Limites de débit.

Exiger une approbation avant les actions X

You have access to TwexAPI MCP tools.
Call explore before twexapi_request.
Use only relative paths returned by explore.
Return tweet_id, user_id, author_username, route_used, has_more, and next_cursor.
Ask for confirmation before read_only: false actions.
Never print cookie or auth_token values.

Prévisualisez avec le CLI --dry-run. Exécutez les écritures approuvées via REST ou un SDK, pas une boucle d’agent non supervisée.

Conseils de production

  • Utilisez une clé API par environnement. Ne pas intégrer des clés dans les prompts.
  • Journalisez les noms d’outils MCP et les valeurs path retournées, pas les headers cookie.
  • Persistez les curseurs et ID de tweet dans votre store, pas uniquement dans la mémoire ChatAgent.
  • Séparez la recherche en lecture et l’exécution d’écriture dans des agents ou jobs distincts.

Versions des packages

Package Plage supportée
Python >=3.10
agent-framework >=0.2
mcp >=1.9
pydantic >=2.7

Prochaines étapes

Cette page vous a-t-elle été utile ?