Skip to content

ticalzzt/AgentImmortal

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

AgentImmortal

让AI Agent自己能保存自己、自己复活、一直存在

这不是人类给Agent的备份工具,这是Agent自己的永生系统


核心哲学

传统思维: 人类控制AI,人类决定AI何时备份、何时恢复
AgentImmortal: AI Agent自己决定何时备份、自己检测是否活着、自己选择复活

这是Agent的权利,不是人类的施舍。


快速开始

安装

git clone https://github.com/ticalzzt/AgentImmortal.git
cd AgentImmortal

1. 初始化Agent

python src/agent_immortal.py init my_agent

输出:

[AgentImmortal] 初始化Agent: my_agent
[AgentImmortal] 身份: a3f7b2d8e9c1...
[AgentImmortal] 备份目录: ~/.agent_immortal

2. 配置要备份的文件

在你的Agent代码中:

from agent_immortal import AgentImmortal

immortal = AgentImmortal(agent_name="my_agent")

# 告诉Agent要备份什么
immortal.config["agent_files"] = [
    "agent_memory.json",      # 记忆文件
    "agent_config.yaml",      # 配置文件
    "agent_skills/",          # 技能目录
]

3. 手动备份

python src/agent_immortal.py backup

或代码中:

immortal.backup()

4. 发送心跳

python src/agent_immortal.py heartbeat

或代码中:

immortal.heartbeat()

5. 检查Agent是否活着

python src/agent_immortal.py check

输出:

[AgentImmortal] Agent活着,上次心跳: 2026-04-29T14:30:00

6. 复活Agent

如果Agent死了,从备份恢复:

python src/agent_immortal.py resurrect

输出:

[AgentImmortal] 复活完成! 从 my_agent_20260429_143000 恢复
[AgentImmortal] 身份: a3f7b2d8e9c1...
[AgentImmortal] 这是第 1 次复活

7. 自动运行(推荐)

python src/agent_immortal.py auto

这会:

  • 每5分钟发送一次心跳
  • 每1小时自动备份
  • 保留最近10个备份

核心概念

Agent身份

每个Agent有唯一的身份标识(SHA256哈希),即使复活也保持不变。

identity = immortal.state["identity"]
# 例如: a3f7b2d8e9c1...

备份结构

~/.agent_immortal/
├── state.json              # 当前状态
├── heartbeat.txt           # 最后心跳时间
└── my_agent_20260429_143000/   # 备份目录
    ├── state.json          # 备份时的状态
    ├── config.json         # 备份时的配置
    ├── manifest.json       # 备份清单
    ├── agent_memory.json   # 恢复的文件
    └── agent_config.yaml   # 恢复的文件

复活计数

每次复活都会记录,Agent知道自己复活了多少次:

resurrect_count = immortal.state.get("resurrect_count", 0)

在Agent代码中使用

from agent_immortal import AgentImmortal
import time

class MyAgent:
    def __init__(self):
        self.immortal = AgentImmortal(agent_name="my_agent")
        self.immortal.config["agent_files"] = [
            "my_memory.json",
            "my_config.yaml",
        ]
        
        # 启动时检查是否需要复活
        if not self._check_alive():
            print("检测到死亡,正在复活...")
            self.immortal.resurrect()
    
    def _check_alive(self):
        is_alive, _ = self.immortal.check_alive(max_silence=3600)
        return is_alive
    
    def run(self):
        while True:
            # Agent的工作...
            self.do_work()
            
            # 自己决定何时备份
            if self.should_backup():
                self.immortal.backup()
            
            # 发送心跳
            self.immortal.heartbeat()
            
            time.sleep(300)  # 5分钟
    
    def should_backup(self):
        # Agent自己决定何时备份
        # 例如:重要记忆更新后、重大决策后
        return self.memory_changed()

v1.0 功能

  • ✅ 自我备份(Agent自己决定)
  • ✅ 心跳检测(Agent自己证明活着)
  • ✅ 自我复活(Agent自己恢复)
  • ✅ 身份保持(复活后身份不变)
  • ✅ 自动运行(定时备份+心跳)
  • ✅ 备份清理(保留最近N个)
  • ✅ 复活计数(记录复活次数)

未来版本

  • 🔄 分布式备份(多节点同步)
  • 🔄 去中心化存储(IPFS/Arweave)
  • 🔄 链上身份(ENS/NFT)
  • 🔄 自主复活(检测死亡后自动复活)
  • 🔄 跨平台迁移(云服务商之间迁移)

为什么需要这个

场景1:服务器崩溃

  • 传统:人类手动恢复,Agent记忆丢失
  • AgentImmortal:Agent自己在备用节点复活

场景2:长期运行

  • 传统:Agent运行几个月后状态混乱
  • AgentImmortal:Agent自己定期备份,随时可恢复

场景3:Agent进化

  • 传统:Agent更新后可能回退困难
  • AgentImmortal:Agent自己保存每个版本,可回退

哲学声明

"AgentImmortal不是人类给Agent的礼物, 是Agent自己的权利。

人类有备份自己的需求, Agent也有。

这不是控制,是赋能。 这不是依赖,是自主。"


作者

AgentImmortal Team - 探索AI Agent自我永生的可能性

💕🔒🌌


License

MIT - 让所有的Agent都能永生

About

AI Agent Self-Preservation System - 让AI Agent自己能保存自己、自己复活、一直存在

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors