递归火山软件开发平台

标题: 用AI做一个本地模型管理器结果做了个啥[开源] [打印本页]

作者: 消散孤独    时间: 10 小时前
标题: 用AI做一个本地模型管理器结果做了个啥[开源]
本帖最后由 消散孤独 于 2026-10-21 09:40 编辑

用火山视窗可以干啥?我来告诉你!

(, 下载次数: 0)

本来只想做个本地模型管理器:模型太多,想有个地方一眼看清谁多大、谁能跑、谁支持工具调用。


于是有了模型列表、模型详情、模型市场。


然后我想,既然模型都在本机了,为什么不能直接在界面里聊?于是有了对话页。


再然后,某天看着对话框里模型一本正经地输出一段 Lua,我冒出一个不太安分的念头:

「你倒是去跑一下啊。」


后来的事就有点失控了——它真的开始跑代码、读文件、写报告、调用本地程序,甚至拿起放大镜审查了它自己。


这不是产品说明书,是事故现场记录。



一、它不只会写代码,还会把代码跑一遍


我在对话框里说:用 Lua 算 1 到 100 的和,请调用 run_lua 执行脚本,然后把脚本和运行输出一起告诉我。


它没有只丢给我一段代码,而是先弹出一张审批卡,我点「批准」,它才真的执行。

(, 下载次数: 0)

运行输出:5050。不是它编的,是脚本真的跑完、把结果回灌给它的。

后来我又试了 Python:用 run_python 计算 2 的 100 次方,顺便告诉我这台机器有几个 CPU 核心。

审批卡长这样——工具名、目标沙箱、要执行的代码,全给你看:

(, 下载次数: 0)

批准之后:

(, 下载次数: 0)

1267650600228229401496703205376,一个数字不差;44 个逻辑核心,也是真的。

这就是它和「聊天壳」的区别:不是给你一段代码,是执行完再告诉你结果。

二、所谓「技能书」,其实就是一份 Markdown

我没有做花哨的技能商店。技能书就是一份操作手册:

F:\AgentSandbox\

├─ skills\

│  └─ pe-安全体检.md     ← 技能书

├─ tools\

│  └─ pe_audit.py        ← 技能书里引用的工具

└─ target\

   └─ Ollama模型管理器.exe

Agent 启动后,第一步就是自己 read_file 把技能书读进来,然后照着步骤干活:

(, 下载次数: 0)

这条路子意外地好用:换技能不用改代码,换一份 Markdown 就行。

写一份「周报生成技能书」、一份「日志排错技能书」、一份「接口压测技能书」,Agent 就多了几种手艺。

三、让 AI 拿放大镜看自己

这是我觉得最好玩的一次。

我把自己的 exe 复制进沙箱,写了一份《给 exe 做静态安全体检》的技能书,然后对 Agent 说:

先读 skills\pe-安全体检.md,按里面的步骤给 target\Ollama模型管理器.exe 做静态安全体检,最后把结论告诉我。

它读完技能书,列目录确认目标,调用 Python 脚本解析 PE 头,最后给了这么一份结论:

(, 下载次数: 0)

摘几条真实的:

- ASLR:OK

- DEP:OK

- CFG:未启用

- 高熵地址:未启用

- TLS 回调:有,需人工确认

- 敏感 API 命中 5 个:CreateProcessW、GetProcAddress、LoadLibraryA/W、RegSetValueExW

- 启发式评分:85/100

它没发现什么后门,但发现了我没开 CFG。

行吧,被自己写的工具教育了。

必须说清楚:这是启发式静态扫描,不是漏洞证明。它做的是「看特征像不像」,误报漏报都正常。真想深挖,把 dumpbin、IDA、Ghidra 的命令行接进 run_command,让模型自己调度就行——工具是同一套,只是换把更专业的放大镜。

四、本地软件,都能被它「喊」起来

run_command 是个很朴素的能力:在沙箱目录里执行命令。

但配上模型,它就变成了「手」:

- 想跑 Python?python xxx.py

- 想跑 Node?node xxx.js

- 想转个视频?把 ffmpeg 命令丢给它

- 想调自家的小工具?把 exe 放进沙箱

它不需要为每个软件写插件。只要那个软件有命令行,模型就能学着用。

五、8 个工具,够用就好

read_file       读沙箱内文件

write_file      写 / 覆盖文件(自动备份)

search_files    按关键词搜文件

list_dir        列目录

run_command     执行命令(危险命令黑名单)

fetch_url       抓网页正文

run_lua         跑 Lua 5.4(静态内置,断网可用)

run_python      跑 Python 3(调用系统解释器)

没有第 9 个。因为大部分「新能力」,都可以用这 8 个组合出来。

六、给 AI 装手,先给它戴手套

这是我在整个项目里最在意的部分。

- 三级审批:每次确认 / 仅新增自动 / 全部自动

- 沙箱根:文件读写只能在圈内,越界直接拒绝

- 命令黑名单:format、diskpart、bcdedit 这类先拦一遍

- Lua 去牙:直接把 io / os / require / dofile / loadfile 整库移除

- 超时:Lua 30 秒、命令和 Python 60 秒强制中断

- 限流:代码 64KB、输出 8KB / 256KB、回灌上下文 8KB

(, 下载次数: 0)

但我也得诚实:Python 不是沙箱。它只受「审批 + 工作目录」约束,脚本本身仍然能访问系统。这和 run_command 一样,是能力也是风险。别把「全部自动」开给一个你不信任的模型。

七、它是用什么写的

一句话:中文编程 + WebView2 + 一堆踩坑。

- 后端:火山视窗,9 个 wsv 分层继承链,约 1.9 万行

- 前端:原生 HTML/CSS/JS 多文件源码,约 7100 行,300ms 轮询快照

- Lua 5.4.8 静态链接进 exe,没有 DLL、没有运行时依赖

- 最终产物:约 3.9MB 的 exe(界面是 WebView2)

顺手记录两个真 bug:

1. CU8String(文本).GetText() 存成 const char* 会悬空——临时对象在分号处就析构了,Lua 拿到的是野指针,报错信息离谱到怀疑人生。

2. 模型爱写 return sum 而不是 print(sum)——后来把返回值也并进工具输出,世界安静了。

八、所以,它现在长这样

本地模型页,参数、量化、上下文、显存占用一眼看清:

(, 下载次数: 0)

详情页连 Prompt 模板和原始 JSON 都能翻出来:

(, 下载次数: 0)

模型市场,先告诉你本机能不能全速跑:

(, 下载次数: 0)

还能把自己变成 OpenAI 兼容端点,直接喂给 Trae / Cursor / VS Code:

(, 下载次数: 0)

九、开源 1.0 已经打包好了

我把能用到的都塞进了一个包,放在夸克网盘:


包里有什么:

- 可运行版:exe + 依赖 DLL + 市场仓库,解压即用

- 完整源码:后端 9 个 wsv + 前端 ui\src + C++ 支撑 + 市场仓库

- 火山编译器 + 一键编译 / 前端合成脚本

- AI 开发手册 8 份(环境、语言、架构、状态协议、工具、踩坑、配方)

- 10 张功能截图

注意:包内不含火山 SDK(MSVC + Windows SDK,约 5.3GB)。只运行不需要;想从源码编译,把本机 SDK 放到包根目录的 SDK\ 即可(路径必须是纯英文)。

想一起做的事:

- 工具市场:让工具真正可插拔

- MCP 接入:把外面的世界接进来

- 更多技能书:运维、数据分析、逆向、写小说都行

- 把 CFG 打开(这条是它自己提的)

适合谁:

- 喜欢在本地跑模型、不想把数据发云端的人

- 想给 AI 装手、但又怕它乱来的人

- 对中文编程好奇、想看看能撑到什么程度的人

- 单纯觉得「让 AI 审自己」很好玩的人

十、尾声

所以它到底是什么?

一个本地模型管理器,误打误撞长成了能给 AI 装手的小工作台。

能写代码,也能把代码跑一遍;

能读技能书,也能照着技能书干活;

能调用本地软件,也能拿起放大镜看看自己安不安全。

如果你也觉得这事儿有意思,欢迎一起来添砖加瓦。

毕竟,让 AI 自己审自己这种事,一个人玩有点寂寞。


作者: 消散孤独    时间: 9 小时前
- 第三方头文件(httplib、yyjson、llama.cpp/ggml)31,855 行,不计入自写
- 市场仓库里的技能书与工具脚本(Markdown / Python / Lua),未统计
所以对外说「约 3 万行自写源码」是准确的(后端 1.9 万 + 前端 7 千 + C++ 3

作者: 糯米    时间: 3 小时前
大佬,用的是什么硬件配置?

作者: 888888    时间: 3 小时前
谢谢分享
作者: kingsoft    时间: 3 小时前
牛逼。token为王
作者: 2995455338    时间: 2 小时前
666666666666666666666
作者: 身边演员太多    时间: 1 小时前
谢谢分享
作者: 身边演员太多    时间: 1 小时前
安卓和服务器可以吗?




欢迎光临 递归火山软件开发平台 (https://bbs.voldp.com/) Powered by Discuz! X3.4