数环通LinkBot:当AI智能体遇上企业集成

最近一年,Agent 这个词快被说烂了。

各种 AI Agent 平台如雨后春笋,都在讲"让AI帮你完成任务"。但说实话,大多数 Agent 产品的落地场景还停留在"帮你查个天气""帮你总结个文档"这种层面。一旦涉及到企业内部的真实业务操作------比如帮你在CRM里创建一条客户、在钉钉群里发一条审批通知、把ERP的订单数据同步到财务系统------这些 Agent 就歇菜了。

不是大模型不够聪明,而是它们缺少"手"。

连接器就是AI的手

我们做数环通iPaaS做了几年,积累了1000多个连接器,覆盖了国内主流的SaaS、数据库、消息队列、企业内部系统。这些连接器本质上是什么?是经过标准化封装的API操作能力------创建、读取、更新、删除、查询、触发,每一个操作都有清晰的输入输出定义。

LinkBot的核心思路很直接:把这些连接器变成AI可调用的工具

向量化存储:让AI"认识"每个连接器操作

具体怎么做的?我们用Weaviate向量数据库,把每个连接器的每个操作都做了embedding存储。存储的类名是Ipaas_connector,存储的内容不是简单的名称,而是一个精心设计的语义模板:

复制代码
应用名称:{connectorName};应用分类:{categoryName};指令名称:{actionName};指令说明:{actionDescription};指令内容:{connectorCommand}

其中connectorCommand是一个结构化的JSON,包含了connectorId、operation和input参数定义。系统通过Dify接口调用embedding模型将这段文本转为向量,存入Weaviate。初始化的时候,我们会分页遍历所有连接器的operation类型动作(排除trigger),逐个创建向量记录。

语义匹配:distance < 0.18 才算命中

当用户说"帮我在飞书里建一个日程",系统首先通过同一个embedding模型将用户的自然语言转为向量,然后在Weaviate中做NearVector查询,取Top 10结果。但不是所有Top 10都算匹配------我们设了一个distance阈值0.18,只有语义距离低于这个值的才会进入候选集。

java 复制代码
double num2 = 0.180;
int compareResult = Double.compare(num1, num2);
if (compareResult < 0) {
    resultList.add(connector);
}

匹配结果还要经过一层过滤:只保留当前Bot已配置的连接器范围内的结果。也就是说,即使语义匹配上了,但这个连接器不在Bot的授权范围内,照样不会返回给用户。

指令协议:solinkUp&&connector 标记

这里有一个关键的设计------大模型返回的内容中,如何区分普通文本和连接器调用指令?我们定义了一个协议标记:solinkUp&&connector。当LLM的输出中包含这对标记时,系统从标记之间提取JSON格式的连接器指令:

json 复制代码
{"connector": "feishu", "operation": "create_calendar_event", "param": [{"key": "title", "defaultValue": "周会"}]}

系统用正则solinkUp&&connector(.*?)solinkUp&&connector提取这段JSON,然后加载对应连接器的ConnectorDefinitionPO,获取该operation的OperationDefinitionPO------这里面定义了完整的inputFields(参数名、类型、是否必填、控件类型)。大模型从对话上下文中提取的参数值会被设置为各字段的defaultValue,如果参数齐全且无歧义,直接通过ExecutionApi调用连接器执行;如果有缺失或需要确认,返回PARAMS_FORM类型的消息,前端渲染结构化表单让用户补充。

消息类型系统

LinkBot的交互不只是纯文本,系统定义了四种消息类型:

  • TEXT:纯文本/Markdown回复,前端通过打字机效果逐字展示
  • PARAMS_FORM:结构化参数表单,用户可以查看和修改AI提取的参数后确认执行
  • DATA_LIST:连接器执行后返回的结构化数据,前端渲染为JSON/表格
  • AUTHORIZED:授权提示,引导用户绑定对应应用的账号凭证

整个对话基于SSE(Server-Sent Events)实现流式输出,前端通过fetch + ReadableStream读取,配合心跳检测(15秒超时自动断开)确保连接稳定性。

1000多个连接器,意味着上万个可被AI调用的操作指令。 这不是Demo级别的十几个Tools,这是真正的企业级工具集。

我们怎么解决幻觉问题

聊到 Agent,绕不开幻觉。

大模型编造数据、错误理解意图、调用错误的工具------这在通用 Agent 里司空见惯。但在企业场景里,这是不可接受的。你不可能让AI"猜"着帮你转了一笔账,或者"创造性地"给客户发了条不存在的信息。

