跳转至

dispatch

feishu.agent.dispatch

register_agent

Python
register_agent(dispatcher: EventDispatcher, agent: Agent, *, message_event: str = 'im.message.receive_v1', card_event: str = 'card.action.trigger') -> None

将智能体的消息处理与卡片回调挂载到事件分发器上。

feishu.agent.loop.Agent.run 注册为消息事件的处理函数,把 feishu.agent.loop.Agent.handle_card_action 注册为卡片回调事件的处理函数。dispatcher 须提供与 feishu.events.dispatcher.EventDispatcher 一致的 on(event_type) 装饰器接口。

参数:

名称 类型 描述 默认

dispatcher

EventDispatcher

事件分发器,须提供 on(event_type) 装饰器接口。

必需

agent

Agent

已构造的 feishu.agent.loop.Agent

必需

message_event

str

消息事件类型。默认为 im.message.receive_v1

'im.message.receive_v1'

card_event

str

卡片回调事件类型。默认为 card.action.trigger

'card.action.trigger'
飞书文档

接收消息

卡片回传交互

示例:

Python Console Session
>>> register_agent(dispatcher, agent)
源代码位于: feishu/agent/dispatch.py
Python
def register_agent(
    dispatcher: EventDispatcher,
    agent: Agent,
    *,
    message_event: str = "im.message.receive_v1",
    card_event: str = "card.action.trigger",
) -> None:
    r"""
    将智能体的消息处理与卡片回调挂载到事件分发器上。

    把 [feishu.agent.loop.Agent.run][] 注册为消息事件的处理函数,把
    [feishu.agent.loop.Agent.handle_card_action][] 注册为卡片回调事件的处理函数。`dispatcher` 须提供与
    [feishu.events.dispatcher.EventDispatcher][] 一致的 `on(event_type)` 装饰器接口。

    Args:
        dispatcher: 事件分发器,须提供 `on(event_type)` 装饰器接口。
        agent: 已构造的 [feishu.agent.loop.Agent][]。
        message_event: 消息事件类型。默认为 `im.message.receive_v1`。
        card_event: 卡片回调事件类型。默认为 `card.action.trigger`。

    飞书文档:
        [接收消息](https://open.feishu.cn/document/server-docs/im-v1/message/events/receive)

        [卡片回传交互](https://open.feishu.cn/document/uAjLw4CM/ukzMukzMukzM/feishu-cards/card-callback-communication)

    Examples:
        >>> register_agent(dispatcher, agent)  # doctest:+SKIP
    """
    dispatcher.on(message_event)(agent.run)
    dispatcher.on(card_event)(agent.handle_card_action)