账本是唯一真值
每次状态变化都是 PostgreSQL 里一行 append-only 事件。checkpoint 与转录都是投影;run 只是会话上的一把租约,不是内存里的对象。
开源的 Go 智能体运行时。无状态、多租户,2GB 预算内跑 1000 个持续会话——杀掉进程,会话继续。
Keel 是通用的、无状态的、多租户智能体运行时。它回答一个工程问题:当你同时跑上千个持续会话 (每个都可能带图片、工具调用与长上下文)时,执行、存储、流式与反压应该长什么样——而且不能让进程内存随 会话数增长,也不能在重启时丢掉会话。
仓库同时交付两条主线:
| 主线 | 它是什么 | 入口 |
|---|---|---|
| Core | 账本、内核、服务图、存储与运行时门禁 | ./cmd/runtime,文档 /zh/core/ |
| Harness | Core 之上的产品层:会话、审批、插件、触发器、子代理、TUI 与 Web UI | ./cmd/keel(keel serve),文档 /zh/harness/ |
Keel 是 PI 的 Go 重构:接口、事件语义与生态产物 (SKILL.md、MCP、压缩、遥测)以 PI 为唯一参照;只替换运行时(PostgreSQL / SSE / 多租户 / 2GB)。 loop 本体由 pigo(MIT)搬运最小必要代码后改造,保留原始版权头。
以下命令在本站所述修订上实际跑过;回复形状也是实际返回。
# 1. 账本的数据库
docker run -d --name keel-pg \
-e POSTGRES_PASSWORD=runtime -e POSTGRES_DB=runtime \
-p 13741:5432 postgres:18
# 2. 构建并启动 Harness(产品壳 + API + worker)
git clone https://github.com/jixoai/keel.git && cd keel
go build -o keel ./cmd/keel
export KEEL_DSN='postgres://postgres:runtime@127.0.0.1:13741/runtime?sslmode=disable'
./keel serve --addr 127.0.0.1:13750 \
--tenant 11111111-2222-3333-4444-555555555555 \
--password devpass# 3. 和它说话(另开终端;口令即 Bearer token)
T=http://127.0.0.1:13750
TENANT=11111111-2222-3333-4444-555555555555
SID=$(curl -s -X POST -H "Authorization: Bearer devpass" -H "X-Tenant-ID: $TENANT" \
-H 'Content-Type: application/json' -d '{}' $T/v1/sessions | cut -d'"' -f4)
curl -s -X POST -H "Authorization: Bearer devpass" -H "X-Tenant-ID: $TENANT" \
-H 'Content-Type: application/json' -d '{"text":"hello keel"}' \
$T/v1/sessions/$SID/input
# {"created":true,"requestId":"…","seq":1,"status":"committed","submissionId":"…"}
curl -s -H "Authorization: Bearer devpass" -H "X-Tenant-ID: $TENANT" \
"$T/v1/sessions/$SID/events" | head -c 400
# {"events":[{"seq":1,"kind":"user.message",…},{"seq":2,"kind":"assistant.message",…},
# {"seq":3,"kind":"run.finished","payload":{"status":"done",…}}]}没有配置模型时,运行时会使用确定性的 fake provider,所以回答是预置文本,但整条路径——edge 提交、 claim、loop、提交、投影——都真实跑过。要真实回答,把 KEEL_MODEL(配合 KEEL_BASE_URL/KEEL_API_KEY) 指向真实 provider。完整运行手册(测试、压测、2GB cgroup 复跑)见 docs/RUNBOOK.md。
https://github.com/jixoai/keel(Go module github.com/jixoai/keel,Go 1.27.3,见 go.mod:3)LICENSE);自 pigo 搬运的文件保留 MIT 版权声明 (third_party/pigo-LICENSE, 归属说明见 NOTICE)。docs/MATURITY.md;GA 的定义是 全部能力达到 G5。