refactor: 简化 AgentScope 运行时模块与 prompt 系统

This commit is contained in:
zl-q
2026-03-15 17:14:15 +08:00
parent 61997f3613
commit 072c09d99d
32 changed files with 750 additions and 1863 deletions
+5 -41
View File
@@ -11,6 +11,10 @@ from typing import Annotated, Union
from ag_ui.core import RunAgentInput
from core.agentscope.events import to_sse_event
from core.agentscope.schemas.agui_input import (
parse_run_input,
validate_run_request_messages_contract,
)
from core.auth.models import CurrentUser
from core.logging import get_logger
from fastapi import (
@@ -26,11 +30,6 @@ from fastapi import (
status,
)
from fastapi.responses import JSONResponse, StreamingResponse
from core.agentscope.schemas.agui_input import (
extract_latest_tool_result,
parse_run_input,
validate_run_request_messages_contract,
)
from services.base.redis import get_or_init_redis_client
from v1.agent.dependencies import get_agent_service
from v1.agent.schemas import (
@@ -129,8 +128,7 @@ async def enqueue_run(
current_user: Annotated[CurrentUser, Depends(get_current_user)],
) -> TaskAcceptedResponse:
try:
normalized = parse_run_input(request.model_dump(mode="json", by_alias=True))
validate_run_request_messages_contract(normalized)
validate_run_request_messages_contract(request)
except ValueError as exc:
raise HTTPException(status_code=422, detail=str(exc)) from exc
allowed = await _allow_run_request(user_id=str(current_user.id))
@@ -149,40 +147,6 @@ async def enqueue_run(
)
@router.post(
"/runs/{thread_id}/resume",
response_model=TaskAcceptedResponse,
status_code=status.HTTP_202_ACCEPTED,
)
async def enqueue_resume(
thread_id: str,
request: RunAgentInput,
service: Annotated[AgentService, Depends(get_agent_service)],
current_user: Annotated[CurrentUser, Depends(get_current_user)],
) -> TaskAcceptedResponse:
if request.thread_id != thread_id:
raise HTTPException(status_code=422, detail="thread_id path/body mismatch")
try:
normalized = parse_run_input(request.model_dump(mode="json", by_alias=True))
extract_latest_tool_result(normalized)
except ValueError as exc:
raise HTTPException(status_code=422, detail=str(exc)) from exc
allowed = await _allow_run_request(user_id=str(current_user.id))
if not allowed:
raise HTTPException(status_code=429, detail="Too many run requests")
task = await service.enqueue_resume(
thread_id=thread_id,
run_input=request,
current_user=current_user,
)
return TaskAcceptedResponse(
taskId=task.task_id,
threadId=task.thread_id,
runId=task.run_id,
created=task.created,
)
@router.get("/runs/{thread_id}/events")
async def stream_events(
request: Request,