Agent 排障记忆树:证伪一个假设要撤销多少后代

本文探讨Agent在假设证伪时如何精准撤销依赖动作,同时保留失败证据与历史上下文。提出基于记忆树的后代遍历撤销策略,避免重复执行过期动作;指出真实依赖关系常为图结构,需区分观测真实性与动作授权状态。强调跨分支共享工件需显式记录边类型,并主张以环境敏感的反证替代过度泛化的禁令,提升排障可解释性与复用性。

递归失效、保留失败证据封面

排障Agent容易重新提议一个已经否决的方案。只把失败原因塞进摘要未必够,因为它还可能保留该方案下面的一串动作,看起来像仍可执行的待办。

一个假设失效时,应沿依赖关系撤销后续动作;失败证据本身则要保留。删除整个分支会让Agent失去“为什么不能再试”的解释,完全不撤销又会留下过期行动。

撤销权威,保留历史

下面用树表示“目标→假设→动作→观测”。从指定节点迭代遍历所有后代,不限于直接孩子,并用visited集合避免意外重复边造成无限循环。模型不负责决定状态写入;调用者确认假设已被证伪后,才触发撤销。

一个假设失效时,其所有后代都退出活动状态

from dataclasses import dataclass, field

@dataclass
class Node:
    text: str
    children: list = field(default_factory=list)
    active: bool = True
    reason: str = ''

def invalidate(nodes, start, reason):
    if start not in nodes:
        raise KeyError(start)
    stack, visited = [start], set()
    while stack:
        key = stack.pop()
        if key in visited:
            continue
        visited.add(key)
        node = nodes[key]
        node.active = False
        node.reason = reason if key == start else 'ancestor invalidated'
        stack.extend(node.children)
    return visited

nodes = {'goal': Node('recover', ['A', 'B']),
         'A': Node('bad hypothesis', ['A1']),
         'A1': Node('action', ['A1a']),
         'A1a': Node('observation'), 'B': Node('alternative')}
changed = invalidate(nodes, 'A', 'evidence contradicts hypothesis')
assert changed == {'A', 'A1', 'A1a'}
assert nodes['goal'].active and nodes['B'].active
assert 'A' in nodes and nodes['A'].reason
print('all descendants revoked; alternative and failure evidence retained: PASS')

树是起点,真实依赖可能是图

如果两个方案共享一份观测,不能因为一个方案失效就宣布观测为假。应把“观测真实性”与“行动是否仍被该假设授权”分开。这里的树只适合明确的单父依赖,跨分支共享工件需要额外记录边的类型。

长任务Agent的工程文章讨论了跨会话留下可接续工件的重要性。本文把这个思路收窄到失败路径的状态,不把2025年的文章当成当月新发布。

IBM 10月20日的记忆研究还提醒我们,失败经验怎样被压成指引本身就是实验条件。把一条失败提炼成“永远不要做X”可能过度泛化;记录适用环境和反证比写一句禁令更稳妥。

这个例子已在本地验证孙辈节点也被撤销、另一分支保留和失败证据不被删除,没有开展模型排障或生产故障实验。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值