Observed since 20 Oct, 16:24 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
A toolkit for building A2A client
A2A SDK とメッセージングプラットフォーム(LINE、Slack)を統合したクライアントツールキットです。各プラットフォームのユーザーと A2A エージェント間の双方向コミュニケーションを可能にします。
このツールキットは、各メッセージングプラットフォームからのメッセージを受信して A2A エージェントに転送し、エージェントからの応答をプラットフォームユーザーに返すブリッジとして機能します。テキストメッセージだけでなく、画像やファイルのやり取りもサポートしています。
pip install -r requirements.txt
.envファイルを作成し、必要な設定を行います:
LINE_CHANNEL_SECRET=your_line_channel_secret
LINE_CHANNEL_ACCESS_TOKEN=your_line_channel_access_token
A2A_AGENT_CARD_URL=your_a2a_agent_card_url
HOST=http://localhost:8000 # ファイル配信用URL(オプション)
import os
import linebot.v3.messaging as line_messaging
import uvicorn
from dotenv import load_dotenv
from client.worker import A2AClientWorker
from providers.line.file import LocalFileStore
from providers.line.handler import DefaultLineEventHandler
from providers.line.server import LineServer, LineServerConfig
from providers.line.user_state import InMemoryUserStateStore
if __name__ == "__main__":
load_dotenv()
config = LineServerConfig(
line_messaging_config=line_messaging.Configuration(
access_token=os.getenv("LINE_CHANNEL_ACCESS_TOKEN"),
),
line_channel_secret=os.getenv("LINE_CHANNEL_SECRET") or "",
)
user_state_store = InMemoryUserStateStore()
file_store = LocalFileStore(base_uri=f"{os.getenv('HOST') or ''}/files", directory="public/files")
event_handler = DefaultLineEventHandler(
config=config.line_messaging_config,
file_store=file_store,
user_state_store=user_state_store,
)
worker = A2AClientWorker(
a2a_agent_card_url=os.getenv("A2A_AGENT_CARD_URL") or "",
event_handler=event_handler,
)
server = LineServer(config, worker, user_state_store)
uvicorn.run(server.build(), host="0.0.0.0", port=8000)
python src/samples/line.py
サーバーは http://localhost:8000 で起動します。LINE の Webhook エンドポイントは /callback です。
.envファイルを作成し、必要な設定を行います:
SLACK_BOT_TOKEN=your_slack_bot_token
SLACK_APP_TOKEN=your_slack_app_token
A2A_AGENT_CARD_URL=your_a2a_agent_card_url
import asyncio
import os
from dotenv import load_dotenv
from slack_sdk.web.async_client import AsyncWebClient
from client.worker import A2AClientWorker
from providers.slack.app import SlackApp, SlackAppConfig
from providers.slack.handler import DefaultSlackEventHandler
if __name__ == "__main__":
load_dotenv()
config = SlackAppConfig(
slack_bot_token=os.getenv("SLACK_BOT_TOKEN", ""),
slack_app_token=os.getenv("SLACK_APP_TOKEN", ""),
)
# Initialize Slack Web API client
slack_client = AsyncWebClient(token=config.slack_bot_token)
event_handler = DefaultSlackEventHandler(slack_client=slack_client)
worker = A2AClientWorker(
a2a_agent_card_url=os.getenv("A2A_AGENT_CARD_URL") or "",
event_handler=event_handler,
)
app = SlackApp(config, worker)
asyncio.run(app.run())
python src/samples/slack.py
Slack アプリがソケットモードで起動します。
MIT License
pypistats · 55 observations shown. Missing days are unknown. Source category: overall: without mirrors.
| Date / source period | Value | Observed at |
|---|---|---|
| 2026-10-20 – 2026-10-20 | 3 | 2026-10-21T09:55:33.5682006Z |
| 2026-10-19 – 2026-10-19 | 3 | 2026-10-21T09:55:33.5682006Z |
| 2026-10-18 – 2026-10-18 | 2 | 2026-10-21T09:55:33.5682006Z |
| 2026-10-17 – 2026-10-17 | 4 | 2026-10-21T09:55:33.5682006Z |
| 2026-10-16 – 2026-10-16 | 1 | 2026-10-21T09:55:33.5682006Z |
| 2026-10-15 – 2026-10-15 | 2 | 2026-10-21T09:55:33.5682006Z |
| 2026-10-14 – 2026-10-14 | 4 | 2026-10-21T09:55:33.5682006Z |
| 2026-10-13 – 2026-10-13 | 5 | 2026-10-21T09:55:33.5682006Z |
| 2026-10-12 – 2026-10-12 | 9 | 2026-10-21T09:55:33.5682006Z |
| 2026-10-11 – 2026-10-11 | 5 | 2026-10-21T09:55:33.5682006Z |
| 2026-10-10 – 2026-10-10 | 8 | 2026-10-21T09:55:33.5682006Z |
| 2026-10-09 – 2026-10-09 | 7 | 2026-10-21T09:55:33.5682006Z |
| 2026-10-07 – 2026-10-07 | 1 | 2026-10-21T09:55:33.5682006Z |
| 2026-10-06 – 2026-10-06 | 1 | 2026-10-21T09:55:33.5682006Z |
| 2026-10-03 – 2026-10-03 | 15 | 2026-10-21T09:55:33.5682006Z |
| 2026-10-01 – 2026-10-01 | 1 | 2026-10-21T09:55:33.5682006Z |
| 2026-09-30 – 2026-09-30 | 13 | 2026-10-21T09:55:33.5682006Z |
| 2026-09-29 – 2026-09-29 | 7 | 2026-10-21T09:55:33.5682006Z |
| 2026-09-28 – 2026-09-28 | 9 | 2026-10-21T09:55:33.5682006Z |
| 2026-09-27 – 2026-09-27 | 1 | 2026-10-21T09:55:33.5682006Z |
| 2026-09-26 – 2026-09-26 | 1 | 2026-10-21T09:55:33.5682006Z |
| 2026-09-23 – 2026-09-23 | 1 | 2026-10-21T09:55:33.5682006Z |
| 2026-09-19 – 2026-09-19 | 1 | 2026-10-21T09:55:33.5682006Z |
| 2026-09-12 – 2026-09-12 | 1 | 2026-10-21T09:55:33.5682006Z |
| 2026-09-11 – 2026-09-11 | 1 | 2026-10-21T09:55:33.5682006Z |
| 2026-09-10 – 2026-09-10 | 1 | 2026-10-21T09:55:33.5682006Z |
| 2026-09-09 – 2026-09-09 | 1 | 2026-10-21T09:55:33.5682006Z |
| 2026-09-07 – 2026-09-07 | 2 | 2026-10-21T09:55:33.5682006Z |
| 2026-09-05 – 2026-09-05 | 6 | 2026-10-21T09:55:33.5682006Z |
| 2026-09-04 – 2026-09-04 | 1 | 2026-10-21T09:55:33.5682006Z |
| 2026-09-03 – 2026-09-03 | 1 | 2026-10-21T09:55:33.5682006Z |
| 2026-09-01 – 2026-09-01 | 2 | 2026-10-21T09:55:33.5682006Z |
| 2026-08-31 – 2026-08-31 | 3 | 2026-10-21T09:55:33.5682006Z |
| 2026-08-28 – 2026-08-28 | 14 | 2026-10-21T09:55:33.5682006Z |
| 2026-08-24 – 2026-08-24 | 23 | 2026-10-21T09:55:33.5682006Z |
| 2026-08-23 – 2026-08-23 | 4 | 2026-10-21T09:55:33.5682006Z |
| 2026-08-22 – 2026-08-22 | 1 | 2026-10-21T09:55:33.5682006Z |
| 2026-08-20 – 2026-08-20 | 2 | 2026-10-21T09:55:33.5682006Z |
| 2026-08-18 – 2026-08-18 | 54 | 2026-10-21T09:55:33.5682006Z |
| 2026-08-17 – 2026-08-17 | 8 | 2026-10-21T09:55:33.5682006Z |
| 2026-08-16 – 2026-08-16 | 1 | 2026-10-21T09:55:33.5682006Z |
| 2026-08-14 – 2026-08-14 | 6 | 2026-10-21T09:55:33.5682006Z |
| 2026-08-13 – 2026-08-13 | 2 | 2026-10-21T09:55:33.5682006Z |
| 2026-08-10 – 2026-08-10 | 1 | 2026-10-21T09:55:33.5682006Z |
| 2026-08-09 – 2026-08-09 | 7 | 2026-10-21T09:55:33.5682006Z |
| 2026-08-06 – 2026-08-06 | 1 | 2026-10-21T09:55:33.5682006Z |
| 2026-08-04 – 2026-08-04 | 6 | 2026-10-21T09:55:33.5682006Z |
| 2026-08-03 – 2026-08-03 | 16 | 2026-10-21T09:55:33.5682006Z |
| 2026-08-02 – 2026-08-02 | 1 | 2026-10-21T09:55:33.5682006Z |
| 2026-08-01 – 2026-08-01 | 1 | 2026-10-21T09:55:33.5682006Z |
| 2026-07-30 – 2026-07-30 | 1 | 2026-10-21T09:55:33.5682006Z |
| 2026-07-29 – 2026-07-29 | 9 | 2026-10-21T09:55:33.5682006Z |
| 2026-07-27 – 2026-07-27 | 1 | 2026-10-21T09:55:33.5682006Z |
| 2026-07-24 – 2026-07-24 | 1 | 2026-10-21T09:55:33.5682006Z |
| 2026-07-23 – 2026-07-23 | 2 | 2026-10-21T09:55:33.5682006Z |
| Version | Published | Direct dependencies | Open version |
|---|---|---|---|
| 0.1.7 | 24 Jun 2025 | 11 |
This describes our collected data; it is not a security assessment.
Observed since 20 Oct, 16:24 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package:27eaa8242b0f7af5d91164f4ae877a0a3a42bb17152b39a4949219e0ced92785