企业应用中的 AI 助手很多时候需要与现有应用(CRM、OA 系统)做集成与交互,以完成某个用户任务或者驱动业务流程。比如:如果你需要 AI 帮你在协同办公系统中提交一个付款申请,那么你需要调用办公系统的接口;或者你需要借助互联网获得最新某上市公司的财务报告,你需要调用第三方平台的公开接口。这就是 AI Agent 另一项重要能力:工具使用。
**AI 应用/工具助手就是能够把自然语言转换成对企业应用或者互联网开放 API 调用的一种基础 Agent 形式。**当然,在复杂任务场景下的这种调用往往不是单一的。其基础架构与原理涉及 Function Calling 机制。
核心挑战
应用助手的基本原理是比较简单的,其复杂性主要体现在大模型对自然语言转 API 的能力,在实际使用中,其主要体现以下两个方面:
企业中 API 过多的优化方案。由于需要通过 Prompt 提示 LLM 这些 API 信息,过多的 API 描述可能会导致上下文溢出;而且大量的 API 相互干扰,会提高大模型推理时的错误率。之前我们介绍过一种优化方案:借助向量库语义搜索,每次只检索出本次任务相关的 API 描述,再交给 LLM 处理。
Assistants API:这是 OpenAI 官方最新放出构建 AI 助手的 API,如果你条件具备,也可以基于此构建企业 AI 助手,充分利用其强大的 gpt4 模型。其中对工具的使用主要体现在其对 Function Calling 功能的支持。
OpenAgents:该项目中的 Plugins Agent 实现了对大量开放 API 的智能使用,并且可以灵活配置增加新的 Plugin,可以参考其实现。
集简云:类似海外 Zapier 的平台。该平台对接了国内大量的 SaaS 应用与互联网平台作为'工具'。因此,你可以通过简单的配置后,在你的 AI 助手中通过 API 来对接这些工具,可以大大拓展你的 AI 助手的'工具库'。
五、Web 操作助手
一种类似 RPA(机器人流程自动化)的 AI 智能体。其主要能力是**自动化 Web 网络浏览、操作与探索的动作与过程,以简化 web 浏览访问与操作。对于个人来说,可以作为个人数字助理,简单对话即可让 AI 帮你完成 Web 浏览与操作,比如在线订票。而对于企业来说,则可以作为企业的数字员工,来简化企业日常工作中重复性较高、流程与规则固定、大批量的前端操作性事务。**比如批量订单处理、批量客户联络、批量网站抓取等,提高效率,降低错误率。
RPA vs AI Agent
传统的 RPA 机器人也是用来完成此类工作的 AI 形式,由于这种 AI 机器人工作在软件的最上层即操作层面,好处是流程直观、简单、也可以配置化,且对应用无侵入性;但其缺点是与前端应用耦合性大,每个任务需要根据前端应用界面做精心配置与调试,自适应能力较差。
在大模型出现以后,给这一类 RPA 智能也带来了新的优化空间。利用大模型的理解与分析推理能力,可以让 AI 更加智能的规划与分解任务过程,然后借助浏览器完成执行;且在未来可以利用像 GPT-4V 这样的视觉模型,更智能的理解界面元素与功能,实现完全自主的智能操作,具备更强的自适应能力。
实现原理
实现一个自主 Web 操作的 Agent 的基础原理与架构涉及浏览器自动化技术。构建一个真实应用的 Web Agent 需要借助浏览器自身能力。由于外部应用无法直接接管浏览器实现操作,一般需要借助浏览器插件,比如 Chrome 扩展,借助浏览器 API 完成网站导航与自动化网页操作,比如点击界面元素,或者输入表单。
我们前面介绍到的 OpenAgents 项目中的 Web Agent 是一个基于 Chrome 浏览器与扩展而实现的一个 LLM Agent,可以参考用作参考。当然由于大模型的输出不确定性,当前的 Web Agent 仍然处于探索实验阶段,具有较大的失败或误操作可能,实际应用中需要根据情况反复测试与评估。
六、自定义流程助手
最后一种 AI Agent 严格来说是上面的几种基础 Agent 能力的组合。
理想中的 AI Agent 是在丢给他一个工具包与一些知识以后,借助于大模型的理解、推理能力,完全自主的规划与分解任务,设计任务步骤,并智能的使用各种工具,检索知识,输出内容,完成任务。但是在企业应用中,由于企业知识、应用、业务需求的千差万别,以及大模型自身的不确定性,如果这么做,那么结果很可能是'开盲盒'一样的不可控。所以这也是越来越多的 Agents 项目要强调可控性的原因,即能够对 AI 智能体的执行过程与细节进行更多的控制,来让 AI 按照人类确认过的工作流程来完成任务。