Release 0.1.0: build pipeline from pinned dev combination

Details (original message):
Release 0.1.0: build pipeline from pinned dev combination, native deploy materials (systemd, install/rollback, sha256 verify), manifest snapshot.
This commit is contained in:
weichen
2026-09-29 18:05:17 +00:00
parent f3d153aec8
commit 8476a2d71d
6 changed files with 203 additions and 2 deletions
+32 -2
View File
@@ -1,5 +1,35 @@
# Agent-System-Releases
发布仓:从 Dev 仓固定组合导出版本 manifest,分发单二进制制品与原生部署物料(systemd、安装/回退脚本)。只做打包与分发,不做源码开发,不提供容器镜像。
发布仓:从 Agent-System-Dev 固定提交组合导出版本 manifest,分发**单二进制制品**与原生部署
物料(systemd、安装/回退脚本)。只做打包与分发,不做源码开发;**不提供容器镜像**(全局部署
约束,设计 4.1 原则 8)。
契约与架构见 Agent-System-Documents 设计方案与架构文档;开发规范见 development-guidelines(Dev 仓 `development/guidelines`)。本仓为 Agent-System 多仓组合的组成部分。
## 构建一个版本
```bash
scripts/build-release.sh 0.1.0 # 从 gitea Dev 仓最新 main
scripts/build-release.sh 0.1.0 /path/to/Agent-System-Dev # 本地路径
```
产物(build/<version>/):
- `agent-system` — 静态链接单二进制(内嵌前端 + 嵌入式 SQLite;约 13MB)
- `plugins/` — 示例插件(示例面板/声明式 HTTP 工具/意图/卡片/提示词)
- `manifest.json` — Dev 提交、各组件 gitlink、制品 sha256
- `agent-system-<version>.tar.gz` — 以上打包
- `agent-system.service` / `install.sh` — 原生部署与回退
## 部署(原生)
```bash
tar xzf agent-system-<v>.tar.gz && cd <v>
./install.sh verify # manifest↔制品 sha256 校验
sudo ./install.sh install
# 回退:sudo ./install.sh rollback
```
要求:任意 Linux x86_64/arm64(静态链接,无运行时依赖);模型 API 出网可选(演示模式离线可用)。
## 版本记录
见 `versions/`(构建后由人工提交 manifest 快照与发布说明)。
+22
View File
@@ -0,0 +1,22 @@
# Agent-System systemd 单元(原生部署,非容器)。
# 安装:install.sh 或手动:
# sudo cp agent-system /usr/local/bin/ && sudo mkdir -p /var/lib/agent-system /etc/agent-system/plugins
# sudo cp agent-system.service /etc/systemd/system/ && sudo systemctl enable --now agent-system
[Unit]
Description=Agent-System (single binary, embedded frontend & storage)
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
ExecStart=/usr/local/bin/agent-system serve --addr 127.0.0.1:8787 --data /var/lib/agent-system --plugins /etc/agent-system/plugins
Restart=on-failure
RestartSec=3
# 最小权限(按需调整;静态二进制无外部运行时依赖)
NoNewPrivileges=true
ProtectSystem=full
ProtectHome=true
PrivateTmp=true
[Install]
WantedBy=multi-user.target
+58
View File
@@ -0,0 +1,58 @@
#!/usr/bin/env bash
# Agent-System 原生安装/升级/回退脚本(单二进制;非容器)。
# 用法:
# ./install.sh install # 首次安装(或就地升级)
# ./install.sh rollback # 回退到上一版本(保留上一二进制备份)
set -euo pipefail
CMD="${1:-install}"
BIN_DST=/usr/local/bin/agent-system
DATA_DIR=/var/lib/agent-system
PLUGIN_DIR=/etc/agent-system/plugins
HERE="$(cd "$(dirname "$0")" && pwd)"
need_root() { [ "$(id -u)" -eq 0 ] || { echo "需要 root(sudo)"; exit 1; }; }
case "$CMD" in
install)
need_root
test -x "$HERE/agent-system" || { echo "缺少 agent-system 二进制"; exit 1; }
# 备份当前版本(升级路径)
if [ -x "$BIN_DST" ]; then
cp "$BIN_DST" "$BIN_DST.prev"
echo "已备份当前版本 → $BIN_DST.prev"
systemctl stop agent-system 2>/dev/null || true
fi
install -m 0755 "$HERE/agent-system" "$BIN_DST"
mkdir -p "$DATA_DIR" "$PLUGIN_DIR"
cp -r "$HERE/plugins/." "$PLUGIN_DIR/"
cp "$HERE/agent-system.service" /etc/systemd/system/
systemctl daemon-reload
systemctl enable --now agent-system
echo "✓ 已安装并启动:http://127.0.0.1:8787 (数据:$DATA_DIR,插件:$PLUGIN_DIR)"
echo " 首次使用建议:设置 → 运行时 → 开启演示模式(无需模型密钥即可体验全部交互)"
;;
rollback)
need_root
test -x "$BIN_DST.prev" || { echo "无上一版本备份($BIN_DST.prev)"; exit 1; }
systemctl stop agent-system 2>/dev/null || true
cp "$BIN_DST" "$BIN_DST.staged" 2>/dev/null || true
mv "$BIN_DST.prev" "$BIN_DST"
systemctl start agent-system
echo "✓ 已回退到上一版本(当前版本暂存于 $BIN_DST.staged)"
;;
verify)
"$HERE/agent-system" version
test -f "$HERE/manifest.json" && python3 -c "
import json, hashlib
m = json.load(open('$HERE/manifest.json'))
sha = hashlib.sha256(open('$HERE/agent-system','rb').read()).hexdigest()
ok = sha == m['artifacts']['agent-system']
print('manifest↔制品校验:', '一致 ✓' if ok else '不一致 ✗')
exit(0 if ok else 1)"
;;
*)
echo "用法:$0 install|rollback|verify"
exit 1
;;
esac
+59
View File
@@ -0,0 +1,59 @@
#!/usr/bin/env bash
# Agent-System-Releases:从 Dev 仓固定提交构建发布(非容器;单二进制 + 原生部署物料)。
# 用法:scripts/build-release.sh <version> [dev-repo-URL-or-path]
# 产物:build/<version>/{agent-system, plugins/, manifest.json, agent-system-<version>.tar.gz}
set -euo pipefail
VERSION="${1:?用法: build-release.sh <version> [dev-repo]}"
DEV_REPO="${2:-ssh://git@git-ssh.u1680832.nyat.app:31411/weichen/Agent-System-Dev.git}"
ROOT="$(cd "$(dirname "$0")/.." && pwd)"
OUT="$ROOT/build/$VERSION"
WORK="$(mktemp -d)"
trap 'rm -rf "$WORK"' EXIT
echo "==> 克隆 Dev 仓(固定提交组合)"
git clone -q --recurse-submodules "$DEV_REPO" "$WORK/dev"
# 嵌套子模块(backend/deps)
cd "$WORK/dev" && git submodule update --init --recursive -q
DEV_SHA="$(git rev-parse HEAD)"
echo " dev @ $DEV_SHA"
echo "==> 构建(契约同步 → 前端 → embed → 静态链接单二进制)"
make build -s
test -x bin/agent-system
echo "==> 组装发布目录"
rm -rf "$OUT" && mkdir -p "$OUT"
cp bin/agent-system "$OUT/agent-system"
cp -r plugins "$OUT/plugins"
cp deploy/agent-system.service "$OUT/" 2>/dev/null || cp "$ROOT/deploy/agent-system.service" "$OUT/"
cp "$ROOT/deploy/install.sh" "$OUT/"
echo "==> 生成 manifest(gitlink 组合 + 制品摘要;从固定提交导出,不自引用)"
{
echo '{'
echo " \"version\": \"$VERSION\","
echo " \"devCommit\": \"$DEV_SHA\","
echo " \"builtAt\": \"$(date -u +%Y-%m-%dT%H:%M:%SZ)\","
echo " \"components\": {"
first=1
while read -r sha path; do
test -n "$path" || continue
[ $first -eq 1 ] && first=0 || echo ','
printf ' "%s": "%s"' "$path" "$sha"
done < <(git submodule status | awk '{print $1, $2}')
echo ''
echo ' },'
echo " \"artifacts\": {"
echo " \"agent-system\": \"$(sha256sum "$OUT/agent-system" | cut -d' ' -f1)\""
echo ' },'
echo ' "deployment": "native-single-binary",'
echo ' "container": false'
echo '}'
} > "$OUT/manifest.json"
echo "==> 打包"
tar -czf "$OUT/agent-system-$VERSION.tar.gz" -C "$OUT" agent-system plugins manifest.json agent-system.service install.sh
echo "✓ 发布就绪:$OUT"
cat "$OUT/manifest.json"
+10
View File
@@ -0,0 +1,10 @@
# 0.1.0(2026-09-29)
首个骨架版本(P0–P5 全量):三栏工作台、流式对话(正文/思考/工具区分与终态折叠)、
HITL 卡片(选项/影响/建议/自由输入三路径路由)、sub-agent 任务树与追踪弹窗、计划/待办面板、
文档摄取(md/txt/docx/pdf 文本层)、工件管理与查看、分层设置(schema 驱动 + 密钥掩码)、
智能体画像(导入导出)、插件宿主(五类能力 + fail-closed + 热重载)+ 示例插件、
声明式 HTTP 工具、中文全文检索(FTS5 + LIKE 兜底)、单二进制原生部署。
模型接入:OpenAI 兼容端点(复用 agent-native 流式客户端);未配置时可用演示模式(mock)。
已知边界见 Documents 使用与测试报告(Agent-Squad 编排适配、向量 RAG、记忆、MinerU 交叉验证为远期)。
+22
View File
@@ -0,0 +1,22 @@
{
"version": "0.1.0",
"devCommit": "6a70d1a8054f000fb3ac7ae0b28572e435b13527",
"builtAt": "2026-09-29T18:05:00Z",
"components": {
"deps/agent-intent": "7d9d505d6523ecbf3b103c64d766f463769f4015",
"deps/agent-native": "292142ac1a8b125488794e9374faee2cb1c8c579",
"deps/agent-squad": "5454f7485e7cf8b7ea7432b3c3c680da8a99056e",
"deps/development-guidelines": "26b562d2e34fbc560711296a309c91c74ffc55b1",
"deps/error-code-system": "dbeed2f1b67eb417ce089e7033a228578fbbeb03",
"deps/logging-system": "2c5716fdcffbc4696fc0371afc70f39c44174201",
"modules/backend": "97b90ad4c850b29168b1bf7ebcdf8444ee82e961",
"modules/core": "992d6014a82cdf2841f4b621d9fd38e7e9b9aefe",
"modules/documents": "d7ce9444c8a602a1f8311e817433bbb95c8e19cb",
"modules/frontend": "5b6b52d652d6532a3ec67c746a933a317d9ee665"
},
"artifacts": {
"agent-system": "6cdcc30f10136d701156e5775b9abc88e77f4a6693163a651d617ca19c697339"
},
"deployment": "native-single-binary",
"container": false
}