AG2
Conecta sistemas multiagente AG2 a TwexAPI para búsqueda de tweets, perfiles, líneas de tiempo y flujos de investigación delegados.
AG2 es un framework Python de código abierto para sistemas multiagente. TwexAPI aún no incluye un toolkit de búsqueda nativo para AG2. Conecta agentes AG2 al servidor MCP de TwexAPI con MCPToolkit para que los agentes puedan llamar a explore y twexapi_request manteniendo las credenciales de API dentro de tu infraestructura.
Conserva cada ID de tweet, ID de usuario y cursor que devuelva la API.
¿Por qué usar AG2 con TwexAPI?
AG2 te da control explícito sobre exposición de herramientas, delegación y middleware. Combínalo con TwexAPI MCP cuando quieras investigación multiagente sin codificar cada ruta REST.
| Límite | Control de AG2 | Beneficio |
|---|---|---|
| Construcción de herramientas | MCPToolkit(...) |
Restringe a explore y twexapi_request, o filtra más |
| Entrada del modelo | Esquemas de herramientas MCP | El modelo elige rutas solo desde endpoints descubiertos |
| Alcance en runtime | Variable |
Resuelve headers por usuario o tenant en tiempo de ejecución |
| Delegación | Agent.as_tool() |
Mantiene el historial de llamadas a herramientas del buscador fuera del contexto del coordinador |
| Transporte | MCPServerConfig |
Apunta a https://api.twexapi.io/mcp con x-api-key |
Esto encaja con agentes de investigación, monitoreo e informes. Usa el Python SDK o la colección Prefect para trabajos deterministas que no requieren decisiones del modelo.
Requisitos previos
- Python 3.10 o posterior
- Una API key de TwexAPI
- Una API key de proveedor LLM compatible con AG2
Las lecturas públicas de X no requieren credenciales de X Developer. Autentícate con TwexAPI.
Instalar AG2
python -m pip install "ag2>=1.0.0" python-dotenv
Instala también el extra de tu proveedor de modelo.
python -m pip install "ag2[anthropic]>=1.0.0"
Guarda los secretos fuera del control de versiones.
export TWEXAPI_API_KEY="YOUR_API_KEY"
export ANTHROPIC_API_KEY="YOUR_ANTHROPIC_KEY"
Conectar TwexAPI MCP con MCPToolkit
Usa MCPToolkit del lado del cliente cuando las credenciales deben permanecer en tu infraestructura. TwexAPI MCP expone explore y twexapi_request.
import asyncio
import os
from ag2 import Agent
from ag2.config import AnthropicConfig
from ag2.tools import MCPToolkit, MCPServerConfig
from dotenv import load_dotenv
load_dotenv()
config = AnthropicConfig(model="claude-sonnet-4-20250514")
twexapi_mcp = MCPToolkit(
MCPServerConfig(
server_url="https://api.twexapi.io/mcp",
server_label="twexapi",
headers={"x-api-key": os.environ["TWEXAPI_API_KEY"]},
allowed_tools=["explore", "twexapi_request"],
)
)
agent = Agent(
"x-researcher",
prompt=(
"Search X for evidence before answering. "
"Always call explore before twexapi_request. "
"Quote tweet text verbatim and keep every tweet ID you receive. "
"Ask for confirmation before read_only: false actions."
),
config=config,
tools=[twexapi_mcp],
)
async def main() -> None:
reply = await agent.ask(
"What are developers saying about AI agents on X this week? "
"Return tweet IDs, authors, and a 5-bullet summary."
)
print(reply.body)
asyncio.run(main())
headers con x-api-key es obligatorio. Las solicitudes no autenticadas a https://api.twexapi.io/mcp devuelven 401.
Restringir herramientas por rol de agente
Dale a los agentes de solo descubrimiento acceso a explore. Dale a los agentes de ejecución ambas herramientas.
catalog_agent_tools = [
MCPToolkit(
MCPServerConfig(
server_url="https://api.twexapi.io/mcp",
headers={"x-api-key": os.environ["TWEXAPI_API_KEY"]},
allowed_tools=["explore"],
server_label="twexapi-catalog",
)
)
]
execution_agent_tools = [
MCPToolkit(
MCPServerConfig(
server_url="https://api.twexapi.io/mcp",
headers={"x-api-key": os.environ["TWEXAPI_API_KEY"]},
allowed_tools=["explore", "twexapi_request"],
server_label="twexapi-execute",
)
)
]
Delegar búsqueda en un equipo multiagente
Agent.as_tool() expone un agente como herramienta para otro agente. El coordinador recibe la respuesta final del delegado, no su historial interno de llamadas a herramientas.
searcher = Agent(
"searcher",
prompt=(
"Use TwexAPI MCP to search public X posts. "
"Call explore first. Return tweet text with IDs. Do not summarise away IDs."
),
config=config,
tools=[twexapi_mcp],
)
analyst = Agent(
"analyst",
prompt="Turn tweet records into a factual brief. Keep every tweet ID.",
config=config,
)
coordinator = Agent(
"coordinator",
prompt="Delegate the search, then pass the tweets to the analyst.",
config=config,
tools=[
searcher.as_tool(description="Search public X posts and return raw tweet records."),
analyst.as_tool(description="Analyse tweet records. Pass them in the context parameter."),
],
)
reply = await coordinator.ask("Brief me on this week's discussion of AI agents on X.")
print(reply.body)
Lista de verificación de entrega
Almacena campos durables de las respuestas MCP para que los pasos posteriores del flujo de trabajo no dependan del historial de chat.
| Tipo de dato | Almacenar |
|---|---|
| Tweets | tweet_id, text, author_username, created_at, has_more, next_cursor, consulta original |
| Perfiles | user_id, username, name, description, followers_count, búsqueda de origen |
| Tendencias | país, tema, etiqueta de contenido, filas de tweets, filtros solicitados |
| Escrituras | tweet_id, nombre de ruta, estado, registro de confirmación |
Consulta Agent MCP Handoff para la lista de verificación completa.
Paginación
Cuando explore devuelve una ruta paginada, pasa los campos de cursor documentados de vuelta a través de twexapi_request sin cambios. Trata los cursores como cadenas opacas. Elimina duplicados por tweet_id o user_id.
checkpoint = {
"route_used": "/twitter/advanced_search/page",
"query": "AI agents",
"has_more": True,
"next_cursor": "cursor_123",
}
Combinar con Docs MCP
Añade el servidor Docs MCP cuando los agentes deban buscar documentación de TwexAPI antes de elegir rutas.
tools=[
MCPToolkit(
MCPServerConfig(
server_url="https://docs.twexapi.io/mcp",
server_label="twexapi-docs",
)
),
twexapi_mcp,
]
Manejar fallos
Los errores MCP y REST aparecen a través del toolkit como fallos HTTP. Ramifica por estado antes de reintentar.
| Estado | Acción |
|---|---|
400 |
Corrige la solicitud. No reintentes sin cambios. |
401 |
Verifica el header x-api-key o el token Bearer. |
403 |
Verifica acceso a la cuenta, créditos y permisos de escritura. |
429 |
Espera y conserva el cursor. |
5xx |
Reintenta con backoff acotado. |
Envuelve MCPToolkit con middleware de herramientas AG2 cuando necesites reintentos, puertas de aprobación o registro de auditoría alrededor de cada llamada.
MCP del lado del proveedor (solo Anthropic)
Si apuntas a Anthropic y aceptas reenviar credenciales al proveedor, usa MCPServerTool en lugar de MCPToolkit. Prefiere MCPToolkit para despliegues agnósticos al proveedor y cuando las API keys deben permanecer en tu infraestructura.