Microsoft Agent Framework
TwexAPI MCP üzerinden tweet arama, profiller ve incelenen X yazma işlemleri için Python veya .NET Microsoft Agent Framework iş akışları oluşturun.
TwexAPI’nin MCP sunucusu aracılığıyla bir Microsoft Agent Framework Twitter API agent’ı oluşturun. Tweet arayın, profilleri inceleyin, trendleri okuyun ve yazma işlemlerini gözden geçirin. Tweet kimliklerini, imleçleri ve rota adlarını sohbet dökümünün dışında saklayın.
TwexAPI ile Microsoft Agent Framework’ü neden kullanmalısınız?
Framework, Python veya .NET’te araç çağırma agent’larını barındırır. TwexAPI, Streamable HTTP üzerinden explore ve twexapi_request sağlar.
| Agent görevi | TwexAPI rotası | Bir sonraki adım için saklayın |
|---|---|---|
| Tweet arama | POST /twitter/advanced_search/page |
Sorgu, tweet kimlikleri, yazarlar, created_at, imleç |
| Profil inceleme | GET /twitter/{screen_name}/about |
Kullanıcı kimliği, kullanıcı adı, biyografi, takipçi sayısı |
| Takipçi listeleme | POST /v3/twitter/users/followers |
Kullanıcı adı, takipçi satırları, next_cursor |
| Gönder veya yanıtla | POST /twitter/tweets/create |
Tweet kimliği, rota, insan onayı, çerez onayı |
Microsoft agent host’larını zaten çalıştırıyorsanız bu framework’ü kullanın. Model olmadan deterministik işler için Python SDK veya C# SDK kullanın.
Önkoşullar
- Python 3.10 veya üzeri, ya da MCP Streamable HTTP desteğine sahip .NET 8+ host
- Bir TwexAPI API anahtarı
- Agent runtime için yapılandırılmış bir model Public docs focus on API-key reads.
Herkese açık X okumaları X Developer kimlik bilgileri gerektirmez. TwexAPI ile kimlik doğrulaması yapın.
Kurulum
Python:
python -m pip install "agent-framework>=0.2" mcp python-dotenv pydantic
TWEXAPI_API_KEY=YOUR_API_KEY
OPENAI_API_KEY=sk-...
TwexAPI MCP’ye bağlanın
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",
)
Eşdeğer host JSON:
{
"name": "twexapi",
"transport": "streamable-http",
"url": "https://api.twexapi.io/mcp",
"headers": {
"x-api-key": "YOUR_API_KEY"
}
}
Kimlik doğrulamasız MCP istekleri 401 döndürür.
Tam örnek (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())
Model JSON’u Markdown çitleriyle sarıyorsa çitleri kaldırın. Dosyayı konuşma durumunun dışında kalıcı hale getirin.
.NET host taslağı
var mcp = new McpStreamableHttpTool
{
Name = "twexapi",
Url = new Uri("https://api.twexapi.io/mcp"),
Headers = { ["x-api-key"] = Environment.GetEnvironmentVariable("TWEXAPI_API_KEY")! },
};
Aynı talimatı kullanın: önce explore, imleçleri koruyun, read_only: false öncesinde durun. Tipli REST çağrıları C# SDK içinde olmalıdır.
MCP yanıt sözleşmesini koruyun
Her sayfada aynı sorgu ve filtreleri yeniden kullanın. Her imleci opak kabul edin.
İstenen toplam karşılandığında, has_more false olduğunda, next_cursor tekrarlandığında veya sayfa sınırına ulaşıldığında sayfalamayı durdurun.
Devam ettirilebilir agent devri tutun
Tweet sayfaları
tweet_id, text, author_username, created_at, has_more, next_cursor ve orijinal sorguyu saklayın.
Profil satırları
user_id, username, name, description ve takipçi sayılarını saklayın.
Takipçi sayfaları
Kaynak kullanıcı adı, takipçi satırları, next_cursor ve sayfa indeksini saklayın.
Yazma işlemleri
Rotayı, önizleme metnini ve onayı saklayın. Çerezleri devir dosyasının dışında tutun. Bkz..
Bkz. Agent MCP Handoff.
Hata işleme oluşturun
| Durum | Anlam | Agent kararı |
|---|---|---|
400 |
Geçersiz rota veya parametreler | Yeniden denemeden önce isteği düzeltin |
401 |
Eksik veya geçersiz API anahtarı | Durdurun ve kimlik bilgisini değiştirin |
403 |
Erişim reddedildi veya kredi | Yazmaları duraklatın; Get Balance kontrol edin |
429 |
Hız sınırına ulaşıldı | Geri çekilin, ardından aynı imleçle devam edin |
5xx |
Geçici sunucu hatası | Güvenli okumalara sınırlı geri çekilme uygulayın |
Zaman aşımından sonra okuma kontrolü yapmadan bir yazmayı asla yeniden denemeyin. Bkz. Error Handling ve Rate Limits.
X işlemlerinden önce onay isteyin
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.
CLI ile --dry-run önizlemesi yapın. Onaylanan yazmaları denetimsiz agent döngüsü yerine REST veya SDK üzerinden yürütün.
Üretim rehberi
- Ortam başına bir API anahtarı kullanın. Anahtarları prompt’lara gömmeyin.
- MCP araç adlarını ve dönen
pathdeğerlerini günlükleyin, çerez başlıklarını değil. - İmleçleri ve tweet kimliklerini yalnızca
ChatAgentbelleğinde değil, mağazanızda saklayın. - Okuma araştırması ile yazma yürütmesini ayrı agent’lara veya işlere bölün.
Paket sürümleri
| Paket | Desteklenen aralık |
|---|---|
| Python | >=3.10 |
agent-framework |
>=0.2 |
mcp |
>=1.9 |
pydantic |
>=2.7 |