LinkBot的策略是:不完全信任AI,也不完全放弃AI

第一层约束:手工配置连接器范围

在创建一个Bot的时候,管理员需要明确"添加应用来约束可使用的范围"------你要让这个Bot能操作哪些系统,必须人工选择。系统会过滤掉built_in_application类型的内置应用,只暴露业务类连接器让管理员选择。选定后通过IpaasLinkBotAppConnector绑定关系存储。

当向量搜索返回匹配结果时,系统会用botAppIdgroupId做二次过滤------只有在当前Bot的连接器白名单内的才会返回:

java 复制代码
IpaasLinkBotAppConnectorInfoParam param = new IpaasLinkBotAppConnectorInfoParam();
param.setConnectorIds(connectorIds);
param.setGroupId(groupId);
param.setBotAppId(appId);
List<IpaasLinkBotAppConnectorInfo> connectorInfos = linkBotAppConnectorService.getListByParam(param);

不是把1000多个连接器全部敞开,而是只开放这个Bot职责范围内的应用。比如一个HR助手Bot,只配置飞书、北森、钉钉这几个相关连接器,哪怕用户问它"帮我查下客户订单",向量搜索可能匹配到CRM连接器,但过滤层会直接拦掉。

这个设计很关键。它在AI之前,用人的判断画了一道边界。

第二层约束:结构化确认流程

当AI识别出用户意图并匹配到连接器操作后,不是直接执行。系统加载OperationDefinitionPO获取该操作的完整inputFields定义,将AI提取的参数设为defaultValue后,以PARAMS_FORM类型返回给前端。前端渲染为可编辑的结构化表单------用户能看到每个参数的名称、类型、当前值。

对于富文本类参数(widget类型为ShEditor),系统还做了特殊处理,将默认值包装为{"text": "<p>内容</p>", "displayType": "editor"}格式

只有一种情况AI可以直接执行:该操作的inputFields为空(即无需参数的查询类操作)。其他情况一律走确认流程。用户确认后,前端调用invokeConnector接口,带上完整的参数和授权信息执行。

AI负责理解和推荐,人负责确认和决策。

第三层约束:授权绑定校验

每个连接器的执行都需要用户的授权凭证。系统通过IpaasLinkBotResource表维护用户与连接器授权的绑定关系(资源类型为ALIAS)。执行前先查询当前用户在当前组织下对该连接器的授权记录:

java 复制代码
aliasParam.setUserId(userId);
aliasParam.setGroupId(groupId);
aliasParam.setConnectorId(connectorId);
aliasParam.setResourceType(LinkBotResourceTypeEnum.ALIAS.getCode());
List<IpaasLinkBotResourceInfo> resources = ipaasLinkBotResourceService.selectByParam(aliasParam);

如果没有找到授权记录且连接器需要认证(connectorDefinitionPO.getAuth() != null),系统返回AUTHORIZED类型消息,前端引导用户完成OAuth或API Key绑定。对于支持第三方认证(THIRD_AUTH)的连接器,系统还会递归加载关联的relationAssetIds来组装完整的凭证参数。

内置模式(BUILTIN)的连接器不需要用户授权,比如数环通自己的数据表连接器,直接使用系统凭证执行。

不存在"用别人的权限帮你执行"这种情况。每个操作都绑定到具体的用户和组织。

三层叠加下来,幻觉的影响被压缩到了一个很小的范围:AI可能理解错意图,但错了也只是推荐了一个不对的操作------用户在确认环节就能发现,不会造成实际损害。

和通用Agent的本质区别

市面上做Agent的产品很多,大致分几类:

纯对话型:底层就是大模型套了个壳,能聊天,能写文案,能查资料,但不能操作任何外部系统。

工具调用型:接了一些Function Calling能力,能调天气API、能搜索网页、能执行代码。但工具数量有限,且大多是通用工具,跟企业业务无关。

流程编排型:用可视化方式编排AI工作流,本质上是把Prompt Chain做了产品化。灵活性高,但对非技术用户门槛也高。

LinkBot走的是另一条路:AI + 企业集成基础设施

区别在哪?

第一,工具数量和深度不是一个级别。 通用Agent接十几个API就算多的了,而LinkBot背后是整个iPaaS连接器生态------每个连接器都经过我们的标准化封装、测试、运维,不是简单调个HTTP接口的事。认证处理、分页处理、错误重试、数据格式转换,这些脏活累活都在连接器层做掉了。

