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:
@@ -1,5 +1,35 @@
|
|||||||
# Agent-System-Releases
|
# 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 快照与发布说明)。
|
||||||
|
|||||||
@@ -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
|
||||||
Executable
+58
@@ -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
|
||||||
Executable
+59
@@ -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"
|
||||||
@@ -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 交叉验证为远期)。
|
||||||
@@ -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
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user