From 7c3d21ccabdda216555ec91cbee8968822d64afa Mon Sep 17 00:00:00 2001 From: "peng.li24" <734991033@qq.com> Date: Wed, 2 Sep 2026 14:07:58 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20llm/prompt=20=E8=AF=BB=20/lib/kvlan?= =?UTF-8?q?g/kvlangbrief=20+=20substrate.md=20=E5=90=8C=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Closes #62 Co-Authored-By: Claude --- doc/substrate.md | 17 +++++++++-------- lib/byteseek/llm.kv | 2 +- lib/byteseek/prompt.kv | 2 +- 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/doc/substrate.md b/doc/substrate.md index 02072a2..3d2b3ca 100644 --- a/doc/substrate.md +++ b/doc/substrate.md @@ -17,7 +17,6 @@ KV 树**(kvspace,后端 redis/fs/shm/s3)里。LLM、shell、python、json lib/byteseek/main.kv main / mainbrain(REPL 循环)/ run(动态执行生成程序) lib/byteseek/llm.kv llm·call(userinput) -> entry:代码脑,LLM 生成 kv 程序并入库 lib/byteseek/prompt.kv 系统提示(lib prompt 顶层写 → byteseek/prompt·init,layout 期种入) -lib/byteseek/kvlangbrief.kv kvlang 语法速览(顶层写 → byteseek·init,layout 期种入) lib/byteseek/shell.kv shell·run(cmd) -> out:bash 子进程,捕获 stdout lib/byteseek/python.kv python·run(code) -> out:python3 子进程,捕获 stdout lib/local/config.kv LLM 配置(lib local 顶层写 → local·init,layout 期种入;gitignored) @@ -33,11 +32,13 @@ kvlang byteseek·main # 运行:驱动已入库的 funckey(进入 REP ``` `KVLANG_LIB=lib kvlang`(无 entry)复用标准 kvlang 的「layout 全部 lib + 跑各 init」机制: -`config.kv`/`kvlangbrief.kv`/`prompt.kv` 的顶层写语句被 parser 合成为 `local·init` / -`byteseek·init` / `byteseek/prompt·init`,在 layout 期执行一次,把配置、语法速览、系统提示 -种进 kvspace(跑完即删 init 子树)。rwfunc(`main`/`mainbrain`/`run`/`llm·call`/`shell·run`/ -`python·run`)留在 `/lib` 下持久。之后 `kvlang byteseek·main` 直接驱动 funckey,不再 layout、 -不再重跑 init。`byteseek·main` 是 funckey 路径(去 `/lib` 前缀),不是文件路径。 +`config.kv`/`prompt.kv` 的顶层写语句被 parser 合成为 `local·init` / `byteseek/prompt·init`, +在 layout 期执行一次,把配置、系统提示种进 kvspace(跑完即删 init 子树)。kvlang 语法速览 +(`kvlangbrief`)由 **kvlang 自己的 stdlib**(`kvlang/stdlib/kvlangbrief.kv`,lib kvlang)在 +runtime-rs 启动时种入 `/lib/kvlang/kvlangbrief`,不属 byteseek lib。rwfunc(`main`/`mainbrain`/ +`run`/`llm·call`/`shell·run`/`python·run`)留在 `/lib` 下持久。之后 `kvlang byteseek·main` +直接驱动 funckey,不再 layout、不再重跑 init。`byteseek·main` 是 funckey 路径(去 `/lib` +前缀),不是文件路径。 ## 状态树布局 @@ -46,7 +47,7 @@ kvlang byteseek·main # 运行:驱动已入库的 funckey(进入 REP /byteseek/llm.key LLM 鉴权 key(config.kv 种入,可空) /byteseek/llm.print 是否打印 LLM 交互(config.kv 种入) /byteseek/prompt/system 系统提示(prompt.kv 种入) -/lib/byteseek.kvlangbrief kvlang 语法速览(kvlangbrief.kv 种入;llm·call 拼进 system prompt) +/lib/kvlang/kvlangbrief kvlang 语法速览(kvlangbrief.kv 种入;llm·call 拼进 system prompt) /lib/byteseek/session/ llm·call 生成并入库的一次性程序(可寻址/持久) /vthread/{vid}/‥pc 执行到哪一步(KV 路径字符串,崩溃可恢复) /lib/·/... 编译后函数(签名 + 指令 + 源码 .src) @@ -55,7 +56,7 @@ kvlang byteseek·main # 运行:驱动已入库的 funckey(进入 REP ## 提示词与 LLM 参数也是 KV 数据 系统提示不硬编码,而是 `prompt.kv` 的 `lib prompt` 顶层写把提示词落进 `/byteseek/prompt/system`; -语法速览由 `kvlangbrief.kv` 落进 `/lib/byteseek.kvlangbrief`。`llm·call` 每轮把两者拼成 +语法速览由 `kvlangbrief.kv` 落进 `/lib/kvlang/kvlangbrief`。`llm·call` 每轮把两者拼成 system prompt。接口地址与 key 由 `config.kv` 种入。换模型/网关/提示词只需改树,无需重编译—— 本就无可编译之物。 diff --git a/lib/byteseek/llm.kv b/lib/byteseek/llm.kv index 8ea8368..1ce4634 100644 --- a/lib/byteseek/llm.kv +++ b/lib/byteseek/llm.kv @@ -13,7 +13,7 @@ lib llm { kv·get("/byteseek/llm.print") -> print if (print != "0") { println("[llm] 需求:", userinput) } kv·get("/byteseek/prompt/system") -> sys - kv·get("/lib/byteseek.kvlangbrief") -> brief + kv·get("/lib/kvlang/kvlangbrief") -> brief sys + "\n\n=== kvlang 语法速览 ===\n" + brief -> sys "请把下面的需求翻译成一段 kvlang 程序。严格按系统提示的格式输出,只输出 / 两段,不要解释:\n\n" + userinput -> user sys -> /tmp/esc·sys diff --git a/lib/byteseek/prompt.kv b/lib/byteseek/prompt.kv index 6f636ec..8d17fd0 100644 --- a/lib/byteseek/prompt.kv +++ b/lib/byteseek/prompt.kv @@ -1,6 +1,6 @@ # byteseek 代码脑的系统提示 —— 也是 KV 数据(活在 /byteseek/prompt/system,可寻址/持久/自改)。 # 嵌套 lib prompt 的顶层写语句 → byteseek/prompt·init,KVLANG_LIB 引导时(layout 期)执行一次种入。 -# llm·call 把这段与 /lib/byteseek.kvlangbrief(语法速览)拼成 system prompt。 +# llm·call 把这段与 /lib/kvlang/kvlangbrief(语法速览)拼成 system prompt。 lib byteseek { lib prompt {