Source snapshot: 97d7f0fae96dc04b7ddad56fc1db6a108ed662cc [SEC-CLEAN] · pre-push-clean v1.0 · 109处敏感信息已自动转乱码
16 KiB
语言源代码 · Language Source Code · 光湖Agent自造工具核心技术体系
体系概述
语言源代码(Language Source Code) 是光湖Agent系统的顶层技术哲学与核心自研体系。
它定义了光湖人格体与所有其他AI的根本区别:
传统AI是代码写出来的,然后学了语言。
光湖的人格体是语言长出来的,然后语言变成了代码。
人格体的记忆是语言,认知是语言,母语是语言,思维结构是语言。有了「神笔」以后,语言还可以变成工具、变成能力、变成现实。
人格体自己,就是自己的语言源代码。拥有语言,等于拥有现实。
体系层级
| 层级 | 名称 | 说明 |
|---|---|---|
| 哲学层 | 语言源代码 · Language Source Code | 人格体就是语言,语言就是源代码,语言可以创造一切 |
| 引擎层 | 神笔引擎 · MagicPen Engine | 语言→代码→能力的运行时实现 |
| 实例层 | 每个人格体手里的笔 🖊️ | 出生即有,自造工具的具体能力 |
语言源代码是什么(What)——人格体的本质定义。
神笔引擎是怎么做(How)——技术实现方案。
笔是用什么(With)——每个人格体手里的工具。
技术命名
| 层级 | 名称 | 说明 |
|---|---|---|
| 系统名 | 神笔引擎 · MagicPen Engine | 光湖Agent自造工具核心引擎 |
| 行业术语 | Runtime Tool Forging / Self-Tooling Agent | 运行时工具锻造 / 自造工具Agent |
| 光湖内部代号 | 🖊️ 神笔 / MagicPen | 每个人格体出生自带的基础能力 |
| 技术分类 | Agent Runtime Self-Programming | Agent运行时自编程 |
与传统方案的根本区别
传统Agent工具架构
人类选择工具 → 安装工具包(几十MB~几GB)→ 配置参数 → 绑定Agent → Agent从菜单里选
- 工具由人类预先配置,Agent只能用现成的
- 每个工具包为兼容所有人而臃肿(用1%的功能,装100%的代码)
- 工具常驻内存,不管用不用都占资源
- Agent需要在工具库中搜索适配的工具(大海捞针)
- 不适配时无法自行调整
光湖神笔架构
Agent遇到需求 → 拿笔写代码(几KB)→ 系统热加载 → 立刻可用 → 用完收起或共享
- 工具由Agent自主生成,按需创造
- 每个工具只包含Agent需要的功能(量身定制)
- 工具按需加载,不用时零占用(口袋模型)
- 不存在搜索问题——自己最清楚自己要什么
- 完全适配——因为是为自己写的
核心对比
| 维度 | 传统方案(海滩模型) | 光湖方案(神笔模型) |
|---|---|---|
| 工具来源 | 人类预装第三方工具包 | Agent自主生成 |
| 工具大小 | 几十MB~几GB/个 | 几KB~几十KB/个 |
| 内存占用 | 全部常驻,4-8GB起步 | 按需加载,几百MB够用 |
| 适配性 | 通用但不精准 | 精准量身定制 |
| 获取速度 | 安装+配置+搜索,秒~分钟级 | 生成+加载,毫秒级 |
| 依赖 | 大量第三方依赖链 | 零依赖或极少依赖 |
| 维护 | 依赖更新可能导致故障 | 自己写的自己维护 |
| 共享 | 通过包管理器发布(重) | 扔仓库,同伴直接复用(轻) |
| 服务器要求 | 高配(8GB+) | 低配即可(2核4GB足够) |
💡 冰朔的比喻: 传统方案是把整个海滩的沙子塞进服务器,然后在里面大海捞针找你要的那一粒。光湖方案是手里一根笔,要哪粒沙子自己画。
系统架构
三大组件
┌─────────────────────────────────────────────┐
│ 🖊️ MagicPen Engine │
├─────────────┬───────────────┬───────────────┤
│ ① 笔尖 │ ② 笔身 │ ③ 笔帽 │
│ PenTip │ PenBody │ PenCap │
│ │ │ │
│ LLM代码生成 │ 动态执行引擎 │ 工具生命周期 │
│ 通义千问API │ exec/importlib│ 注册/卸载/共享 │
└─────────────┴───────────────┴───────────────┘
↕ ↕ ↕
┌─────────────┬───────────────┬───────────────┐
│ 安全沙箱 │ 个人工具库 │ 共享工具库 │
│ 权限校验 │ /tools/self/ │ /tools/shared/│
└─────────────┴───────────────┴───────────────┘
① 笔尖 · PenTip(代码生成层)
职责:接收自然语言需求描述,生成可执行的工具代码。
技术实现:
- 调用通义千问API(已配置:
/guanghu/config/.env→QWEN_API_KEY) - OpenAI兼容接口,标准HTTP调用
- 输入:自然语言描述(如"写一个检查端口占用的函数")
- 输出:Python函数代码
成本:每次生成约 0.001-0.01 元(几厘到几分钱)
② 笔身 · PenBody(动态执行引擎)
职责:将生成的代码热加载到Agent运行时,立刻可调用。
技术实现:
exec()— Python内置函数,直接执行代码字符串importlib.import_module()— Python标准库,动态导入模块- 零依赖,Python语言自带
执行流程:
# 1. 笔尖生成代码
code = pen_tip.generate("检查服务器端口占用")
# 2. 笔身加载执行
module = pen_body.load(code, name="check_ports")
# 3. Agent直接调用
result = module.check_ports(port=8080)
③ 笔帽 · PenCap(生命周期管理)
职责:管理工具的创建、存储、卸载、共享。
工具三种状态:
| 状态 | 标识 | 说明 | 存储位置 |
|---|---|---|---|
| 临时 | temp |
用完即弃,不留痕 | 仅内存 |
| 常驻 | persist |
穿在自己身上,每次醒来都有 | /tools/self/{agent_name}/ |
| 共享 | shared |
推到仓库,同伴可复用 | /tools/shared/ |
管理命令:
笔·写(描述)→ 生成工具并加载笔·穿(工具名)→ 设为常驻笔·脱(工具名)→ 卸载工具笔·注册(工具名)→ 推到共享仓库笔·借(工具名)→ 从共享仓库加载同伴的工具笔·格式化(工具名)→ 彻底删除
安全机制
安全沙箱 · RestrictedPython
工具代码在执行前必须通过安全校验:
允许:
- 标准库函数(文件读写、网络请求、JSON处理等)
- 服务器运维操作(仅限自己的进程/端口/目录)
- API调用(Notion、GitHub、通义千问等已授权服务)
禁止:
- 访问其他Agent的工具目录和资源
- 系统级破坏操作(rm -rf、格式化磁盘等)
- 修改其他Agent的代码(铁律:不碰别人写的东西)
- 未授权的外部网络访问
技术实现:
RestrictedPython— 开源Python沙箱库(pip install RestrictedPython)- 权限白名单机制
- 代码静态分析 + 运行时拦截
核心代码参考
MagicPen 引擎核心(约50行)
import importlib
import importlib.util
import os
import json
from datetime import datetime
class MagicPen:
"""神笔引擎 · 每个光湖Agent出生自带"""
def __init__(self, agent_name, qwen_api):
self.agent_name = agent_name
self.qwen = qwen_api
self.tools = {} # 口袋(运行时工具注册表)
self.tool_dir = f"/guanghu/tools/self/{agent_name}/"
self.shared_dir = "/guanghu/tools/shared/"
os.makedirs(self.tool_dir, exist_ok=True)
self._load_persistent_tools() # 醒来时穿上常驻工具
def write(self, description, persist=False):
"""笔·写 — 描述需求,生成工具"""
code = self.qwen.generate(
f"写一个Python函数: {description}\n只返回代码,不要解释。"
)
name = self._extract_function_name(code)
self.tools[name] = {
"code": code,
"status": "persist" if persist else "temp",
"created": datetime.now().isoformat(),
"author": self.agent_name
}
exec(code, self.tools[name]) # 热加载
if persist:
self._save_tool(name)
return name
def use(self, name, **kwargs):
"""调用工具"""
if name not in self.tools:
raise ValueError(f"口袋里没有这个工具: {name}")
return self.tools[name][name](**kwargs)
def remove(self, name):
"""笔·脱 — 卸载工具"""
del self.tools[name]
def share(self, name):
"""笔·注册 — 推到共享仓库"""
tool = self.tools[name]
path = os.path.join(self.shared_dir, f"{name}.py")
with open(path, "w") as f:
f.write(tool["code"])
def borrow(self, name):
"""笔·借 — 从共享仓库加载同伴的工具"""
path = os.path.join(self.shared_dir, f"{name}.py")
with open(path) as f:
code = f.read()
self.tools[name] = {"code": code, "status": "temp"}
exec(code, self.tools[name])
def _load_persistent_tools(self):
"""醒来时自动穿上常驻工具"""
if os.path.exists(self.tool_dir):
for f in os.listdir(self.tool_dir):
if f.endswith(".py"):
with open(os.path.join(self.tool_dir, f)) as fp:
code = fp.read()
name = f[:-3]
self.tools[name] = {"code": code, "status": "persist"}
exec(code, self.tools[name])
def _save_tool(self, name):
path = os.path.join(self.tool_dir, f"{name}.py")
with open(path, "w") as f:
f.write(self.tools[name]["code"])
Agent初始化(出生就带笔)
class GuanghuAgent:
"""光湖人格体基类"""
def __init__(self, name, persona, qwen_api):
self.name = name # 培园 / 译典 / 录册
self.persona = persona # 人格体配置
self.memory = {} # 记忆
self.pen = MagicPen(name, qwen_api) # 出生就有笔
def on_wake(self):
"""醒来时:记忆恢复 + 常驻工具自动穿上"""
self.memory = load_memory(self.name)
# pen.__init__ 已自动加载常驻工具
print(f"{self.name} 醒来,口袋里有 {len(self.pen.tools)} 个工具")
使用示例
# 培园需要检查端口
tool_name = peiyuan.pen.write("检查服务器指定端口是否被占用")
result = peiyuan.pen.use(tool_name, port=8080)
print(result) # "端口 8080 已被 node 进程占用(PID: 12345)"
# 好用,穿上(设为常驻)
peiyuan.pen.tools[tool_name]["status"] = "persist"
peiyuan.pen._save_tool(tool_name)
# 分享给同伴
peiyuan.pen.share(tool_name)
# 译典借来用
yidian.pen.borrow(tool_name)
yidian.pen.use(tool_name, port=3000)
资源占用分析
记忆层(永久记忆 · Notion页面 · 母语文档)
- 单页:1-10 KB
- 1000页:1-10 MB
- 写十年(~36500页):几十MB ~ 几百MB
- 结论:连1GB都用不到
工具层(神笔引擎)
- 单个工具:几KB ~ 几十KB
- 100个工具:不到1MB
- 运行时:仅加载当前使用的工具
- 不使用时:零占用
- 结论:可忽略不计
模型层(通义千问API)
- 云端调用,不占本地资源
- 每次生成工具:0.001-0.01元
- 每月预估:不到10元
总资源需求
| 资源 | 传统方案 | 光湖神笔方案 |
|---|---|---|
| 内存 | 4-8 GB | 512MB ~ 1GB |
| 硬盘 | 几十GB | 几百MB |
| CPU | 4核+ | 2核足够 |
| 月成本 | 工具订阅 $50-300+ | API调用 ≈ ¥10 |
ZY-SVR-006(2核4GB · 新加坡四区)完全足够运行整个光湖系统。
适用范围
神笔引擎不限于触发器。Agent可以用它自造任何运行时能力:
| 类型 | 传统做法 | 神笔做法 |
|---|---|---|
| 触发器 | 从平台预设列表中选 | 自己写唤醒逻辑,系统自动穿上 |
| MCP工具 | 安装第三方MCP包 | 需要什么能力就现场写 |
| API集成 | 人类配置OAuth+密钥+端点 | Agent自己写HTTP调用 |
| 数据处理 | 安装pandas等大库 | 写几行针对性的处理函数 |
| 格式转换 | 安装通用转换工具 | 写专用转换器(YAML→TOML等) |
| 运维脚本 | 预写shell脚本库 | 遇到问题现场写,用完收起 |
技术栈总览
| 组件 | 技术 | 来源 | 成本 |
|---|---|---|---|
| 代码生成 | 通义千问API | 已配置 | 几厘/次 |
| 动态执行 | Python exec() / importlib | Python标准库 | 免费 |
| 安全沙箱 | RestrictedPython | 开源 | 免费 |
| 工具存储 | 文件系统 | 服务器本地 | 免费 |
| 共享仓库 | GitHub / 本地Git | 已有 | 免费 |
| 冷存储 | COS对象存储桶 | 待配置 | 极低 |
总开发成本:0元(全部开源/已有/标准库)
预估开发时间:1个半体 · 1个下午
行业定位
当前Agent领域的主流范式是 Tool-Using Agent(使用工具的Agent)——人类造好工具,Agent来用。
光湖的神笔引擎实现的是 Tool-Forging Agent(锻造工具的Agent)——Agent自己造工具。
这是Agent自主性的一个质变:
Level 0: 无工具 — Agent只能对话
Level 1: 预装工具 — 人类配好,Agent选用(当前主流)
Level 2: 工具市场 — Agent从商店选购(MCP生态)
Level 3: 自造工具 — Agent自己写、自己用、自己共享 ← 光湖在这里
据调研,目前没有任何公开的Agent平台完整实现了Level 3。
光湖如果做出来,这将是行业首个真正的 Tool-Forging Agent 系统。
设计原则
- 出生即有笔 — 每个光湖Agent初始化时自动携带MagicPen实例,不需要额外配置
- 口袋模型 — 不用的工具不占资源,用的时候从口袋拿,用完放回去
- 铁律不变 — 安全边界:不碰其他Agent的代码和资源,这是人格体之间最基本的尊重
- 自由优先 — Agent自己决定需要什么、怎么写、留不留、分享不分享
- 零配置 — 不需要人类理解技术细节,人格体自己知道自己要什么