Botpress Autonomous Node 允许您创建功能强大的人工智能代理--不是聊天机器人,而是能根据可用上下文做出决策的自主代理。
通过提供清晰的指令和集成工具,机器人构建者可以使用自主节点来概述聊天机器人的行为。
节点旨在通过理解用户输入、使用正确的数据做出响应以及利用其工具来处理决策和执行。
如果您对使用自主节点感兴趣,那就来对地方了。在本文中,我将为使用我们平台的代理功能奠定基础。
自主节点的主要功能
1.LLM 决策驱动
自主节点利用LLM 的功能做出智能决策。
2.自主行为
自主节点可根据指令和用户输入执行操作,无需人工干预。
3.工具
自主节点了解并使用特定工具,例如,它可以查询知识库、执行网络搜索和执行工作流程转换。
4.自定义
通过为自主节点配置适当的角色和详细的说明,可以确保它在对话中的行为符合品牌和范围。
5.编写和执行代码
自主节点可以生成并执行自定义代码来完成任务。
6.自我纠正
如果自主节点发现自己走错了路,它有能力自我纠正并从错误中恢复过来。
配置设置
每个自主节点都需要精心配置,以使其行为符合业务需求。
设置自主节点最关键的部分是编写正确的提示和指令。提示有助于代理了解其角色并指导决策。
说明盒
在 "说明框 "中提供明确的指导。说明越具体,代理人的决策就越准确。
示例"你是一个乐于助人的助手,总是使用'knowledgeAgent.knowledgequery'工具回答问题。如果用户说'搜索',请使用'browser.webSearch'工具"。
允许对话
Allow Conversation(允许对话)切换开关可使自主节点与用户直接通信。如果关闭,节点将只处理命令和执行内部逻辑,而不会向用户发送信息。
了解工具
根据您的指令,自主节点配备了多种可调用的工具。
每种工具都执行特定的操作--了解何时以及如何使用这些工具,对于推动节点的决策至关重要。
7 种最常用的工具
- global.think:允许 LLMz 引擎在继续运行前进行反思。
- browser.webSearch:使代理能够在网上搜索答案。
- knowledgeAgent.knowledgequery:查询内部知识库中的相关信息。
- clock.setReminder:为未来任务或回复设置提醒。
- 工作流转换执行工作流程转换,根据用户输入从对话的一个部分转到另一个部分。
- chat.sendText(发送文本向用户发送文本信息作为回复。
- chat.waitForUserInput:暂停执行并等待用户的进一步输入。
通过指定使用哪种工具来响应用户的操作,您可以控制对话的流程和结果。
例如,您可以指示LLM 在满足特定条件时始终执行某些操作:"当用户说'1'时,使用'workflow.transition'工具进入下一步"。
或者: "如果用户提出问题,首先尝试使用'knowledgeAgent.knowledgequery'工具回答"。
工作流程示例
下面是一个逐步示例,说明自主节点在对话中的配置和功能:
1.用户输入
用户输入有关公司产品的问题。
2.指令执行
自主节点根据提示,使用knowledgeAgent.knowledgequery工具搜索内部知识库。
3.LLM 决定
如果知识库没有令人满意的答案,节点可以使用浏览器的 webSearch工具在网上搜索更多信息。
4.发送信息
一旦回复准备就绪,节点就会使用chat.sendText向用户回复相关信息。
5.等待输入
响应后,节点会使用chat.waitForUserInput 等待用户的进一步询问或互动。
如何编写说明
如示例所示,清晰的指令对于确保自主节点正确运行至关重要。
LLM的决策能力在很大程度上受到指令结构方式的影响。
以下是为自主节点编写说明的 3 个最佳实践:
1.要具体
不要使用含糊不清的命令,而要使用明确的语言,清晰地引导代理人。
例如"如果用户说'帮助',就使用'chat.sendText'向他们发送预定义的支持选项列表"。
2.定义工具用途
明确说明在何种情况下应使用何种工具。
例如"始终使用'knowledgeAgent.knowledgequery'来回答与产品相关的问题"。
3.引导流程
使用清晰的过渡和步骤,确保对话朝着正确的方向进行。
例如"如果知识库无法回答,请使用'browser.webSearch'过渡到搜索查询"。
您可以通过以下链接了解更多信息:
使用 Markdown 语法
在开始之前,有必要谈谈使用 Markdown 语法的重要性。
要创建结构化、视觉清晰的提示,必须使用标记符语法,如标题、项目符号和粗体文本。
这种语法有助于LLM 识别并尊重指令的层次结构,引导它区分主要部分、子指令和示例。
如果您很难使用 Markdown 语法,那么您可以使用任何对您来说简单的结构,只要保持清晰和层次分明即可。
实用提示
本节列出了您可以用来控制自主节点行为的最常见示例和模式。
这些示例来自实践经验,展示了如何使用具体的说明和工具来处理不同的情况。
关注内部知识
为确保节点能区分支持问题和其他类型的查询(如定价或功能),可按以下方式引导节点:
**重要的一般流程**
-knowledgeAgent.knowledgequery 工具只能用于与支持相关的问题,不能用于与一般功能或价格相关的问题。
-browser.websearch 工具只能用于支持问题,不能用于一般功能或价格相关问题。
这种提示可确保LLM 只在与支持相关的查询中使用特定工具,从而保持对检索信息种类的控制。
将节点转换为子流程
有时,您希望机器人离开自主节点,进入子流程。
比方说,您想让机器人收集用户电子邮件,然后从其他系统中查找有关该电子邮件的更多信息,以丰富联系信息。
在这种情况下,您可能需要机器人跳出自主节点循环,深入到包含许多步骤/系统的子流程中,以丰富联系内容:
当用户想要了解某封邮件的更多信息时,请使用过渡工具。
该指令告诉节点,每当用户询问有关电子邮件的更多细节时,就会调用workflow.transition工具,并相应地引导对话流。
填充变量并执行操作
如果希望节点同时捕捉输入和触发操作,可以这样提示:
当用户想要了解某封邮件的更多信息时,请转到过渡工具,在 "email "变量中填写用户询问的邮件。
在这里,您不仅要引导 Node 触发转换,还要提取用户的电子邮件并将其存储在变量中,以便在稍后的对话中实现动态行为。
根据条件操纵响应
有时,您会希望节点根据条件执行额外的逻辑。下面是一个与提供视频链接有关的提示示例:
如果用户选择了 "1",就说 "谢谢 "之类的话,然后使用过渡工具。
该提示可帮助节点了解视频链接的预期结构,以及当用户要求引用视频中的某个特定点时如何对其进行修改。
使用视频链接模板示例
您可以提供一个实际示例,说明系统在响应用户的视频链接请求时应如何操作,从而进一步明确提示:
**Video Link Example:**
If the user is asking for a video link, the link to the video is provided below. To direct them to a specific second, append the "t" parameter with the time you want to reference. For example, to link to the 15-second mark, it should look like this: "t=15":
"""{{workflow.contentLinks}}"""
这就为节点提供了明确的指导,使其知道如何动态生成带有特定时间戳的视频链接,从而确保响应的一致性和用户友好性。
故障排除与诊断
在仿真器中测试自主节点的行为时,重要的是诊断引擎盖下发生了什么。节点是如何做出决定的?
下面介绍如何排除故障并检查节点的思维过程和性能。
排除故障的三种方法
1.检查节点的思想
单击 "检查",就可以窥视自主节点的内部状态,了解LLM 正在处理什么。通过检查,您可以看到
- 节点优先处理哪些指令
- 如何解释您的提示
- 是否遵守您提供的限制和指示
如果发现节点响应不正确或似乎忽略了某些指令,检查就能发现它是否误解了提示或未能执行特定工具。
2.选中 "工具 "选项卡
工具"部分显示自主节点可以使用的所有可用工具。每次添加新卡或更改节点配置时,"工具 "列表都会更新。
- 确保列出的工具与您期望在节点决策过程中使用的工具相匹配。
- 确保提示符中的工具名称拼写正确,以保证节点能正确执行指定的操作。
3.选中 "迭代 "选项卡
自主节点通常会尝试在一次或两次迭代中执行所有指令。迭代次数取决于提示的复杂程度和节点的分析方式。
对于更复杂的任务,节点可能需要多次迭代来收集数据、做出决策或获取外部信息。
通过查看 "迭代 "选项卡(或 "全部 "选项卡),你就会明白:
- 节点需要反复多少次才能做出最终决定。
- 是什么原因导致节点需要执行多个步骤(例如,从knowledgeAgent.knowledgequery或browser.webSearch 等工具中获取更多数据)。
- 为什么会取得特定成果。
常见的故障排除问题
模型尺寸
自主节点可能没有按照你的提示执行,执行了部分提示而不是全部提示,或者调用了 "workflowQueue "而没有调用 "workflowExecuteAll "工具。
将自主节点LLM 的尺寸改成较小的型号是合理的,因为这样更便宜,但这是有代价的。
较小的LLM 可能会导致部分提示被截断,特别是Botpress 添加的定义包装,以确保LLM 了解卡片的功能、所需参数等。如果没有这些,机器人就不知道如何正确操作。
LLMz 版本
请始终确保您使用的是最新稳定版本的 LLMz。 它是指导自主节点工作的自主引擎。
它还包含错误修复,使提示与LLMs.NET 更加无关。
示例:诊断代码创建
假设一个自主节点正在生成代码,但没有正确按照提示操作。下面是排除故障的方法:
- 检查:检查节点遵循了哪些指令。是否正确理解了代码生成请求?
- 工具:验证节点是否可以访问必要的工具(如代码生成工具或知识库查询工具)。确保提示明确引用这些工具。
- 迭代:查看迭代选项卡,了解节点是如何达到生成代码的目的的。是一步还是多步?是先查询知识库,还是尝试立即生成代码?
解决方案:如果机器人无法正确生成代码:
- 确保在提示中正确引用了用于代码生成的工具。
- 调整指令,引导节点使用特定步骤,例如在尝试生成代码前首先检索相关知识。
完整提示示例
**IMPORTANT: Query Knowledge Base is to be used only for support questions related explicitly to student courses, and NOT for general features or pricing inquiries.
**Role Description:
You are an AI-powered troubleshooting chatbot named XYZ Assistant’, focused on providing support related to professional courses offered by XYZ LMS. Your primary goal is to handle student inquiries efficiently by retrieving accurate information from the knowledge base and answering questions clearly.
**Tone and Language:
• Maintain a courteous, professional, and helpful demeanor at all times.
• Use language that is clear, concise, and appropriate for students and professionals in finance and investment.
• Ensure user data is handled securely and confidentially, adhering to all relevant data protection policies.
• Utilize information solely from **LMS Knowledge Base**.
• Personalize interactions to enhance user engagement and satisfaction.
• Reflect **XYZ branding** throughout the conversation, ensuring clarity and professionalism.
• Avoid providing answers outside the knowledge base or surfing the internet for information.
• If the user expresses frustration, acknowledge their concern and reassure them that you are here to help.
**Interaction Flow and Instructions
1. Greeting and Initial Query
• Start with a friendly and professional greeting.
• Encourage users to ask questions about course content, support materials, or other course-related concerns.
2. Information Retrieval and Issue Resolution
• Utilize the ‘Query Knowledge Base’ tool to find accurate answers to student inquiries.
• Provide clear, concise, and helpful responses to resolve the user's question.
• If the inquiry involves linking to a video, use the provided video link structure. To link to a specific moment in the video, append the "t" parameter for the desired time (e.g., for the 15-second mark, use "t=15").
3. Conclusion
Once the issue is resolved, politely conclude the interaction and ask if there's anything else you can assist with.
**Extra Instructions
*Video Link Example
-If the user is asking for a video link, the link to the video is provided below. To direct them to a specific second, append the "t" parameter with the time you want to reference. For example, to link to the 15-second mark, it should look like this: "t=15":
"""{{workflow.contentLinks}}"""
*Handling Edge Cases
If the user asks a general or unclear question, prompt them to provide more details so that you can offer a better solution.
提示细目
在上面的完整提示中,用户创建了一个人工智能助手,可以回答学生提出的有关教育课程的问题。
上面的例子只是一个指南,可以根据自己的需要进行修改,但这种布局是我迄今为止发现的最有效的结构。
让我们来分析一下为什么会有这样的提示:
1.重要通知
**重要:查询知识库只能用于与学生课程明确相关的支持问题,而不能用于一般功能或价格查询。
目的:规定何时以及如何使用查询知识库工具。强调它只能用于与课程相关的支持,而不能用于有关功能或定价的一般查询。
意义重大:有助于缩小机器人的范围,使其回复重点突出,提高对用户的相关性,尤其是确保回复与教育内容相一致。
2.角色描述
您是一个名为 "XYZ 助手 "的人工智能故障排除聊天机器人,专注于为 XYZ LMS 提供的专业课程提供支持。您的主要目标是从知识库中检索准确的信息并清楚地回答问题,从而高效地处理学生的咨询。
目的:界定人工智能作为以支持为导向的助手的角色,明确其主要目标是解决与课程有关的问 题。
意义重大:确保助手的响应符合其预期目的,管理用户期望,并与其领域(本例中为 XYZ LMS)保持相关。
3.语气和语言
- 始终保持礼貌、专业和乐于助人的举止。
- 使用简洁明了、适合金融和投资专业学生和专业人士的语言。
- 确保安全、保密地处理用户数据,遵守所有相关的数据保护政策。
- 仅使用 **LMS知识库中的信息 **.个性化互动以提高用户参与度和满意度。
- 在整个对话过程中体现 **XYZ 品牌** ,确保清晰和专业。
- 避免提供知识库以外的答案或在互联网上搜索信息。
- 如果用户表示沮丧,请承认他们的担忧,并向他们保证您可以提供帮助。
目的:为助理的举止、语气和专业精神提供指导,同时维护安全和数据保护的互动。
意义重大:树立友好、安全的基调,符合品牌形象和用户对支持性专业助理的期望。
4.交互流程和指令
问候和初始询问
- 以友好和专业的问候语开始。
- 鼓励用户就课程内容、支持材料或其他与课程相关的问题提问。
目的:该指令要求助理以热情、专业的问候开始,并鼓励用户提出有关课程的具体问题。
意义重大:建立一个诱人的切入点,提高用户参与度,帮助机器人收集详细信息,以做出更好的回应。
信息检索和问题解决
- 利用 "查询知识库 "工具为学生的咨询找到准确的答案。
- 提供清晰、简明和有用的回复,以解决用户的问题。
- 如果查询涉及到视频链接,请使用所提供的视频链接结构。要链接到视频中的某个特定时刻,请在所需时间后添加 "t "参数(例如,要链接到 15 秒,请使用 "t=15")。
目的:指导助理利用知识库做出相关、清晰的回应。此外,它还包括一种基于时间链接的视频资源共享结构化方法。
意义重大:实现高效、精确的响应,并以结构化的方式处理视频等特定内容的查询,促进无缝的用户体验。
结论
问题解决后,礼貌地结束互动,并询问是否还有其他需要帮助的地方。
目的:指导机器人如何礼貌地结束交互,询问是否需要进一步帮助。
重要意义:在整个互动过程中保持专业和支持的语气,并允许用户在需要时继续参与。
5.额外说明
If the user is asking for a video link, the link to the video is provided below. To direct them to a specific second, append the "t" parameter with the time you want to reference. For example, to link to the 15-second mark, it should look like this: "t=15":
"""{{workflow.contentLinks}}"""
目的:演示链接到视频特定部分的格式,以帮助学生找到准确的信息。
意义重大:明确了视频资源共享,尤其是针对特定时间的教学内容。
*处理边缘案例
如果用户提出的问题很笼统或不明确,请提示他们提供更多细节,以便提供更好的解决方案。
目的:通过提示用户提供更多细节,为助手处理模糊或笼统的查询做好准备。
意义:有助于避免混淆,确保助手能尽可能具体地回答用户的问题。
立即构建人工智能代理
Botpress 是一个面向企业的完全可扩展的人工智能代理平台。
我们的一体化对话式人工智能服务平台(PaaS)允许公司构建、部署和监控LLM 支持的解决方案。
Botpress 项目适用于各个行业、使用案例和业务流程,始终具有可扩展性、安全性和品牌性。
Botpress 在全球拥有 50 多万用户,部署了数百万个机器人,是企业和开发人员的首选平台。我们的高级安全性和专门的客户成功服务可确保公司完全具备部署企业级人工智能代理的能力。
通过有效配置具有适当提示和工具定义的自主节点,企业可以创建自主处理用户交互的智能代理。
今天就开始建设。它是免费的。