Files
multiAgentTry/backend/app/routers/resources.py
Claude Code 1719d1f1f9 重构 API 路由并新增工作流编排功能
后端:
- 重构 agents, heartbeats, locks, meetings, resources, roles, workflows 路由
- 新增 orchestrator 和 providers 路由
- 新增 CLI 调用器和流程编排服务
- 添加日志配置和依赖项

前端:
- 更新 AgentsPage、SettingsPage、WorkflowPage 页面
- 扩展 api.ts 新增 API 接口

其他:
- 清理测试 agent 数据文件
- 新增示例工作流和项目审计报告

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 16:36:25 +08:00

58 lines
1.4 KiB
Python

"""
资源管理 API 路由
接入 ResourceManager 服务,提供声明式任务执行
"""
from fastapi import APIRouter
from pydantic import BaseModel
from typing import Optional
from ..services.resource_manager import get_resource_manager
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):
"""执行任务(自动管理文件锁和心跳)"""
manager = get_resource_manager()
result = await manager.execute_task(
agent_id=request.agent_id,
task_description=request.task,
timeout=request.timeout or 300
)
return {
"success": result.success,
"message": result.message,
"files_locked": result.files_locked,
"duration_seconds": round(result.duration_seconds, 2)
}
@router.get("/status")
async def get_all_status():
"""获取所有 Agent 状态(整合注册、心跳、锁信息)"""
manager = get_resource_manager()
statuses = await manager.get_all_status()
return {"agents": statuses}
@router.post("/parse-task")
async def parse_task(request: TaskParseRequest):
"""解析任务中涉及的文件路径"""
manager = get_resource_manager()
files = await manager.parse_task_files(request.task)
return {
"task": request.task,
"files": files
}