跳转至

registration

feishu.agent.registration

register_agent

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

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

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

参数:

名称 类型 描述 默认

dispatcher

EventDispatcher

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

必需

agent

AgentEngine 必需

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/registration.py
Python
def register_agent(
    dispatcher: EventDispatcher,
    agent: AgentEngine,
    *,
    message_event: str = "im.message.receive_v1",
    card_event: str = "card.action.trigger",
) -> None:
    r"""
    将智能体的消息处理与卡片回调挂载到事件分发器上。

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

    Args:
        dispatcher: 事件分发器,须提供 `on(event_type)` 装饰器接口。
        agent: 已构造的 [feishu.agent.loop.AgentEngine][]。
        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)

create_agent_dispatcher

Python
create_agent_dispatcher(agent: AgentEngine, *, seen_store: SeenStore | None = None, message_event: str = 'im.message.receive_v1', card_event: str = 'card.action.trigger') -> EventDispatcher

创建 feishu.events.dispatcher.EventDispatcher 并把 agent 绑定到消息与卡片事件上。

参数:

名称 类型 描述 默认

agent

AgentEngine

接收消息与卡片事件的 feishu.agent.loop.AgentEngine

必需

seen_store

SeenStore | None

事件幂等存储;为空时不去重。

None

message_event

str

路由到 feishu.agent.loop.AgentEngine.run 的消息事件类型。

'im.message.receive_v1'

card_event

str

路由到 feishu.agent.loop.AgentEngine.handle_card_action 的卡片回调事件类型。

'card.action.trigger'

返回:

类型 描述
EventDispatcher

已完成 agent 事件绑定的 dispatcher。

源代码位于: feishu/agent/registration.py
Python
def create_agent_dispatcher(
    agent: AgentEngine,
    *,
    seen_store: SeenStore | None = None,
    message_event: str = "im.message.receive_v1",
    card_event: str = "card.action.trigger",
) -> EventDispatcher:
    r"""
    创建 [feishu.events.dispatcher.EventDispatcher][] 并把 agent 绑定到消息与卡片事件上。

    Args:
        agent: 接收消息与卡片事件的 [feishu.agent.loop.AgentEngine][]。
        seen_store: 事件幂等存储;为空时不去重。
        message_event: 路由到 [feishu.agent.loop.AgentEngine.run][] 的消息事件类型。
        card_event: 路由到 [feishu.agent.loop.AgentEngine.handle_card_action][] 的卡片回调事件类型。

    Returns:
        已完成 agent 事件绑定的 dispatcher。
    """
    from ..events.dispatcher import EventDispatcher

    dispatcher = EventDispatcher(seen_store=seen_store)
    register_agent(dispatcher, agent, message_event=message_event, card_event=card_event)
    return dispatcher