更新时间:2024-08-29 GMT+08:00
分享

Agent流式输出

Agent用于工具调用场景,与普通的LLM流式输出相比,提供了事件流的封装。消息内容、工具调用等通过不同的事件类型区分。

通过如下接口为Agent添加流式输出的回调:

/**
 * 设置流式接口回调函数
 *
 * @param streamAgentCallback 事件流回调
 */
void setStreamCallback(StreamAgentCallBack streamAgentCallback);

StreamAgentCallBack实现示例:

private class StreamAgentCallBackImpl implements StreamAgentCallBack {
    @Override
    public void onEventReceived(AgentEvent agentEvent) {
        log.debug("-----> stream event: {}", agentEvent.getType().getEventType());
        log.debug("-----> stream data: {}", JSON.toJSONString(agentEvent));
    }
}

事件类型列表如下:

    /**
     * 消息创建
     */
    MESSAGE_CREATED("session.message.created"),

    /**
     * action创建
     */
    ACTION_CREATED("session.action.created"),

    /**
     * 流式消息
     */
    ACTION_MESSAGE_DELTA("session.action.message.delta"),

    /**
     * 流式工具调用
     */
    ACTION_TOOL_DELTA("session.action.tool.delta"),

    /**
     * action结束
     */
    ACTION_COMPLETED("session.action.completed"),

    /**
     * 消息结束
     */
    MESSAGE_COMPLETED("session.message.completed");

相关文档