docs: 仓库将公开,补 vendored Lua 的来源与许可声明 公开仓库里第三方代码入库需要明示上游地址、sha256、许可与”是否改过”, 否则 MIT 声明会被误读成覆盖 libs/ 全部内容。顺带给出 clone 地址。 Ref: M1-20
docs: 仓库将公开,补 vendored Lua 的来源与许可声明
公开仓库里第三方代码入库需要明示上游地址、sha256、许可与”是否改过”, 否则 MIT 声明会被误读成覆盖 libs/ 全部内容。顺带给出 clone 地址。
Ref: M1-20
一个用 C + Lua 写成的 AI Agent 框架:LLM 调用、工具调度、会话与上下文管理, 配一门自研跨平台 shell bes 作为驱动与编排界面。
bes
零解释器外部依赖:除 Lua 之外不引入 Python / Node / 任何脚本运行时。
项目管理三件套(本仓库的”实时状态”以这三份为准):
格式规则见 docs/CONVENTIONS.md(进度板标记法、MEM 编号规则、提交约定)。
设计与记录之间的分工:
docs/decisions/
系统的唯一系统级依赖是 xmake。此外:
libs/
clone 下来即可构建,无需联网拉包。
libs/lua/ 是入库的第三方源码,不属于本项目的 MIT 授权范围:
libs/lua/
https://www.lua.org/ftp/lua-5.4.8.tar.gz
4f18ddae154e793e46eeab727c59ef1c0c0c2b744e7b94219710d76f530629ae
libs/lua/src/
.c
.h
lua.hpp
Makefile
lua.c
luac.c
main()
除 Lua 之外当前仓库没有其他第三方代码。计划引入的组件(yyjson、sqlite3 amalgamation、zlib) 及其许可与体积核查见 design.md §5.3 与 ADR-0005; 引入时按 ADR 规则登记来源与哈希。
xmake.lua 唯一构建与测试入口(src/**/ 内不放分散构建文件) design.md todo.md mem.md README.md LICENSE docs/ CONVENTIONS / SHELL_SPEC / BASELINE / decisions(ADR 0001-0009) src/pal/ 平台抽象:进程、管道、PTY、路径、env、limits、http+TLS(唯一允许调平台 API 的层) src/core/ 纯 C 运行时:命令表、worker 池、json、log、error(不含 Lua、不含 shell 语义) src/lua/ C→Lua 绑定层,注册 beagent 模块 src/shell/ bes 装配与 REPL/CLI;bes/ 子目录放 lexer/parser/exec/builtin src/agent/ llm 适配、tool、memory 的 C 侧 libs/lua/ vendored Lua 5.4.8 源码,一行不改 scripts/ .bes 脚本与 .lua agent 定义 tests/ C 单测 + 自研 Lua harness + bes 回归
需要 xmake(本项目唯一构建与测试管理工具,见 ADR-0003)。
git clone https://gitlink.org.cn/ltree/beagent.git && cd beagent xmake f -p windows --toolchain=clang -y # -p 必须显式给,见 mem.md MEM-003 xmake # 构建 xmake test # 跑测试 build/windows/x64/release/bes.exe --version build/windows/x64/release/bes.exe run scripts/hello.bes
Linux 下为 xmake f -p linux && xmake,产物在 build/linux/x64/release/bes。 M3 的联网能力(LLM 调用)在 Linux 上需要发行版的 libssl-dev,当前阶段还不需要; 各平台实测版本基线见 docs/BASELINE.md。
xmake f -p linux && xmake
build/linux/x64/release/bes
libssl-dev
M0(脚手架与可编译骨架)已完成,M1 在做 PAL 地基与外部命令执行,详见 todo.md。 当前 bes 能跑:REPL、bes run <file>.bes、bes -c "..."、引号/变量展开、内嵌 Lua 求值。 bes 的 Lua 表达式需用单引号包住(docs/SHELL_SPEC.md §5),这是目前最容易踩的写法坑。 管道、重定向、&& 已排期(M2)。规范要求未实现的语法必须报错, 但当前分词器仍把 | 当普通参数传给命令,这一违规登记为 todo M1-19 (docs/SHELL_SPEC.md §1 分期纪律)。 License: MIT,见 LICENSE。
bes run <file>.bes
bes -c "..."
&&
|
C + Lua AI Agent 框架,配自研跨平台 shell bes
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802047560号
beagent
一个用 C + Lua 写成的 AI Agent 框架:LLM 调用、工具调度、会话与上下文管理, 配一门自研跨平台 shell
bes作为驱动与编排界面。零解释器外部依赖:除 Lua 之外不引入 Python / Node / 任何脚本运行时。
文档索引
项目管理三件套(本仓库的”实时状态”以这三份为准):
格式规则见 docs/CONVENTIONS.md(进度板标记法、MEM 编号规则、提交约定)。
设计与记录之间的分工:
docs/decisions/(ADR 0001–0009),由 design.md 以编号引用;依赖原则
系统的唯一系统级依赖是 xmake。此外:
libs/(Lua 5.4.8 源码一行不改),来源与 sha256 记在 ADR;clone 下来即可构建,无需联网拉包。
第三方代码来源与许可
libs/lua/是入库的第三方源码,不属于本项目的 MIT 授权范围:https://www.lua.org/ftp/lua-5.4.8.tar.gz4f18ddae154e793e46eeab727c59ef1c0c0c2b744e7b94219710d76f530629aelibs/lua/src/63 个文件入库(34.c+ 27.h+lua.hpp+ 上游Makefile),其中 32 个.c参与构建(lua.c/luac.c各带main(),排除在外)除 Lua 之外当前仓库没有其他第三方代码。计划引入的组件(yyjson、sqlite3 amalgamation、zlib) 及其许可与体积核查见 design.md §5.3 与 ADR-0005; 引入时按 ADR 规则登记来源与哈希。
目录结构
构建
需要 xmake(本项目唯一构建与测试管理工具,见 ADR-0003)。
Linux 下为
xmake f -p linux && xmake,产物在build/linux/x64/release/bes。 M3 的联网能力(LLM 调用)在 Linux 上需要发行版的libssl-dev,当前阶段还不需要; 各平台实测版本基线见 docs/BASELINE.md。状态
M0(脚手架与可编译骨架)已完成,M1 在做 PAL 地基与外部命令执行,详见 todo.md。 当前
bes能跑:REPL、bes run <file>.bes、bes -c "..."、引号/变量展开、内嵌 Lua 求值。bes的 Lua 表达式需用单引号包住(docs/SHELL_SPEC.md §5),这是目前最容易踩的写法坑。 管道、重定向、&&已排期(M2)。规范要求未实现的语法必须报错, 但当前分词器仍把|当普通参数传给命令,这一违规登记为 todo M1-19 (docs/SHELL_SPEC.md §1 分期纪律)。 License: MIT,见 LICENSE。