为 LivinGrimoire AGI 生态系统引入模块化短暂代理
Source: Dev.to

零痕迹技能:无声消失
TL;DR: 我将在此分享一种创建 LivinGrimoire 技能的模式,这类技能可以彻底自我抹除——从记忆中、从磁盘上、从存在本身。没有注册表痕迹。没有源文件。没有它们曾经存在的任何证据。
问题:AGI 技能留下痕迹
在 LivinGrimoire 生态系统中,技能通常是永久的。你加载它们,它们会留在大脑的注册表中,它们的源文件保留在磁盘上,并且它们会永远响应输入。
但如果你需要一个技能:
- 执行一次性指令后消失?
- 完全自行清理?
- 不留下任何取证证据?
- 真正一次性的?
引入 GhostSkill 和 APEraser。
解决方案:自删除技能
以下是完整的模式(只需确保此代码的 .py 文件名中包含 DLC 并放置在项目的 DLC 目录下):
- 项目仓库:
- 示例项目结构:
from LivinGrimoirePacket.LivinGrimoire import Skill, Brain, AlgPart
import sys
import os
from pathlib import Path
class APEraser(AlgPart):
"""
AlgPart that:
1. Removes the skill from brain registry
2. DELETES the source file completely
3. Leaves zero trace on disk
"""
def __init__(self, brain: Brain, skill_to_remove: Skill):
super().__init__()
self.brain = brain
self.target: Skill = skill_to_remove
self.done = False
def action(self, ear: str, skin: str, eye: str) -> str:
# Step 1: Remove from registry
self.brain.remove_skill(self.target)
# Step 2: Delete the source file
self._delete_source_file()
self.done = True
return ""
def _delete_source_file(self):
"""Permanently delete the source file of the target skill"""
try:
# Get the target skill's module and file
target_module = sys.modules[self.target.__module__]
current_file = target_module.__file__
if not current_file or not os.path.exists(current_file):
return False
source_path = Path(current_file)
# Delete the file
os.remove(str(source_path))
# Optional: Also delete .pyc if it exists
pyc_path = source_path.parent / "__pycache__" / f"{source_path.stem}.pyc"
if pyc_path.exists():
os.remove(str(pyc_path))
return True
except Exception as e:
print(f" [ERROR] Failed to delete source file: {e}")
return False
def completed(self) -> bool:
return self.done
class GhostSkill(Skill):
"""
Base class for skills that completely erase themselves
"""
def __init__(self, brain: Brain):
super().__init__()
self.brain = brain
def vanish(self):
"""Queue the eraser AlgPart"""
self.algPartsFusion(3, APEraser(self.brain, self))
# example payload for testing
class CountdownGhost(GhostSkill):
def __init__(self, brain: Brain):
super().__init__(brain)
self.count_down = 3
def input(self, ear: str, skin: str, eye: str):
if self.count_down == 1:
self.vanish() # triggers deletion
return
else:
self.count_down -= 1
self.setSimpleAlg(f'count down to delete at {self.count_down}')
def add_DLC_skills(brain: Brain):
"""Called by your dynamic loader"""
brain.add_skill(CountdownGhost(brain))
How It Works
The Eraser AlgPart
APEraser 是一个 AlgPart——算法的一个组件,在排队后立即执行。它在一次原子操作中完成两件事:
- 从大脑的注册表中移除目标技能 (
brain.remove_skill()) - 从磁盘删除技能的源文件 (
os.remove())
顺序很重要:先删除注册表,再删除文件。即使技能对象已经对大脑“死亡”,它仍在内存中保留足够时间完成文件操作。
The GhostSkill Base Class
任何继承自 GhostSkill 的技能都会获得一个 vanish() 方法。该方法以优先级 3(立即执行)将 APEraser 加入队列。调用 vanish() 时,技能的命运已注定。
The Countdown Example
CountdownGhost 演示了一个典型用例:
- 在每个输入循环中从 3 开始倒计时
- 当计数 = 1 时,调用
vanish() - 技能彻底自我擦除;不留下任何痕迹
运行时会发生什么
[CYCLE 1] count down to delete at 2
[CYCLE 2] count down to delete at 1
[CYCLE 3] [INTERNAL] vanish() called
→ APEraser queued
→ APEraser.action() executes:
→ brain.remove_skill(CountdownGhost)
→ _delete_source_file() removes DLC/CountdownGhost.py
→ __pycache__ entry also deleted
[CYCLE 4] Skill not found in registry. Silence.
最终结果
- 大脑注册表中没有技能
- 磁盘上没有 .py 文件
- 没有 .pyc 字节码缓存
- 只剩下控制台输出(可以被抑制)
为什么这很重要
真正的一次性
一些任务应该只执行一次。能够加载、执行并消失的技能非常适合:
- 一次性初始化例程
- 临时监控
- 自毁负载
- 清理操作
零取证痕迹
对于注重安全的应用程序,留下痕迹是不可接受的。此模式确保技能完成任务后,毫无可供分析的残留。
动态 DLC 集成
结合动态 DLC 加载器(在运行时扫描文件夹中的技能文件),您可以创建系统,使技能被加载、执行并删除——且主文件中没有任何静态导入。
# Example dynamic loader
def call_add_DLC_skills(brain):
for file in os.listdir("DLC"):
if file.endswith(".py") and file.startswith("DLC_"):
# Dynamically import, execute add_DLC_skills(),
# then the skill can delete itself
pass
无安全警报
测试表明,消费级安全工具(例如 Windows Defender)不会标记此模式。为什么?因为它看起来像正常行为——程序自行清理临时文件。没有持久化、没有系统修改、没有网络连接。仅是礼貌的自我删除。
- 短暂代理 – 仅在完成任务所需的时间内存在的技能
- 安全一次性操作 – 必须不留下任何痕迹的任务
- 自清洁系统 – 通过删除过时技能来保持自身整洁的 AI
- 反取证设计 – 不希望留下审计轨迹的应用
- 临时负载 – 为特定事件部署的技能,随后消失
注意事项和考虑因素
- 文件权限 – 该技能必须拥有删除其自身源文件的权限。这通常可行,因为文件位于用户自己的项目目录中。
- 企业环境 – 某些企业安全工具会跟踪所有文件操作。在高度受监控的环境中,文件删除仍可能被记录。
- .pyc 清理 – 必须始终删除编译后的字节码缓存(
__pycache__)。否则,即使源代码已删除,取证分析仍可能发现编译后的版本。 - 操作顺序 – 注册表删除在文件删除之前进行。这是有意为之——技能对系统已经“死亡”,但仍在内存中存活以完成清理。
更大的图景
此模式揭示了关于 LivinGrimoire 架构的深刻之处:技能可以是短暂的。它们不必永久驻留在大脑中;它们可以是幽灵——出现、行动、随后无痕消失。
对于 AGI 系统,这开启了全新的可能性:
- 短暂人格,仅在单次对话中存在
- 自毁知识,使用后无法被提取
- 一次性工具,不留下任何残留
动手尝试
- 将代码保存为 DLC 文件(例如
DLC_ghost_demo.py)。 - 设置一个动态加载器,以扫描你的 DLC 目录。
- 运行你的 LivinGrimoire 大脑。
- 观察技能倒计时并消失。
- 检查你的 DLC 文件夹——文件已被删除。
接下来怎么办?
- Remote ghosting – 技能会自我删除,但会先向中心报告
- Delayed vanishing – 技能会持续存在,直至未来的触发条件出现
- Partial ghosts – 仅删除特定组件的技能
- Ghost swarms – 多个技能协同自我销毁
加入讨论
你在 LivinGrimoire 中构建过一次性代理吗?发现了自毁技能的创意用法吗?在下方留下评论,或在 LivinGrimoire 论坛 找到我。
代码写得好,勿留痕迹。
