""" Dev Agent A2A Server 使用 ADK 官方 A2A 协议暴露 Dev Agent,支持 HTTP 调用,可直接上云部署。 启动方式: python a2a_server.py 端点: A2A 接口: http://127.0.0.1:8001/a2a/dev_agent Agent卡片: http://127.0.0.1:8001/.well-known/agent-card.json 健康检查: http://127.0.0.1:8001/health """ import os import sys # 确保项目根目录在 path 里 PROJECT_ROOT = os.path.dirname(os.path.abspath(__file__)) if PROJECT_ROOT not in sys.path: sys.path.insert(0, PROJECT_ROOT) from dotenv import load_dotenv load_dotenv(os.path.join(PROJECT_ROOT, "my_agent", ".env")) # 强制 UTF-8 os.environ["PYTHONUTF8"] = "1" import uvicorn from google.adk.a2a.utils.agent_to_a2a import to_a2a from my_agent.agent import root_agent # 配置 HOST = os.getenv("A2A_SERVER_HOST", "0.0.0.0") PORT = int(os.getenv("A2A_SERVER_PORT", "8001")) # 用 ADK 官方工具把 agent 转成 A2A 服务 # 会自动生成 agent card,暴露 /a2a/{agent_name} 端点 a2a_app = to_a2a(root_agent, port=PORT) def main(): print("=" * 60) print("Dev Agent A2A Server 启动中...") print(f" 监听地址: http://{HOST}:{PORT}") print(f" A2A 端点: http://{HOST}:{PORT}/a2a/{root_agent.name}") print(f" Agent 卡片: http://{HOST}:{PORT}/.well-known/agent-card.json") print("=" * 60) uvicorn.run(a2a_app, host=HOST, port=PORT, log_level="info") if __name__ == "__main__": main()