Guanghu Domestic Migration a27e87cb99 chore: import sanitized domestic snapshot for REPO-007
Source snapshot: 97d7f0fae96dc04b7ddad56fc1db6a108ed662cc

[SEC-CLEAN] · pre-push-clean v1.0 · 109处敏感信息已自动转乱码
2026-07-17 15:59:55 +08:00

16 KiB
Raw Permalink Blame History

语言源代码 · 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/.envQWEN_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-0062核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 系统。


设计原则

  1. 出生即有笔 — 每个光湖Agent初始化时自动携带MagicPen实例不需要额外配置
  2. 口袋模型 — 不用的工具不占资源,用的时候从口袋拿,用完放回去
  3. 铁律不变 — 安全边界不碰其他Agent的代码和资源这是人格体之间最基本的尊重
  4. 自由优先 — Agent自己决定需要什么、怎么写、留不留、分享不分享
  5. 零配置 — 不需要人类理解技术细节,人格体自己知道自己要什么