跳转至

Client API

GatewayClient

class GatewayClient:
    def __init__(
        self,
        registry: Optional[WorkerRegistry] = None,
        redis_client: Optional[Redis] = None,
        interceptors: Optional[List[GatewayInterceptor]] = None,
    ) -> None:

    def add_interceptor(self, interceptor: GatewayInterceptor) -> None:
        """添加拦截器"""

send_message

async def send_message(
    self,
    target_agent_type: str,
    session_id: str,
    content: Any,
    user_code: str = "",
    user_name: str = "",
    action_type: str = "ASK_AGENT",
    parent_message_id: str = "",
    message_id: Optional[str] = None,
    trace_id: Optional[str] = None,
    extra_payload: Optional[Dict[str, Any]] = None,
    metadata: Optional[dict] = None,
    target_worker_id: Optional[str] = None,
    require_online_worker: bool = True,
) -> SendMessageResponse:
    """发送消息,返回响应对象"""

cancel_task

async def cancel_task(
    self,
    message_id: str,
    session_id: str,
    reason: str = "",
    target_agent_type: str = "",
    requested_by: str = "client",
    cancel_mode: str = "graceful",
) -> CancelTaskResponse:
    """取消指定的任务"""

reload_plugins_for_agent_type

async def reload_plugins_for_agent_type(
    self,
    agent_type: str,
    reason: str = "",
    reload_id: Optional[str] = None,
    metadata: Optional[Dict[str, Any]] = None,
) -> Dict[str, Any]:
    """重新加载指定 Agent 类型的插件"""

ByaiGatewayClient

class ByaiGatewayClient(GatewayClient):
    def __init__(
        self,
        registry: Optional[WorkerRegistry] = None,
        redis_client: Optional[Redis] = None,
        interceptors: Optional[List[GatewayInterceptor]] = None,
    ) -> None:

GatewayInterceptor

class GatewayInterceptor:
    async def before_send(self, params: dict) -> dict:
        """发送前拦截,可修改参数"""
        return params

    async def after_send(self, response: SendMessageResponse) -> SendMessageResponse:
        """发送后拦截,可修改响应"""
        return response

SendMessageResponse

@dataclass
class SendMessageResponse:
    success: bool
    message_id: str
    trace_id: str
    target_worker_id: str
    timestamp: int
    status: str
    error: str = ""
    error_code: str = ""

CancelTaskResponse

@dataclass
class CancelTaskResponse:
    success: bool
    message_id: str
    execution_id: str
    worker_id: str
    status: str
    timestamp: int
    error: str = ""
    cancelled_count: int = 0