项目:https://github.com/lo2589/AILatch.git
假设你正在用 Coding Agent 开发一个项目。
项目里有两样东西你不希望 AI 随便看到:
OPENAI_API_KEY=sk-xxxxxx
以及一段真正有价值的核心代码:
core_algorithm.py
但问题是,它们又必须被程序使用。
API Key 要在运行时传给服务,核心代码要被 Python import、调用和执行。
于是就会出现一个很现实的矛盾:
程序需要使用这些信息,但 AI 并不一定需要看到这些信息。
可今天的大多数开发环境里,这两件事往往没有被真正分开。
只要内容以明文存在于文件系统,Coding Agent 就可能通过文件遍历、搜索、repository indexing 或主动读取,把它们放进自己的 Context。
这在 AI 时代意味着:
程序可访问≠AI 应该可见
AILatch这个项目提供了一种新的思路:
敏感内容可以保持加密,但授权程序仍然可以使用和执行
代码加密了,Python 还能正常运行
例如:
ailatch lock core_algorithm.py
执行后,core_algorithm.py 在磁盘上已经变成密文。
这时候:
cat core_algorithm.py
grep "algorithm" .
看到的都只是密文。
Coding Agent 如果通过普通文件系统读取它,也只能拿到密文。
但代码仍然可以运行:
ailatch run main.py
AILatch 会在 Python 进程内部解密需要的代码,并直接执行。
整个过程不需要先把明文恢复到工作目录。
所以真正发生的变化是:
代码是否能够执行,不再等于代码是否必须以明文暴露在文件系统里。
加密模块也可以正常 import
假设程序是:
from secret_module import algorithm
result = algorithm(data)
如果 secret_module.py 已经被 AILatch 加密,它在磁盘上仍然保持密文。
但在命令行输入:
ailatch run main.py
启动的 runtime 时,AILatch 会处理 encrypted Python module 的加载。
程序仍然可以:
from secret_module import algorithm
正常 import、调用。
对于应用代码来说,不需要为了 AILatch 改写一套特殊接口。
这意味着核心模块可以保持:
磁盘上:加密
运行时:解密
不只是代码,数据文件也可以这样使用
AILatch runtime 同时处理:
open()
Path.read_text()
Path.read_bytes()
例如:
import json
with open("config.json") as f:
config = json.load(f)
即使 config.json 在磁盘上已经被锁定,程序运行时仍然可以读取里面的内容。
于是 API Key、配置文件、私有数据和核心代码实际上可以采用同一种模型:
AI / grep / indexer
↓
ciphertext
Authorized Runtime
↓
plaintext in memory
↓
use it
这就是 AILatch 最核心的设计:
Disk 是密文视图,Runtime 是明文视图。
开发者自己仍然可以编辑
如果代码加密以后只能运行、不能修改,也没什么实际意义。
所以 AILatch 还提供:
ailatch open <开发目录>
它会打开一个 plaintext viewport。
开发者可以查看和编辑被锁定的文件。
保存时,写回工作目录的仍然是加密内容。
也就是说,明文可以出现在开发者正在使用的受控视图里,但不需要重新长期落回 repository。
还可以直接:
ailatch show secret.py
临时查看一个文件。
从"文件权限"到"信息可见性"
我觉得 Coding Agent 出现以后,一个很重要的变化是:
过去我们通常默认:
文件存在
→ 开发工具可以读
→ 程序可以用
这三件事基本绑在一起。
但 Agent 会主动搜索、读取、索引整个代码库以后,这种默认关系开始出现问题。
程序需要使用某段代码,不代表 Agent 一定需要知道它的实现。
程序需要使用 API Key,不代表模型需要看到 API Key 本身。
所以可以重新拆成:
Information exists
↓
Who can see it?
Information is executable
↓
Who can use it?
这其实是两个不同的问题。
AILatch 做的事情,就是把它们拆开。
Information Available ≠ Information Visible
从这个角度看,AILatch 不只是一个"Python 文件加密工具"。
它在尝试建立一种新的信息边界:
信息可以存在于系统中,也可以被程序使用,但不需要默认 materialize 给 AI。
比如:
core_algorithm.py
API keys
private config
internal data
它们都可以存在。
程序也可以使用。
但 Coding Agent 没必要因为能够访问 repository,就自动获得这些信息。
所以AI Agent 时代真正需要控制的不只是:
谁能访问文件?
还包括:
什么信息应该对 AI 可见?
一句话概括:
Keep code encrypted on disk, decrypt it only in memory, and still run it normally.