from fastapi import FastAPI
import uvicorn
from praisonaiagents import Agent
app = FastAPI(title="PraisonAI Unified Server")
# Create agents
assistant = Agent(
name="Assistant",
role="Helpful AI Assistant",
goal="Help users with their questions",
llm="gpt-4o-mini"
)
# Discovery endpoint
@app.get("/__praisonai__/discovery")
async def discovery():
return {
"schema_version": "1.0.0",
"server_name": "praisonai-unified",
"providers": [
{"type": "agents-api", "name": "Agents API"},
{"type": "recipe", "name": "Recipe Runner"},
{"type": "mcp", "name": "MCP Server"},
{"type": "a2a", "name": "A2A Protocol"},
{"type": "a2u", "name": "A2U Event Stream"},
],
"endpoints": [
{"name": "agents", "provider_type": "agents-api"},
{"name": "agent", "provider_type": "agents-api"},
{"name": "mcp/tools", "provider_type": "mcp"},
{"name": "a2a", "provider_type": "a2a"},
{"name": "a2u/events", "provider_type": "a2u"},
]
}
# Health endpoint
@app.get("/health")
async def health():
return {"status": "healthy", "providers": 5}
# Agent endpoint
@app.post("/agent")
async def query_agent(request: dict):
query = request.get("query", "")
response = assistant.chat(query)
return {"response": response}
uvicorn.run(app, host="0.0.0.0", port=8765)