6.5 KiB
6.5 KiB
AgentScope Agent Route Migration Handoff Plan
1) Reconfirmed Objective
- Keep external API paths unchanged under
/api/v1/agent/*. - Replace internal run/resume/events runtime path with
core/agentscopemodules. - Use five modules only:
runtime,prompts,schemas,tools,events. - Put AG-UI event conversion + persistence + Redis export in
events. - Keep
/transcribeunder the same router prefix but independent from agent runtime. - Continue migration until legacy
core/agentis removable.
2) Current Progress Snapshot
Completed
- Task 1 (schemas) finished:
- Added runtime-facing schemas in
core/agentscope/schemas/agent_runtime.py. - Exported aliases for compatibility (
AcceptedTaskResponse,TaskAcceptedResponse,TaskAccepted).
- Added runtime-facing schemas in
- Task 2 (events) finished:
- Added
eventsmodule with AG-UI conversion, SSE encoding, Redis stream bus, pipeline, and store abstraction. - Security fixes applied:
- Prevent reserved key overwrite in AG-UI codec.
- Sanitize SSE stream id.
- Support Redis bytes payload decoding.
- SSE now reuses AG-UI protocol encoder (
EventEncoder) instead of custom JSON-only logic.
- Added
- Task 3 (runtime adapter) finished:
- Added
AgentRouteRuntimeto emit internal events around orchestrator execution. - Added step events for stage identification:
step.start/step.finishforintent,execution,report.
- Error event payload no longer leaks raw exception text to clients.
- Added
- Task 4 (route/service wiring) largely finished:
/v1/agent/router.pynow usescore.agentscope.events.to_sse_event./v1/agent/dependencies.pyqueue tasks switched tocore.agentscope.runtime.tasks./v1/agent/dependencies.pystream reads switched toRedisStreamBus./v1/agent/service.pyenqueue payload now carriesowner_idand extracteduser_token.- Added tests for runtime task entrypoint dispatch/validation.
In Progress / Not Finished
- Task 4 review wrap-up:
- One review already returned PASS for spec compliance after fixes.
- Final quality/security confirmation for latest delta should be re-run once before moving to Task 5.
- Task 5 (sessions/messages persistence ownership, cost/tokens/latency full persistence) not started.
- Task 6 (remove
core/agentand clean imports) not started. - Task 7 (frontend AG-UI contract and E2E validation) not started.
3) What Was Changed (Relevant Files)
New Files
backend/src/core/agentscope/schemas/agent_runtime.pybackend/src/core/agentscope/events/__init__.pybackend/src/core/agentscope/events/agui_codec.pybackend/src/core/agentscope/events/sse.pybackend/src/core/agentscope/events/redis_bus.pybackend/src/core/agentscope/events/store.pybackend/src/core/agentscope/events/pipeline.pybackend/src/core/agentscope/runtime/agent_route_runtime.pybackend/src/core/agentscope/runtime/tasks.pybackend/tests/unit/core/agentscope/schemas/test_agent_runtime_schemas.pybackend/tests/unit/core/agentscope/events/test_agui_codec.pybackend/tests/unit/core/agentscope/events/test_sse.pybackend/tests/unit/core/agentscope/events/test_redis_bus.pybackend/tests/unit/core/agentscope/events/test_pipeline.pybackend/tests/unit/core/agentscope/runtime/test_agent_route_runtime.pybackend/tests/unit/core/agentscope/runtime/test_tasks.py
Modified Files
backend/src/core/agentscope/runtime/__init__.pybackend/src/core/agentscope/schemas/__init__.pybackend/src/v1/agent/router.pybackend/src/v1/agent/dependencies.pybackend/src/v1/agent/service.py
4) Key References Used
In-repo references
- Current agent route/service contracts:
backend/src/v1/agent/router.pybackend/src/v1/agent/service.pybackend/src/v1/agent/dependencies.pybackend/src/v1/agent/repository.py
- Existing runtime/orchestrator basis:
backend/src/core/agentscope/runtime/orchestrator.py
External reference project
- DIVA-backend async stream/task patterns (for architecture guidance only):
/home/qzl/Code/DIVA-backend/src/diva/services/app/conversation/task_event_stream_service.py/home/qzl/Code/DIVA-backend/src/diva/services/app/conversation/tasks.py/home/qzl/Code/DIVA-backend/src/diva/utils/agui_events.py
Protocol/framework references
- AG-UI protocol skill docs (event naming/shape guidance)
- AgentScope skill docs (
ReActAgent, model/runtime usage)
5) Next Execution Plan (Continue From Here)
Step A: Close Task 4 gates (quick)
- Re-run targeted checks for the latest Task 4 code:
uv run pytest tests/unit/v1/agent/test_service.py tests/unit/core/agentscope/runtime/test_tasks.py tests/unit/core/agentscope/runtime/test_agent_route_runtime.py tests/unit/core/agentscope/events -quv run ruff check src/v1/agent src/core/agentscope/runtime src/core/agentscope/events tests/unit/core/agentscope/runtime tests/unit/core/agentscope/eventsuv run basedpyright src/v1/agent src/core/agentscope/runtime src/core/agentscope/events tests/unit/core/agentscope/runtime tests/unit/core/agentscope/events
- Run one explicit code/security review pass on Task 4 final diff.
Step B: Execute Task 5 (persistence migration)
- Implement
events.storereal persistence (replaceNullEventStorepath in runtime task assembly):- persist sessions/messages from AG-UI wire events.
- include tokens/cost/latency fields.
- maintain session aggregates.
- Add unit + integration tests for persistence correctness and aggregation.
Step C: Execute Task 6 (remove legacy core/agent)
- Move remaining required data structures into
core/agentscope/schemas. - Replace all
core.agent.*imports in active code paths. - Delete
backend/src/core/agent/**when no runtime path depends on it. - Add guard test to ensure no legacy imports remain.
Step D: Execute Task 7 (frontend contract validation)
- Validate AG-UI event stream compatibility with current Flutter parser and bloc flow.
- Run impacted frontend tests for chat/event handling.
6) Risks and Notes
- Workspace is currently dirty with many unrelated app/backend files; avoid mixing commits.
- This handoff only tracks the AgentScope migration subset above.
/transcriberemains inv1/agent/router.pyand intentionally independent.
7) Resume Checklist (first actions next session)
- Read this handoff file.
- Re-run Task 4 final checks and review gates.
- Start Task 5 by replacing
NullEventStorewith real store implementation. - Keep route contract stable (
/api/v1/agent/*) until Task 7 is verified.