Files
董宏凯andCursor e690475e6e feat(maf-roundtable): add Phase-1 multi-agent roundtable infrastructure
Ship an independent, feature-flag-gated MAF roundtable skeleton with six
isolated tables, atomic single-transaction run launch/cancel, owner-scoped
read/write split, shared config enums, and HTTP/concurrency regression tests.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-01 01:07:05 +08:00

70 lines
2.1 KiB
Python

"""Microsoft Agent Framework (MAF) multi-agent roundtable experiment.
An independent, feature-flag-gated sibling of the legacy multi-agent
roundtable (``/api/roundtable-*`` / ``/api/multi-agent/*``). It uses MAF's
Agent / Workflow / Group Chat orchestration while reusing the existing
DeerFlow Agent Runtime for each seat's actual execution (tools / skills /
MCP / sandbox / external writes). Phase 1 ships the persistence skeleton +
API contracts; the MAF SDK is loaded lazily inside this package only when
the feature flag is on and a run is actually started (Phase 2+).
Boundary: this package is the **only** place the MAF SDK is imported. It may
import ``deerflow.*`` (harness) freely but must not be imported by
``deerflow.*``. The harness-layer persistence (``deerflow.persistence.maf_roundtable``)
holds only pure data models and never imports the MAF SDK.
"""
from __future__ import annotations
from app.maf_roundtable.schemas import ( # noqa: F401 — re-exported for the router
ActionListResponse,
ActionResponse,
ApprovalDecisionRequest,
ApprovalListResponse,
ApprovalResponse,
CreateRunRequest,
CreateSessionRequest,
EventListResponse,
EventResponse,
HealthResponse,
ParticipantInput,
ParticipantResponse,
RunListResponse,
RunResponse,
SessionListResponse,
SessionResponse,
UpdateSessionRequest,
)
from app.maf_roundtable.service import ( # noqa: F401
MafConflictError,
MafDisabledError,
MafForbiddenError,
MafNotFoundError,
MafRoundtableService,
)
__all__ = [
"ActionListResponse",
"ActionResponse",
"ApprovalDecisionRequest",
"ApprovalListResponse",
"ApprovalResponse",
"CreateRunRequest",
"CreateSessionRequest",
"EventListResponse",
"EventResponse",
"HealthResponse",
"MafConflictError",
"MafDisabledError",
"MafForbiddenError",
"MafNotFoundError",
"MafRoundtableService",
"ParticipantInput",
"ParticipantResponse",
"RunListResponse",
"RunResponse",
"SessionListResponse",
"SessionResponse",
"UpdateSessionRequest",
]