随着AI智能体进行长时间的互动并处理来自各种来源的信息,它们不可避免地会遇到可能挑战或与其现有理解相悖的数据。保持一套连贯的认知——智能体所持有的事实、假设和结论——对于连贯的推理、可靠的决策和可信的输出是基础。如果没有管理一致性的方法,智能体对其环境或任务的内部模型可能会变得碎片化且不可靠,导致行为不稳定或任务执行错误。提示工程策略将用于帮助智能体管理信息一致性并有条理地更新其认知。主要问题在于智能体的知识并非一成不变。它随着用户输入、工具交互或自身推断的每一条新数据而变化。当新信息与既有认知发生冲突时,智能体必须有办法解决这些差异。信息冲突的来源信息冲突可以来自几个方面:新的矛盾输入: 用户可能会提供更新,使之前的指令失效,或者传感器读数可能与之前的不同。工具输出: API调用返回的数据可能与智能体当前的理解冲突。例如,天气API可能报告下雨,而智能体之前根据旧信息“认为”是晴天。过时信息: 存储在智能体记忆中(短期或模拟的长期存储)的知识可能会过时。模糊数据: 可以有多种解释的信息,如果得不到解决,可能导致内部不一致。智能体自身的推断: 大型语言模型的推理或泛化能力不完善,有时可能导致智能体得出相互排斥的结论。用于认知调和的提示工程有效的提示设计可以引导智能体检测、评估和解决不一致之处。目标是让智能体的认知更新过程更加明确和可控。明确的更新指令您可以直接指示智能体如何处理与其当前知识冲突的新信息。提示可以鼓励采用系统方法来整合新数据。例如,如果智能体正在追踪库存:初始认知(隐式或来自先前上下文): “部件A:库存100件。”新信息(来自提示中模拟的API调用): “销售API报告:部件A已售出10件。”调和提示:你是一名库存管理助手。 你目前的理解是:部件A:库存100件。 新交易:销售API报告部件A已售出10件。 根据这项新交易,更新你对部件A库存水平的理解。 说明之前的库存水平、交易内容和新的库存水平。这个提示强制智能体承认旧的认知、处理新信息并阐明更新后的认知。提示中的置信度标记可以提示智能体为其处理或存储的信息关联一个定性甚至准定量的置信度。当出现新的冲突信息时,此置信度分数可以帮助决定信任哪条信息或如何整合它们。分配置信度的提示:当你收到一条信息时,评估其可靠性。如果它直接来自用户或受信任的系统API,请指定“高”置信度。如果这是你做出的推断或来自不太可靠的来源,请指定“中”或“低”置信度。 信息:[新数据] 来源:[数据来源] 推导置信度:? 如果此新信息(置信度:[值])与现有认知(认知:[文本],置信度:[值])冲突,请解释你将如何根据置信度级别解决此问题。这鼓励智能体不仅存储事实,还存储有关这些事实的元数据,这对解决问题有用。提示引导的冲突分析当智能体检测到矛盾时,提示可以指示它进行系统分析。这类似于思维链方法,但侧重于认知调和。冲突分析提示:你遇到了可能相互冲突的信息: 1. 信息A:“[信息A的详情]”来自来源S1。 2. 信息B:“[信息B的详情]”来自来源S2。 分析此冲突: - 重述两条信息。 - 找出确切的矛盾点。 - 评估S1和S2的时效性和假定可靠性。 - 提出解决方案: a) 你将优先考虑哪条信息,为什么? b) 是否需要更多信息来解决此问题?如果是,你会提出什么问题?这使得智能体的推理过程清晰,并允许在其解决策略有缺陷时进行干预。通过提示模拟认知账本虽然智能体的上下文窗口中没有真正的数据库,但提示可以引导它们维护一个“内部账本”或关于重要实体或状态的持续认知摘要。这包括指示智能体在收到新信息时明确重述和更新其理解。账本维护提示:你正在追踪“任务阿尔法”的状态。 目前对任务阿尔法的总结理解:[智能体当前的总结] 收到关于任务阿尔法的新更新:“[新更新文本]” 将此更新整合到你的理解中。为“任务阿尔法”提供一份更新后的总结,突出显示已更改的内容。这有助于保持对动态情况的连贯叙述。请求澄清一个简单但有效的策略是提示智能体在检测到模糊性或无法自行解决的直接矛盾时,主动寻求澄清。寻求澄清的提示:如果你收到的信息含糊不清,或者新数据与你当前理解的关键部分直接冲突,并且你无法确定正确的版本,请不要基于这种不确定性执行操作。相反,请向用户或系统提出一个具体问题,以解决歧义或矛盾。信息源优先级智能体通常从多个来源接收信息:直接用户命令、工具输出(如网络搜索或数据库查询)以及它们预训练的知识。提示可以建立可信度等级或优先级规则来处理这些来源。来源优先级提示示例:你正在协助旅行计划。 规则1:用户的明确偏好(例如,“我想要早班飞机”)优先于任何通用信息或工具建议。 规则2:来自经批准的航班API的实时信息(例如,航班可用性、价格)优先于旧的缓存数据或一般假设。 规则3:如果用户的偏好与API数据冲突(例如,用户想要API显示不可用的航班),说明冲突并请求用户指示。 当前情况:用户偏好靠窗座位。航班API报告所选航班只有靠过道座位。 你将如何操作?图示:认知调和流程以下图示说明了智能体如何在提示引导下处理冲突信息的一个简化流程。digraph G { rankdir=TB; node [shape=box, style="filled", color="#e9ecef", fontname="sans-serif", margin=0.05]; edge [fontname="sans-serif", fontsize=10]; subgraph cluster_agent_process { label="智能体认知调和过程"; bgcolor="#f8f9fa"; style="rounded"; node [shape=box, style="filled", fontname="sans-serif"]; current_belief [label="现有认知:\n事实X为真", color="#a5d8ff"]; new_information [label="新信息:\n事实X为假 (来源: 工具Y)", shape=note, color="#ffec99"]; prompt_guidance [label="提示指令:\n'评估冲突。\n优先考虑更新/可靠数据。\n说明变化。'", shape=document, color="#b2f2bb"]; llm_reasoning [label="大型语言模型推理引擎", color="#bac8ff"]; updated_belief [label="更新后的认知:\n事实X为假 (根据工具Y)", color="#a5d8ff"]; action_or_output [label="智能体操作/输出", color="#ced4da", shape=ellipse]; } current_belief -> llm_reasoning [label="输入"]; new_information -> llm_reasoning [label="输入"]; prompt_guidance -> llm_reasoning [label="引导"]; llm_reasoning -> updated_belief [label="调和并更新"]; updated_belief -> action_or_output [label="告知"]; }智能体接收到与现有认知冲突的新信息。提示指令引导大型语言模型对冲突进行推理,更新其认知,然后告知后续操作或输出。认知在交互间的持久性对于需要持续超出单次交互或有限上下文窗口的认知,提示可以指示智能体生成其重要认知或任何显著变化的摘要。这些摘要可以外部存储,并在未来的会话中重新引入到智能体的上下文中。会话结束认知总结提示:在结束本次会话之前,请提供一份关于您当前理解的简洁总结,内容包括: 1. 泰坦项目的状态。 2. 已识别出的任何未解决问题。 3. 本次交互期间做出的决策。 此总结将用于初始化我们下次会话的知识。重要考量虽然这些提示技术显著提升了智能体管理信息一致性的能力,但一些挑战依然存在:大型语言模型的缺陷: 大型语言模型并非不会出错。即使有仔细的提示,它们也可能误解矛盾,未能正确更新认知,或“幻觉”出解决方案。对提示进行迭代测试和优化是必要的。提示复杂性: 设计能全面涵盖一致性规则而不至于过长或过于复杂的提示,需要一种精妙的平衡。过度复杂的提示可能会让大型语言模型感到困惑并降低性能。应从简单开始,逐步增加复杂性。大规模认知集的扩展性: 仅通过有限的上下文窗口和自然语言提示来管理复杂的认知网络可能会效率不高。对于复杂情况,这些基于提示的技术通常会补充更结构化的外部记忆系统或知识库,提示引导智能体与这些外部存储的交互。上下文相关的真实性: 认知的“真实性”或相关性可能高度依赖于具体的任务或上下文。提示可能需要帮助智能体理解这些情况,允许它持有看似矛盾的认知,如果这些认知适用于不同的情境(例如,“项目第一阶段按时进行,但第二阶段延迟了”)。通过精心设计提示,您可以为AI智能体配备更好的方法来保持信息一致性,从而在动态环境中实现更合理、可靠和有效的行为。这是有效管理智能体记忆的一个重要组成部分,确保它所“知道”的信息随时间推移保持连贯和有用。