AskTheApi Team Builder について
AskTheApi Team Builderは、OpenAPIで定義されたAPIを中心に、協調するエージェントチームを構築・実行するPythonライブラリです。自動計画、ストリーミング通信、型安全な設定を備え、チームをMCPサーバー経由で公開できます。
主な機能
- 01OpenAPI仕様からエージェントとツールを作成
- 02プランニングエージェントによるチーム調整
- 03エージェント間のやり取りをストリーミング
- 04組み込みHTTPクライアントによる外部API呼び出し
- 05Pydanticによる設定の検証
活用シーン
- 01OpenAPI仕様のエンドポイント向けエージェント構築
- 02複雑なタスクで複数エージェントを調整
- 03ワークフロー中のエージェント通信をストリーミング
- 04APIを使うエージェントチームをMCP経由で公開
MCP 対応
MCPサービスはOpenAPI仕様を解析し、エンドポイントを分類してツールを生成し、MCPインターフェースで公開します。エージェント間のやり取りのストリーミングにも対応します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
AskTheApi Team Builder
複雑なタスクを解決するために連携する自律型エージェントのネットワークを構築、管理するための高水準な Python ライブラリです。OpenAPI 標準で定義された API とシームレスに連携するよう設計されています。エージェントのチームを作成、設定、実行するための、明確で型安全なインターフェースを提供します。これにより、最小限の定型コードでマルチエージェントのワークフローを簡単に編成できます。
特長
-
🚀 エージェントネットワークを簡単に作成:OpenAPI 仕様に基づき、カスタムツールと機能を備えたエージェントネットワークをすばやく構築できます。
-
🤝 チームベースの連携:組み込みの計画エージェントによる自動調整で、エージェントチームを簡単に定義できます。
-
📡 ストリーミングによるインタラクション:エージェント間の通信をリアルタイムでストリーミングし、より動的で応答性の高いワークフローを実現します。
-
🔧 組み込み HTTP クライアント:外部 API を呼び出せる統合 HTTP クライアントにより、ツールの実装を簡素化します。
-
✨ Pydantic による型安全性:Pydantic モデルを活用し、堅牢なデータ検証と明確な型定義を実現します。
-
🎯 明確で直感的な API:開発者向けに設計されており、定型コードを最小限に抑え、明快さを最大限に高めます。
インストール
pip install asktheapi-team-builder
クイックスタート
パッケージの使用方法は次のとおりです。
1. OpenAPI 仕様からエージェントを作成する
from asktheapi_team_builder import TeamBuilder, Agent, Tool, Message, APISpecHandler
from typing import List
async def create_agents_from_spec():
# Initialize handlers
api_spec_handler = APISpecHandler()
# Download and parse OpenAPI spec
spec_content = await api_spec_handler.download_url_spec("https://api.example.com/openapi.json")
# Classify endpoints into logical groups
classification_result = await api_spec_handler.classify_spec(
spec_content
)
# Generate agents for each group
agents = []
for group_spec in classification_result.specs:
agent_result = await api_spec_handler.generate_agent_for_group(
group_spec,
spec_content
)
agents.append(agent_result)
return agents
2. チームを構築して実行する
async def run_agent_team(agents: List[Agent], query: str):
# Initialize team builder
team_builder = TeamBuilder(
model="gpt-4",
model_config={"temperature": 0.7}
)
# Build the team
team = await team_builder.build_team(agents)
# Create messages
messages = [
Message(
role="user",
content=query
)
]
# Run the team with streaming
async for event in team_builder.run_team(team, messages, stream=True):
if isinstance(event, ChatMessage):
print(f"{event.source}: {event.content}")
使用例
async def main():
# Create agents from spec
api_agents = await create_agents_from_spec()
# Combine with manual agents
all_agents = [weather_agent] + api_agents
# Run the team
await run_agent_team(
all_agents,
"What's the weather like in London and how might it affect local businesses?"
)
カスタムヘッダーと設定
カスタムヘッダーとモデル設定を使って、チームビルダーを設定できます。
team_builder = TeamBuilder(
model="gpt-4",
model_config={
"temperature": 0.7,
"default_headers": {
"Authorization": "Bearer your-token",
"Custom-Header": "custom-value"
}
}
)
# Run team with extra headers for specific requests
team = await team_builder.build_team(agents)
result = await team_builder.run_team(
team,
messages,
extra_headers={"Request-ID": "123"}
)
MCP(Model Context Protocol)サポート
このライブラリには Model Context Protocol の組み込みサポートがあり、OpenAPI 仕様からツールを自動生成して、エージェントチームを API エンドポイントとして公開できます。
from asktheapi_team_builder import MCPService, MCPConfig
# Configure MCP service
mcp_config = MCPConfig(
transport="sse", # Server-Sent Events transport
port=8000, # Port to run the MCP server
name="asktheapi_mcp" # Service name
)
# Initialize MCP service
mcp_service = MCPService(mcp_config)
# Start MCP server with OpenAPI spec
await mcp_service.start_from_spec(
url_spec="https://api.example.com/openapi.json",
headers={"Authorization": "Bearer your-token"}
)
MCP サービスは次の処理を行います:
- OpenAPI 仕様を自動的にダウンロードして解析する
- エンドポイントを論理的なグループに分類する
- 各グループに適したツールを生成する
- Model Control Protocol インターフェースを通じて、これらのツールを公開する
- エージェント間のインタラクションをリアルタイムでストリーミング処理する
コントリビューション
コントリビューションを歓迎します。お気軽にプルリクエストを送信してください。大きな変更を行う場合は、まず Issue を作成して、変更したい内容についてご相談ください。
- リポジトリをフォークする
- フィーチャーブランチを作成する(
git checkout -b feature/amazing-feature) - 変更をコミットする(
git commit -m 'Add some amazing feature') - ブランチにプッシュする(
git push origin feature/amazing-feature) - プルリクエストを作成する
開発環境のセットアップ
# Clone the repository
git clone https://github.com/alexalbala/asktheapi-team-builder.git
cd asktheapi-team-builder
# Install dependencies
pip install -e ".[dev]"
# Run tests
pytest
ライセンス
このプロジェクトは MIT ライセンスの下で公開されています。詳細は LICENSE ファイルをご覧ください。
謝辞
- Microsoft の AutoGen を基盤として構築
- エージェントチーム管理のための、より高水準なインターフェースの必要性に着想を得て開発
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。