9.0 KiB
Heicode 当前主线
本文是 docs/ 中唯一保留的新规划入口。旧 Agnet API 草案、旧里程碑、旧架构说明和旧上手材料已经删除,避免多套方向并行。已上线登录接口文档单独保留在 integration/Heicode-登录接口对接文档.md。
一、产品定位
Heicode 的最终形态是一款覆盖软件生命周期的智能开发 Code 工具。
目标用户注册账号后,只需要输入想法,平台逐步完成:
- 团队生成。
- 产品文档。
- 原型描述。
- 代码开发。
- 代码检查。
- 部署到生产并对外提供服务。
- 后续定期维护和升级。
- 软件生命周期管理。
一句话:Heicode 是面向全流程智能开发的代码工具,不是 NewAPI 的二次开发项目,也不是单纯的 Agent 控制台。
二、系统边界
| 系统 | 定位 | 负责内容 |
|---|---|---|
| Heicode Manager | SaaS 用户控制台与编排中枢 | 用户、租户、项目、资源绑定、权限分配、Agnet 部署、审计、模型与余额展示 |
| Agnet 平台 | 执行与状态平台 | 在 AKS 上部署子 Agnet、运行任务、维护状态、事件、日志和执行元数据 |
| NewAPI | 内部模型网关与计费服务 | 模型渠道、模型调用、额度、余额、调用日志;后台不对普通用户开放 |
| Secret Store | 凭证保管库 | 保存 Git token、云密钥、SSH key、数据库密码等真实凭证 |
Manager 是用户操作入口;Agnet 是运行时执行层;NewAPI 是模型能力服务;Secret Store 是安全凭证底座。
三、不可破坏的原则
- 在需求和边界没有想清楚前,不改代码。
- NewAPI 保持独立服务,不继续改造成 Manager 的内嵌后台。
- NewAPI 后台不开放给普通 SaaS 用户,模型管理由内部人员完成。
- Manager 只补 NewAPI 没有的后端能力:项目、资源、权限、Agnet 部署、审计和生命周期管理。
- 用户绑定的是 Agnet 可用资源,不只是 Git 来源。
- 密钥不能进入 Git、Markdown、前端、部署摘要或日志。
- Manager 负责资源绑定、权限分配和凭证托管能力;真实密钥放入 Secret Store。
- 子 Agnet 不保存长期密钥,只接收角色、资源元数据、AGENT.md 和受控访问方式。
- Agnet 平台在 AKS 上负责运行时身份、隔离、状态、事件和审计回传。
- 高危生产权限优先走平台代理或审批,不直接把长期密钥注入子 Agnet。
四、Manager 的核心功能
- 绑定 GitHub、GitLab、Gitea、Gitee、自建 Git 等代码来源。
- 绑定云资源,例如 AWS、Azure、GCP、虚拟机、数据库、对象存储、Kubernetes 集群。
- 确认项目仓库、SK 仓库、项目文档仓库或二合一仓库。
- 按敏捷或瀑布方法分配子 Agnet 角色。
- 为每个子 Agnet 配置 AGENT.md、可用工具、Git 范围、云资源范围、模型和预算。
- 部署子 Agnet,设置数量、模型和运行环境。
- 观察子 Agnet 活动状态、失败原因、事件和运行日志。
- 查看审计日志和模型调用日志。
- 查看可用模型、余额、额度和使用情况。
- 展示 NewAPI 对普通用户有意义的能力,隐藏渠道、价格、模型后台管理等管理员能力。
五、资源绑定与密钥托管
绑定不是保存一串密钥,而是创建租户级 Resource Grant。
用户授权 Heicode 使用外部资源
-> Manager 记录资源元数据
-> Manager 的 Secret Broker 把真实凭证写入 Secret Store
-> Manager 生成可审计、可撤销、可分配给子 Agnet 的资源授权
资源类型:
| 类型 | 示例 | 子 Agnet 可见内容 |
|---|---|---|
| Git 资源 | GitHub repo、自建 Git、SK repo | repo URL、ref、允许路径、读写范围 |
| 云账号 | Azure subscription、AWS account、GCP project | account/project/subscription 元数据、允许动作 |
| 单项云资源 | VM、DB、Bucket、AKS namespace | 资源 ID、环境、网络边界、允许动作 |
| 项目文档 | 产品文档、原型说明、需求库 | 文档引用、版本、可读范围 |
| SK 资源 | 技能仓库、上传的技能包 | SK 来源、版本、允许/禁止策略 |
Manager 数据库只保存资源元数据、权限关系和 secret_ref,不保存明文密钥。
六、开源 Secret Store 方案
SaaS 场景下,凭证不能转嫁给用户手工管理。用户负责授权,平台负责托管、隔离、轮换、撤销和审计。
优先方案:
| 方案 | 判断 |
|---|---|
| HashiCorp Vault | 优先选择。Kubernetes Auth、Policy、TTL、动态密钥、审计能力成熟,适合 AKS 中的子 Agnet 运行时授权 |
| Infisical | 可选方案。产品体验较好,但需要验证多租户策略和运行时授权能力 |
| Azure Key Vault | 适合 Azure 优先部署,也可以作为 Secret Provider 的一种实现 |
Secret Broker 负责:
- 接收 OAuth、GitHub App、云授权回调后的凭证。
- 生成租户隔离的 secret path。
- 写入 Vault、Infisical 或 Azure Key Vault。
- 创建或更新 policy。
- 保存
secret_ref到 Manager DB。 - 轮换、撤销、禁用凭证。
- 避免密钥进入日志、前端响应、Markdown 和 Git。
七、AKS 上的 Agnet 凭证访问
Agnet 平台底层是 AKS,因此运行时权限应和 Kubernetes 身份绑定。
推荐流程:
用户在 Manager 授权资源
-> Manager Secret Broker 写入 Secret Store
-> Manager 记录 Resource Grant
-> Manager 请求 Agnet 平台部署
-> Agnet 平台为 deployment / role 创建 K8s ServiceAccount
-> Agnet 平台绑定 Vault policy 或 Workload Identity
-> 子 Agnet Pod 运行时只能访问被授权的 secret
子 Agnet 拿到的是角色、目标、AGENT.md、resource context 和 permission manifest,不拿长期密钥。
运行时访问分两类:
| 模式 | 适用 |
|---|---|
| 受控注入 | Git clone、开发/测试环境、低风险资源 |
| 平台代理 | 生产部署、数据库写入、高危云操作、需要审批的动作 |
普通开发资源可受控注入,生产云资源和高危操作走平台代理或审批。
八、NewAPI 边界
NewAPI 不作为普通用户后台开放。Manager 后端通过服务凭据调用 NewAPI,对用户展示必要信息。
Manager 可展示:
- 可用模型。
- 当前租户或项目额度。
- 余额。
- 调用量。
- 调用日志。
- 失败日志。
- 模型可用状态。
Manager 不展示:
- 渠道管理。
- 模型供应商后台配置。
- 价格配置。
- 系统管理员用户管理。
- NewAPI 原生管理后台入口。
用户登录 Manager,不直接登录 NewAPI。Manager 需要维护用户、租户、项目到 NewAPI 用户、key 或 quota 的映射。
九、Markdown 与权限清单
绑定的资源最终可以生成 Markdown,但 Markdown 是上下文和规则,不是凭证载体。
Markdown 可包含:
- 子 Agnet 角色。
- 目标任务。
- 项目背景。
- AGENT.md 来源。
- 可使用的 Git 资源。
- 可使用的云资源。
- 可使用的 SK。
- 允许和禁止动作。
- 审计要求。
Markdown 不得包含:
- Git token。
- 云 access key。
- refresh token。
- SSH 私钥。
- 数据库密码。
- NewAPI key 原文。
Manager 应生成两类产物:
| 产物 | 用途 |
|---|---|
| AGENT.md / resource context | 给子 Agnet 的启动上下文,说明角色和可用资源 |
| permission manifest | 给 Agnet 平台和审计系统的结构化权限清单 |
Markdown 面向模型理解,manifest 面向系统强制执行。
十、实施计划
P0:边界收敛
- 以本文作为当前唯一主线。
- 保留已上线登录接口文档。
- 不再维护旧 Agnet API 草案和旧 M1-M5 计划。
P1:Manager 资源模型
- 将当前 Git 来源抽象为资源绑定模型。
- 增加资源类型:Git、SK、项目文档、云账号、单项云资源。
- 增加 Resource Grant,用于把资源分配给项目、角色和子 Agnet。
P2:Secret Broker 与 Secret Store
- 优先选型 Vault。
- 在 Manager 后端实现 Secret Broker。
- DB 只保存
secret_ref,不保存明文密钥。 - 增加日志脱敏、前端响应过滤、Markdown 生成过滤。
P3:Agnet 平台 AKS 身份接入
- Agnet 平台支持 deployment / role 到 Kubernetes ServiceAccount 的映射。
- 支持 Vault Kubernetes Auth 或等价 Workload Identity。
- 支持按 tenant / project / role 生成 Vault policy。
- 子 Agnet 运行时只能访问被授权的 secret。
P4:NewAPI 解耦
- NewAPI 保持独立服务。
- Manager 通过服务凭据调用 NewAPI。
- Manager 展示普通用户需要的模型、余额、额度、调用日志。
- 隐藏 NewAPI 管理员后台能力。
P5:部署和审计闭环
- Manager 生成 AGENT.md、resource context 和 permission manifest。
- Agnet 平台部署子 Agnet 后回传 deployment、agent instance、状态和事件。
- Manager 展示活动状态、失败原因、资源使用记录、模型调用记录和审计日志。
- 对高危权限增加审批、撤销和运行中失效机制。