Files
multiAgentTry/backend/app/routers/resources.py

76 lines
1.9 KiB
Python

"""
资源管理 API 路由
"""
from fastapi import APIRouter
from pydantic import BaseModel
from typing import List, Optional
import time
router = APIRouter()
class TaskRequest(BaseModel):
agent_id: str
task: str
timeout: Optional[int] = 300
class TaskParseRequest(BaseModel):
task: str
@router.post("/execute")
async def execute_task(request: TaskRequest):
"""执行任务"""
return {
"success": True,
"message": f"任务 '{request.task}' 已执行",
"files_locked": ["src/main.py"],
"duration_seconds": 5.5
}
@router.get("/status")
async def get_all_status():
"""获取所有 Agent 状态"""
from ..services.agent_registry import get_agent_registry
from ..services.heartbeat import get_heartbeat_service
registry = get_agent_registry()
heartbeat_service = get_heartbeat_service()
# 获取所有已注册的 Agent
all_agents = await registry.list_agents()
agent_map = {a.agent_id: a for a in all_agents}
# 获取所有心跳
heartbeats_data = await heartbeat_service.get_all_heartbeats()
result = []
for agent_id, agent in agent_map.items():
heartbeat = heartbeats_data.get(agent_id)
result.append({
"agent_id": agent_id,
"info": {
"name": agent.name,
"role": agent.role,
"model": agent.model
},
"heartbeat": {
"status": heartbeat.status if heartbeat else "offline",
"current_task": heartbeat.current_task if heartbeat else "",
"progress": heartbeat.progress if heartbeat else 0
}
})
return {"agents": result}
@router.post("/parse-task")
async def parse_task(request: TaskParseRequest):
"""解析任务文件"""
return {
"task": request.task,
"files": ["src/main.py", "src/utils.py"]
}