You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Composer Bot中使用Direct Line Extension?

Composer Bot对接Direct Line Extension的实现方案

已有大量开发者完成该场景的落地对接,Composer Bot本质是对Bot Framework SDK的可视化封装,所有SDK侧的适配逻辑都可以复用,不需要修改Composer内的可视化对话逻辑,仅需调整项目的服务入口代码即可。

前置要求

  • 必须使用Composer v2.1.2及以上版本,对应Bot Framework SDK版本为v4.15+,更低版本存在中间件兼容缺陷
  • 你的Azure Bot资源已开通Direct Line App Service Extension通道,且已在对应App Service中完成扩展的安装与启用

具体操作步骤

1. 导出Composer项目源码

从Composer中导出你开发的Bot项目源码到本地,用代码编辑器打开项目根目录,Composer生成的项目结构和原生SDK开发的Bot项目结构完全一致。

2. 替换服务适配器

根据你使用的开发语言选择对应配置:

Node.js项目

  1. 首先安装依赖包,在项目根目录执行命令:
    npm install @microsoft/botframework-directlinejs @microsoft/streaming-extensions
  2. 打开项目根目录的index.js入口文件,找到原有适配器注册的代码段,替换为以下逻辑:
const { StreamingBotAdapter } = require('@microsoft/streaming-extensions');
const adapter = new StreamingBotAdapter({
  appId: process.env.MicrosoftAppId,
  appPassword: process.env.MicrosoftAppPassword
});
// 替换原有默认适配器的路由注册逻辑
server.post('/api/messages', (req, res) => {
  adapter.processActivity(req, res, async (context) => {
    await myBot.run(context);
  });
});

C#项目

  1. 首先安装NuGet依赖包:
    Install-Package Microsoft.Bot.Builder.StreamingExtensions
  2. 打开项目根目录的Program.cs文件,修改适配器服务注册逻辑:
builder.Services.AddSingleton<IBotFrameworkHttpAdapter, StreamingBotHttpAdapter>();

3. 重新发布项目

修改完成后,直接将源码重新发布到你的Azure App Service即可,Composer内原有所有对话逻辑、触发条件、自定义动作都可以正常运行,不需要额外调整。

常见问题排查

  • 若出现握手失败报错,检查App Service的环境变量中DIRECTLINE_EXTENSION_VERSION是否设置为latest
  • 若消息无法正常收发,检查Bot配置的Microsoft App ID、密码与Direct Line Extension通道的配置是否完全一致
  • 不要直接复用原生SDK示例中独立监听WebSocket的代码,Composer的服务路由已由框架托管,仅需替换适配器即可完成适配

内容的提问来源于stack exchange,提问作者user666

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 08:06:08