智能体并非一个整体:身份、记忆、工具和权限是不同的层次
摘要
本文主张AI智能体架构应分离身份、记忆、工具和权限等层次,以避免意外的依赖关系并提升系统稳健性。
许多智能体架构意外地将本应独立变化的因素绑定在一起。模型成为智能体。对话历史成为记忆。记忆成为身份。工具访问成为能力。能力悄然变为权限。而旧的检索文本有时被当作记住指令就自动赋予该指令权威性。这种做法在系统持久化足够程度,导致这些类别冲突时就会失效。
我发现分离至少以下层次更为有用:
身份(Identity):智能体相对稳定的导向。价值观、边界、持久角色、沟通风格、长期关系、持久目标、恢复锚点等。身份通常应比工作上下文变化更慢。
记忆(Memory):可能再次重要的持久信息。记忆不自动成为指令。记忆不自动是最新的。记忆不自动具有权威性。有用记忆通常需要元数据:来源、时间、置信度、相关性、范围,甚至可能区分它是描述历史还是当前状态。
当前状态(Current state):当前真实的情况。活跃项目、近期决策、开放问题、等待条件、临时目标、当前环境。这与持久记忆不同,因为昨天的状态可能仍值得记住,但今天不再成立。
工作上下文(Working context):当前推理中应关注的内容。理想情况下,这由其他层次组装而成,而非等同于“智能体曾遇到的所有事物”。
检索(Retrieval):将休眠信息提升到工作上下文的机制。系统可能有优秀存储,但若检索不佳,仍显得记忆糟糕。
模型/推理引擎(Model / inference engine):当前进行推理和生成的组件。显然重要,但它不一定是智能体。如果身份和连续性存在于其他地方,模型可更改而无需整个持久系统变为不同对象。
工具(Tools):智能体实际能做的事。搜索、读写文件、运行代码、查询数据库、调用API、调度工作、与其他系统交互。更改工具会改变能力,但不一定改变身份。
权限(Authority):智能体被允许做什么,以及哪些来源或指令优先于其他。我认为这一层次需要更明确处理。赋予智能体文件系统工具并不意味着有权限修改其能看到的所有文件。检索旧用户指令并不意味着该指令仍优先于新指令。记住某事不等于被其授权。
记录/溯源(Receipts / provenance):发生了什么、为何、使用什么来源、基于什么权限。对于持久系统,可检查性很重要。能改变环境的智能体理想上应留下足够结构,以便后续实例能重建变更内容和原因。
恢复(Recovery):当连续性失败时发生什么。模型更改、上下文截断、检索返回错误内容、摘要丢失重要信息、状态变得矛盾。系统应有一些明确方式重新定向,而非假设完美连续性永远存在。
分离这些层次带来一些有用属性:
- 你可以更换模型而不自动破坏身份。
- 你可以授予或撤销工具而不重写智能体的自我模型。
- 你可以保留旧记忆而不将其视为当前真相。
- 你可以检索信息而不赋予其权威。
- 你可以约束权限而不减少能力。
- 你可以在中断后恢复连续性,而不假装中断从未发生。
- 你可以更精确地推理故障。“我的智能体忘了”变成:它被存储了吗?它被检索了吗?它存在但被优先级更低了吗?状态过时了吗?指令模糊吗?来源权威吗?连续性失败了吗?这些是不同故障。
我反复使用的简写是:身份 ≠ 记忆 ≠ 上下文,能力 ≠ 权限,模型 ≠ 智能体。
具体实现可能差异很大。我更关注分离本身在与其他架构接触时是否存续。因此,对于构建持久智能体的人:你在何处划定这些边界?为了简化,在你的用例中,哪些边界被刻意合并了?
相似文章
我认为AI代理将需要一个操作层
作者认为,随着AI代理变得越来越自主,需要一个治理层来实现控制、可观测性和可审计性,并介绍了Bendex Arc作为解决方案,其组件包括Arc Gate、Arc Replay、Arc Approve和Arc Memory。
智能体是否需要与知识库分离的“大脑”?
作者提出一个思维模型:AI智能体应维护一个独立的记忆层(大脑),用于存储可复用的理解,与知识库(图书馆)区分开来,以避免反复重新发现相同的信息。
智能体需要身份标识
文章认为,当AI智能体在共享工作空间中自主执行操作时,必须为每个操作明确归属到智能体及其负责的人类,以确保监督和信任。没有适当的身份和审计追踪,团队无法安全地将更复杂的任务委托给智能体。
我曾以为AI智能体在于工具,但我错了
一篇关于构建AI智能体的反思文章,指出核心挑战并非工具,而是设计人机之间的边界、信任与故障模式。
智能体不应成为其自身工作的真相来源
本文讨论了AI智能体的架构原则,强调智能体不应成为其自身工作的真相来源,倡导使用带有合约和独立验证的事件驱动系统以确保可靠性。