Open4
Generative Agentsコードリーディング
Generative Agentsのコードリーディングのメモ書き
Maze
init
タイル情報を作成している。
const tile = {
world: 'double studio',
sector': '',
arena: '',
game_object: '',
spawning_location: '',
collision: false,
events: []
}
const game_object_tile = {
world: 'double studio',
sector: 'double studio', 'arena': 'bedroom 2',
game_object: 'bed',
spawning_location: 'bedroom-2-a',
collision: false,
events: [
// [ゲームオブジェクトまでのアドレスを":"で結合したもの, null, null]
['double studio:double studio:bedroom 2:bed', null, null]
]
}
const tiles = [
[tile, tile, tile, ...]
[tile, tile, tile, ...]
[tile, tile, tile, ...]
...
]
const address_tiles = {
'double studio:recreation:pool table': [[29, 14], [31, 11], [30, 14], [32, 11], ...]],
'<spawn_loc>bedroom-2-a': [[58, 9]]
}
Persona
init
記憶を作成している。
spatial_memory
空間記憶、位置情報をツリー構造で記録している。
const memory = {
"double studio": {
"double studio": {
"bedroom 2": ["painting", "easel", "closet", "bed"]
}
}
}
associative_memory
連想記憶、イベント情報を記録している。
const memory = [
// [event.type, event.created, event.expiration, subject, predicate, object]
['event', '2022-10-23 00:00:00', undefined, 'Isabella Rodriguez', 'is', 'idle']
]
scratch
短期記憶。
perceive
- 周囲のタイル取得
-
spatial_memory
更新 - 周囲のタイルからイベント取得
-
associative_memory
にイベント追加 - イベントを返却
retrieve
- イベント受取
- イベントに関連するイベントと考えを付与して返却
AssociativeMemory
init
const nodes = {
"node_14": {
"node_count": 14,
"type_count": 6,
"type": "thought",
"depth": 1,
"created": "2023-02-13 00:00:20",
"expiration": "2023-03-15 00:00:20",
"subject": "Isabella Rodriguez",
"predicate": "love",
"object": "work",
"description": "Isabella Rodriguez loves her work at Hobbs Cafe.",
"embedding_key": "Isabella Rodriguez loves her work at Hobbs Cafe.",
"poignancy": 8,
"keywords": ["love", "Isabella Rodriguez", "work"],
"filling": null
},
...
}
const embeddings = {
"Isabella Rodriguez is idle": [-0.03697006031870842, ...],
...
}
const kw_strength = {
"kw_strength_event": {
"isabella rodriguez": 1,
"sleep": 1,
"bed": 1,
"used": 1
},
"kw_strength_thought": {
"plan": 1,
"excited": 1,
"isabella rodriguez": 5,
"be": 1,
"have been": 1,
"good friends": 1,
"is": 1
}
}