277f80dc82
- 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 包测试通过。
146 lines
8.1 KiB
Markdown
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 信封的问题。
|
|
|
|
至此旗舰版矩阵中所有可独立实施的功能与交付物完成;剩余依赖外部条件:
|
|
企微/钉钉/飞书真实平台联调、多租户物理隔离、企业环境内的节点批量部署。
|