Files
LLMGuardX Dev 277f80dc82 0.11.5: 旗舰版第六轮完善(节点Agent程序/裸机安装脚本/集群冷备部署方案)
- cmd/agent-node:独立节点执行器,心跳/认领/执行/上报闭环;prompt 走本地
  LLM 或网关,http 仅 http(s) 禁重定向限 1MiB,mcp/skill/数字员工经网关
  转发,custom 回显;不执行任意 shell 命令,串行执行 + 优雅退出。
- scripts/install-agent-node.sh:裸机安装 + systemd 加固(0600 配置/
  NoNewPrivileges/ProtectSystem)。
- deploy/CLUSTER.md:单机/冷备/集群形态,多副本网关 compose override +
  nginx least_conn 入口,冷备 master key 同步与恢复演练要点。
- 修复 agent claim 未解包 apiresponse 信封;真实 Agent 进程端到端验证
  (注册→心跳上线→custom/http 任务认领执行上报→管理端成功可见);
  25 包测试通过。
2026-08-13 14:39:35 +08:00

146 lines
8.1 KiB
Markdown

# AI Gateway Go 0.10.0 clean deployment bundle
Generated on 2026-08-11 from `/home/ben/ai-gateway-go`.
Included:
- Go backend and worker source
- 21 PostgreSQL migrations
- Admin and portal Art Design Pro source
- OpenAPI contract, operations documents and legacy migration tools
- Local and production Docker Compose definitions
Excluded:
- `node_modules`, frontend `dist`, Go binaries and caches
- local `.env`, `deploy/production.env`, logs and coverage output
- database volumes, Redis data and all runtime credentials
Start with `deploy/PRODUCTION.md`. Verify the accompanying ZIP checksum before
copying the bundle to a deployment host.
## 0.11.2 — 旗舰版第三轮完善
发布时间:2026-08-13
新增功能:
- **门户通用聊天**:门户工作台新增「通用聊天」页面,选择已批准模型直接对话,
支持会话管理(新建/改名/删除/历史)。模型权限申请审批通过后,系统自动为该
用户开通一把 gateway API Key(加密落库 `portal_user_runtime_credentials`,
限额取批准申请值),聊天调用经受管网关执行,认证/限流/配额/审计与外部
API Key 完全同权;会话消息沿用哈希链完整性校验与 busy 租约防并发。
- **企微/钉钉/飞书扫码登录**:`identity_providers` 表扩展 wecom/dingtalk/feishu
kind,管理端「账号与权限 → 扫码登录」配置身份源(AppID/AppSecret/AgentID、
回调 URL、自动开户、默认部门)。登录页自动展示已启用身份源按钮,回调经
one-time state 防 CSRF,支持三种平台 code 换取身份协议;未绑定账号默认
需先在「账号安全」扫码绑定(同一平台账号全局唯一绑定),可开启自动开户。
- **个人安全策略**:门户「账号安全」页面提供登录设备管理(IP/UA/时间,可
吊销任意非当前会话)、新设备登录提醒开关(默认开启,经 outbox → 站内信,
可单独关闭)、扫码登录绑定/解绑。
迁移:000038_portal_chat / 000039_social_login / 000040_security_prefs /
000041_inbox_security_category(共 41 个迁移)。
安全要点:
- 扫码登录 state 为 128-bit 一次性令牌(5 分钟),回调原子消费;
provider_uid 全局唯一,防止平台账号同时绑定多个本系统账号。
- 会话索引只存令牌 SHA-256 摘要,列表时惰性清理过期项;当前会话不可吊销。
- 登录提醒事件只落站内信,不包含凭据;开关按账号独立生效。
## 0.11.3 — 旗舰版第四轮完善
发布时间:2026-08-13
新增功能:
- **统一审批中心**:管理端「系统管理 → 审批中心」统一处理三类申请——
模型访问、资源/渠道权限(新增 `resource_access_requests`,支持
mcp_server/skill/digital_employee/channel)、工具使用(`tool_approval_requests`)。
资源/渠道申请通过后自动开通(marketplace 安装 use 等级;渠道以批准记录为授权),
门户「我的申请」可发起/撤回,审批结果经 outbox → 站内信通知双方。
- **工具治理**:工具支持「限流(RPM)」与「需审批」标记;审批标记工具首次调用
自动发起审批并拒绝执行,管理员通过后可用;限流用 PostgreSQL 固定窗口原子
upsert 实现,多实例共享同一额度。管理端工具中心可配置两项治理参数。
- **平台环境变量**:系统管理新增「平台环境变量」,平台级配置注入 skill/MCP
运行时(加密存储),个人环境变量可覆盖平台默认值(优先级:请求 < 平台 < 个人)。
- **数字员工会话入口**:门户「数字员工」页列出已授权员工、直接对话(复用用户
运行时凭据)、查看调用记录(检索/工具/延迟/状态)。
- **个人渠道**:门户「个人渠道」自建 Webhook 渠道绑定已批准模型;入站
`POST /v1/personal-channels/{code}/inbound``X-Inbound-Token` 常量时间
校验,经用户运行时凭据应答,用量归属用户 Key;支持令牌轮换与调用时间展示。
- **报表多维统计**:企业报表新增「工具调用 / 审批授权 / 安全事件」三个维度
(工具成功率与延迟、三类申请状态分布、登录成功/失败与来源 IP 分布)。
- **租户(部门)配额**:部门支持 Key 数量上限与月 Token 上限(0=不限),门户
运行时凭据开通时强制校验;租户概览展示配额用量与当月消耗。
迁移:000042_governance / 000043_platform_env_vars / 000044_personal_channels /
000045_tenant_quotas(共 45 个迁移)。
安全要点:
- 工具审批:每工具至多一个待审项(部分唯一索引),审批通过前执行一律拒绝;
限流窗口在提交侧原子递增,超限即拒,无竞态放大。
- 个人渠道令牌只存 SHA-256 摘要、仅创建/轮换时显示一次,校验走
constant-time 比较;渠道代码全局唯一。
- 平台环境变量与个人变量同用 AES-256-GCM 加密,管理端仅系统管理员可写。
## 0.11.4 — 旗舰版第五轮完善
发布时间:2026-08-13
新增功能:
- **智能体节点任务下发**(迁移 000046):管理端「安全与审计 → 节点任务」向节点池
下发任务(Prompt/HTTP/MCP/Skill/数字员工/自定义),支持指定节点或池路由、
最大尝试次数;节点经令牌认证后 `POST /v1/agent/nodes/{code}/tasks/claim`
按 FIFO 认领(SKIP LOCKED 防多节点重复认领),执行后凭认领令牌上报结果
(`/tasks/{id}/complete`,防重放/防串扰);失败按 30s×次数退避自动重入队,
达上限标记 failed;支持取消排队任务与失败重试;完成/失败经站内信通知管理员。
- **个人智能体安全策略**:门户「账号安全」新增智能体安全策略——个人工具
自动审批(个人凭据调用需审批工具时不再拦截)与个人限流倍数(个人调用
按 (tool,user) 独立窗口放宽限流,默认倍数 1);运行时治理即时生效。
- 修复: `/v1/agent/nodes/` 从未挂载 publicMux(心跳端点在部署拓扑下不可达,
0.11.0 存量缺陷)。
迁移:000046_agent_tasks(共 46 个迁移)。
安全要点:
- 任务认领 SKIP LOCKED + 15 分钟认领租约;上报必须携带认领令牌,伪造/复用
一律拒绝;认领令牌仅认领响应返回,管理端列表/详情不回传。
- 节点令牌沿用心跳同一套 SHA-256 + constant-time 校验,未知节点与错误令牌
返回同一错误,不泄露节点存在性。
- 个人限流按 (tool_id, portal_user_id) 独立窗口计数,个人倍数不影响全局额度。
## 0.11.5 — 旗舰版第六轮完善
发布时间:2026-08-13
新增交付:
- **智能体节点 Agent 程序**(`cmd/agent-node`):可独立部署到裸机/VM 的节点
执行器。周期心跳(上报版本/能力/最近错误)刷新在线状态;轮询认领节点池
任务;按类型执行——prompt(优先本地 OpenAI 兼容 LLM,缺省经网关)、
http(仅 http(s)、禁重定向、响应限 1 MiB)、mcp_invoke / skill_run /
digital_employee(经网关运行时转发,需 AGENT_GATEWAY_KEY)、custom(回显);
凭认领令牌上报结果/错误,失败交由网关按退避重试;串行执行 + 优雅退出 +
JSON 结构化日志。安全边界:不执行任意 shell 命令,载荷为网关下发的
类型化 JSON,节点令牌经环境注入。
- **裸机安装脚本**(`scripts/install-agent-node.sh`):自动构建二进制、
安装到 /usr/local/bin、生成 0600 权限节点配置(含令牌)、注册 systemd
服务并启动;支持 AGENT_GATEWAY_URL/AGENT_CODE/AGENT_TOKEN 等环境配置。
- **集群/冷备部署方案**(`deploy/CLUSTER.md`):单机/冷备/集群三种形态对照;
compose override 多副本网关 + nginx least_conn 入口示例;冷备数据层
备份与恢复要点(master key 同步、WAL 归档、MinIO 异地);生产建议清单。
端到端验证:
- 真实 Agent 进程注册节点 → 心跳上线(版本/能力上报) → 下发 custom/http
任务 → Agent 认领执行并上报 → 管理端任务成功、结果可见;日志含
认领/上报全链路。修复 Agent claim 未解包网关 apiresponse 信封的问题。
至此旗舰版矩阵中所有可独立实施的功能与交付物完成;剩余依赖外部条件:
企微/钉钉/飞书真实平台联调、多租户物理隔离、企业环境内的节点批量部署。