第二,企业级的权限和安全体系。 通用Agent几乎不考虑多租户、权限隔离、操作审计这些问题。LinkBot从设计之初就在iPaaS的租户体系下运行------Bot属于某个组织,用户用自己的授权凭证操作,每次连接器调用都有完整的日志链路。

第三,不是独立产品,而是iPaaS的自然延伸。 LinkBot的每个Bot背后关联着一条iPaaS流程(flowId)。Bot发布时,系统会调用activeFlow激活关联流程;停止时调用cancelActiveFlowByFlowId取消。这意味着Bot不只是单步的"帮我干一件事",它可以触发一整条自动化流程------比如用户说"帮我处理这个退款申请",Bot触发的是一条涉及订单系统查询、财务系统退款、CRM状态更新、钉钉通知的完整流程。单步操作和流程编排在一个体系内打通。

第四,完整的生命周期管理。 Bot有draft(草稿)和active(运行中)两种状态,支持版本递增管理。每次发布会创建一个IpaasLinkBotDeployment记录,可以回溯历史版本、复制为草稿重新编辑。Bot的Meta信息通过Redis缓存(key格式:LINKBOT:{botId}),保证运行时高性能读取。

第五,多渠道部署。 Bot的Meta中包含channels配置,支持多渠道同时部署。Bot做好之后,不只是在数环通产品内能用。可以部署到钉钉、企微等企业即时通讯工具里。员工在日常使用的办公工具里,直接跟Bot对话完成业务操作,不需要切换到另一个系统。针对外部渠道(如钉钉),系统还做了特殊处理------无需登录的invokeConnectorNotLogin接口会额外将输出数据转换为Markdown格式,适配IM的消息展示。

落地场景

说几个实际的使用方式:

IT运维助手:配置好云服务器、监控平台、工单系统的连接器,运维人员在钉钉里直接问"昨天那台服务器CPU超90%了几次?"Bot查监控数据返回结果;说"帮我建个工单,标题是XX",Bot创建工单。

HR入职助手:新员工入职涉及多个系统的账号开通。Bot配置了飞书、OA、权限系统等连接器,HR对Bot说"帮张三开通所有系统权限",Bot按流程依次执行。

销售数据查询:销售人员不用自己去登录CRM翻数据,直接问Bot"本月华东区成交额多少?"Bot调用CRM连接器查询数据返回。

这些场景有个共同特点:不是AI去"创造"什么,而是AI帮人"操作"已有的系统。大模型负责理解自然语言意图,连接器负责执行实际操作,中间的确认环节确保不出错。

写在最后

我们对LinkBot的定位一直很克制:它不是万能的AI助手,它是企业自动化的自然语言入口

AI的价值不在于替代人的判断,而在于降低人操作系统的门槛。以前你需要登录五个系统点二十个按钮才能完成的事,现在说一句话就行。但最终的决策权、确认权还是在人手上。

连接器解决了"能力"问题,配置约束解决了"安全"问题,确认流程解决了"信任"问题。三个问题都有答案,Agent才能真正在企业里跑起来。

相关推荐
程序媛小鱼1 小时前
hello-agents学习记录
人工智能·语言模型
天云数据1 小时前
战略契合,落地先行:天云数据AI+能源双向赋能的实战范本
人工智能·能源
用户3457703593571 小时前
【简单上手】服务器上部署兼容 OpenAI API 的 LLM 的 vLLM 方案
人工智能
青岛前景互联信息技术有限公司1 小时前
以一体化管控新思路,构建园区全域全维度安全管理体系
大数据·人工智能·物联网
加勒比海带661 小时前
目标检测算法——农林行业数据集汇总附下载链接【Plant】
大数据·图像处理·人工智能·算法·目标检测
工业机器人销售服务1 小时前
法奥协作机器人:智能避障,安全协作
人工智能·机器人
Quz1 小时前
在 Claude Code中配置DeepSeek:从报错到成功调用【支持DeepSeekV4】
人工智能
搭贝1 小时前
建筑多分支企业数字化实战:凯驿景澄建设项目管理系统落地案例
大数据·人工智能·低代码·数字化·工程项目技术方案
MediaTea1 小时前
人工智能通识课:机器学习之监督学习
人工智能·学习·机器学习