a2a-server / test /test.py
Sheyda Kiani Mehr
original a2a
43d5db4
# main.py
import os
import uvicorn
# ---- Adjust imports to match a2a-python ----
# These paths are common in the tutorial; if yours differ, change them accordingly.
from a2a.server.apps import A2AStarletteApplication
from a2a.server.request_handlers import DefaultRequestHandler
from a2a.server.tasks import InMemoryTaskStore
# Example minimal executor
class HelloWorldAgentExecutor:
async def call(self, message: str, **kwargs):
return {"text": f"Hello from A2A on HF Spaces! You said: {message}"}
# Example minimal public AgentCard (adjust fields to your spec)
AGENT_CARD = {
"name": "HF A2A Agent",
"version": "1.0",
"description": "A2A demo running on Hugging Face Spaces",
"endpoints": {
"send": "/message/send",
"stream": "/message/stream"
}
}
def build_app():
app = A2AStarletteApplication(
agent_card=AGENT_CARD,
http_handler=DefaultRequestHandler(
agent_executor=HelloWorldAgentExecutor(),
task_store=InMemoryTaskStore(),
),
# extended_agent_card=... # optional
).build()
return app
if __name__ == "__main__":
port = int(os.getenv("PORT", "7860")) # HF provides PORT
uvicorn.run(build_app(), host="0.0.0.0", port=port)