掘金 人工智能 07月21日 14:02
Generative agents 代码分析 感知
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

本文深入解析了生成式智能体(Generative Agents)认知链中的“感知”模块,详细阐述了其在空间感知、事件感知、记忆存储和重要性评分方面的工作原理。该模块是智能体理解和与环境互动的基础,通过多层级空间记忆、距离优先的注意力机制以及利用GPT模型进行显著性评分,有效地处理和存储环境信息,为后续的记忆检索、规划和执行奠定基础。

✨ 空间感知与记忆构建:Perceive模块的核心功能之一是识别角色周围可见的瓦片(tiles),并利用这些信息更新其多层级(世界、区域、场景、游戏对象)的空间记忆树。这种树状结构支持动态扩展,能够高效地存储和检索复杂环境中的空间信息,为智能体的导航和定位提供支持。

🌟 事件感知与去重:该模块能够识别角色视野范围内发生的事件,并判断是否为新事件。通过遍历附近的瓦片并过滤重复事件,同时根据距离对事件进行排序,保留最近的事件,有效避免了信息过载,确保智能体优先处理最重要的动态信息。

🎯 重要性评分与GPT应用:Perceive模块利用GPT模型对感知到的事件进行“显著性”(poignancy)评分,这是后续行为决策的关键。无论是普通事件还是聊天事件,都有专门的GPT模型进行评分,为事件的优先级排序提供了依据,其中空闲状态的事件被赋予固定评分。

🧠 记忆更新与联想记忆:新感知到的事件会被转化为机器可理解的记忆节点,并写入联想记忆(associative memory)。这包括提取关键词、生成嵌入向量(embedding)以及计算重要性分数。同时,若事件涉及角色自身的对话,对话内容也会被一并保存,为智能体的长期记忆和学习提供基础。

这篇文章分析 Generative Agents 中的 感知 Perceive 模块,是 Persona 类认知链 Perceive → Retrieve → Plan → Reflect → Execute 中的第一环。主要功能如下:


主要函数详解

1. generate_poig_score

def generate_poig_score(persona, event_type, description):

2. perceive

输入:

    persona: 当前角色实例。maze: 地图实例,提供位置与事件信息。

输出:

ret_events: 一组感知到的新事件,每个事件是一个 <ConceptNode> 对象。

def perceive(persona, maze):

这是整个模块的核心函数,负责完成以下任务:

A. 空间感知

nearby_tiles = maze.get_nearby_tiles(persona.scratch.curr_tile, persona.scratch.vision_r)

B. 事件感知

for tile in nearby_tiles:  ...

C. 事件处理与记忆更新

latest_events = persona.a_mem.get_summarized_latest_events(...)if p_event not in latest_events    # 调用 openai 模型能力 gpt_structure.pyevent_embdding = get_embedding(deesc_embedding_in)# 调用 openai 模型能力。Get event poignancy. event_poignancy = generate_poig_score(persona,                                             "event",                                             desc_embedding_in)   chat_poignancy = generate_poig_score(persona, "chat",                                              persona.scratch.act_description)# 调用 openai 模型能力 gpt_structure.pydef generate_poig_score(persona, event_type, description):   if "is idle" in description:     return 1  if event_type == "event":     return run_gpt_prompt_event_poignancy(persona, description)[0]  elif event_type == "chat":     return run_gpt_prompt_chat_poignancy(persona,                            persona.scratch.act_description)[0]

D. 记忆写入

persona.a_mem.add_chat(...)persona.a_mem.add_event(...)

设计亮点

多层级空间记忆

距离优先的注意力机制

显著性评分机制

记忆去重机制

关键参数说明

参数描述
vision_r角色视野半径(单位:tile)
att_bandwidth最多感知的事件数量
retention用于判断是否为新事件的时间窗口(步数)

这些参数控制角色的感知能力,可用于模拟不同性格或能力的角色。


总结

perceive.py生成式智能体认知架构 的第一环,负责从环境中提取事件与空间信息,并将其转化为机器可理解的记忆节点。它具备以下核心能力:

功能描述
空间感知构建角色的空间记忆树
事件感知识别视野内的事件并去重
显著性评分使用 GPT 模型评估事件重要性
内存更新将新事件写入联想记忆供后续模块使用

它是构建完整智能体行为链条的基础模块,直接影响后续的记忆检索、规划与执行过程。

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

生成式智能体 Perceive模块 人工智能 认知架构 GPT
相关文章