Saltar al contenido
Twexapi
Español
Esc
navegarabrir⌘Jvista previa
En esta página

Microsoft Agent Framework

Crea flujos de trabajo con Microsoft Agent Framework en Python o .NET para búsqueda de tweets, perfiles y escrituras en X revisadas a través de TwexAPI MCP.

Crea un agente de Twitter API con Microsoft Agent Framework a través del servidor MCP de TwexAPI. Busca tweets, inspecciona perfiles, lee tendencias y revisa acciones de escritura. Persiste IDs de tweet, cursores y nombres de ruta fuera de la transcripción del chat.

¿Por qué usar Microsoft Agent Framework con TwexAPI?

El framework hospeda agentes con llamadas a herramientas en Python o .NET. TwexAPI proporciona explore y twexapi_request sobre Streamable HTTP.

Tarea del agente Ruta de TwexAPI Conservar para el siguiente paso
Buscar tweets POST /twitter/advanced_search/page Consulta, IDs de tweet, autores, created_at, cursor
Inspeccionar un perfil GET /twitter/{screen_name}/about ID de usuario, nombre de usuario, biografía, cantidad de seguidores
Listar seguidores POST /v3/twitter/users/followers Nombre de usuario, filas de seguidores, next_cursor
Publicar o responder POST /twitter/tweets/create ID de tweet, ruta, aprobación humana, confirmación de cookie

Usa este framework cuando ya ejecutes hosts de agentes de Microsoft. Usa el Python SDK o el C# SDK para trabajos deterministas sin modelo.

Requisitos previos

  • Python 3.10 o posterior, o un host .NET 8+ con soporte MCP Streamable HTTP
  • Una API key de TwexAPI
  • Un modelo configurado para el runtime del agente
  • Una cookie de Twitter o auth_token para acciones de escritura — consulta

Las lecturas públicas de X no requieren credenciales de X Developer. Autentícate con TwexAPI.

Instalación

Python:

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

Conectar 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 equivalente del host:

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

Las solicitudes MCP no autenticadas devuelven 401.

Ejemplo completo (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())

Elimina fences de Markdown si el modelo envuelve el JSON. Persiste el archivo fuera del estado de conversación.

Bosquejo 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")! },
};

Usa la misma instrucción: explore primero, conserva cursores, detente antes de read_only: false. Las llamadas REST tipadas pertenecen al C# SDK.

Conservar el contrato de respuesta MCP

Reutiliza la misma consulta y filtros en cada página. Trata cada cursor como opaco.

Detén la paginación cuando se alcance el total solicitado, has_more sea false, next_cursor se repita o se alcance el límite de páginas.

Mantener una entrega de agente reanudable

Páginas de tweets

Almacena tweet_id, text, author_username, created_at, has_more, next_cursor y la consulta original.

Filas de perfil

Almacena user_id, username, name, description y cantidades de seguidores.

Páginas de seguidores

Almacena nombre de usuario de origen, filas de seguidores, next_cursor e índice de página.

Acciones de escritura

Almacena ruta, texto de vista previa y aprobación. Mantén las cookies fuera del archivo de entrega. Consulta.

Consulta Agent MCP Handoff.

Construir manejo de errores

Estado Significado Decisión del agente
400 Ruta o parámetros inválidos Corrige la solicitud antes de reintentar
401 API key faltante o inválida Detente y reemplaza la credencial
403 Acceso denegado o créditos Pausa escrituras; verifica Get Balance
429 Límite de tasa alcanzado Espera y luego reanuda el mismo cursor
5xx Fallo temporal del servidor Aplica backoff acotado a lecturas seguras

Nunca reintentes una escritura después de un timeout sin una verificación de lectura. Consulta Error Handling y Rate Limits.

Requerir aprobación antes de acciones en 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.

Previsualiza con el CLI --dry-run. Ejecuta escrituras aprobadas a través de REST o un SDK, no un bucle de agente sin supervisión.

Guía de producción

  • Usa una API key por entorno. No incrustes keys en prompts.
  • Registra nombres de herramientas MCP y valores de path devueltos, no headers de cookie.
  • Persiste cursores e IDs de tweet en tu almacén, no solo en la memoria de ChatAgent.
  • Separa investigación de lectura y ejecución de escritura en agentes o trabajos distintos.

Versiones de paquetes

Paquete Rango compatible
Python >=3.10
agent-framework >=0.2
mcp >=1.9
pydantic >=2.7

Próximos pasos

¿Te ha resultado útil esta página?