Merge pull request #33 from xmindlab-heicode/feat/client-guide-billing

CLIENT_GUIDE 校正:计费口径挑明 + §5/§7 去除已删除的 ENABLE_* 开关(Refs #16)
This commit is contained in:
Fasthei
2026-06-10 22:48:45 +08:00
committed by GitHub
+10 -8
View File
@@ -81,12 +81,14 @@ curl -s -X POST http://<host>:8000/api/swarms/<deployment_id>/stop \
---
## 5. 启用完整工作流
## 5. 工作流(去中心化蜂群 —— 唯一行为,无开关)
默认仅执行 Manager 提供的编排;要启用「分解 → 评审/重做 → 汇总」主控工作流,运行 Swarm 时设置(默认关闭):
- `ENABLE_PLANNER_FALLBACK=1`:无 Manager 分工时由主控 Agent 自动分解。
- `ENABLE_REVIEW_LOOP=1` / `MAX_REVIEW_CYCLES=2`:主控评审与重做循环 + 结果汇总。
- 模型走 OpenAI 兼容网关(`OPENAI_API_KEY`/`OPENAI_API_BASE`/`OPENAI_MODEL`,经 `secret_ref` 注入)。
本仓**即蜂群运行时**,模式选择(single/chain/sub/swarm)在仓外;**没有「启用 swarm」开关**。下述流程**无条件生效**(cutover 已完成):编排器**播种**单一目标种子任务 → Agent 感知共享池**自选**(信息素 τ + 能力/负载/预算)→ 经 `task_proposal` **自底向上自主分解**(#7)→ 经 `task_bid`/`yield`/`takeover` **竞争/接管**(#8)→ **同伴交叉评审**(≥2 评审者,#11)→ **收敛**(产出 `termination_reason`,#12),最后 `master_agent.synthesize` 汇总。**已删除**:Master/planner 自顶向下分解兜底、单 critic 主控评审环及其 `ENABLE_PLANNER_FALLBACK` / `ENABLE_REVIEW_LOOP` 等开关。
- `MAX_REVIEW_CYCLES`(默认 2):交叉评审/重做的轮次预算(保留)。
- `MAX_AGENTS_PER_USER`(默认 10):每用户并发连接的 Agent 上限(见 security-boundary §6)。
- 仅剩的能力开关:`ENABLE_QUALITY_EVAL` + `HEICODE_SANDBOX_ISOLATED`(代码沙箱评分,见 security-boundary §8.1)、`ENABLE_SUBTASK_HANDOFF`(agent 侧子任务移交)。
- 模型走 HM 模型网关(OpenAI 兼容 `/v1`):`OPENAI_API_KEY` = **HM 为该用户现签的 per-user `sk-`**(NewAPI token),`OPENAI_API_BASE` = **HM `/v1`**,`OPENAI_MODEL` 为所选模型。由 Agent 平台在拉起 agent 时注入其进程 env(server→server,**不入 create 请求 / 回调 / 日志**)。模型调用**扣发起用户 `user.Quota`**、按 token 名归集计量;详见 [usage-billing-schema.md §2](docs/integration/usage-billing-schema.md)。
---
@@ -105,8 +107,8 @@ Swarm 向 `callback.url` POST 事件,**带 HMAC 签名**(客户端须验签
## 7. 本地联调(无需密钥)
```bash
# 1) 编排器(内存存储 + 工作流开关)
set "REDIS_FAKE=1" & set "ENABLE_PLANNER_FALLBACK=1" & set "ENABLE_REVIEW_LOOP=1"
# 1) 编排器(内存存储;蜂群流程无条件生效,无需开关)
set "REDIS_FAKE=1" & set "MAX_REVIEW_CYCLES=2"
python -m uvicorn orchestrator.main:app --host 0.0.0.0 --port 8000
# 2) 无密钥桩 Agent(联调用)
set "ORCHESTRATOR_URL=ws://localhost:8000" & set "AGENT_ID=stub-1" & set "AGENT_CAPABILITIES=python,code_generation,testing,pytest,technical-writing,general"
@@ -120,4 +122,4 @@ python scripts/stub_agent.py
- **桌面/前端 UI**:当前桌面客户端为单 Agent A2A 直连模型;**蜂群图 / 协作时间线**的前端事件 API 尚未冻结(见 [frontend-event-api.md](docs/integration/frontend-event-api.md))。
- **不得在请求/回调/日志中出现明文密钥**;凭据一律 `secret_ref`(`azkv://`)。见 [security-boundary.md](docs/integration/security-boundary.md)。
- 计费在 NewAPI(模型网关)侧按请求计量,Swarm 仅上报用量;见 [usage-billing-schema.md](docs/integration/usage-billing-schema.md)。
- **计费主线**:Agent 模型调用走 HM `/v1`,用 **HM 为该用户现签的 per-user `sk-`** 作 `OPENAI_API_KEY`,**扣发起用户 `user.Quota`**;NewAPI 是账本、按请求计量,**Swarm 不是账本、仅上报用量**(随模型请求带 `X-Agent-*` 归因头)。归因主轴 = `user.id`/`channelId`,不引入 tenant。见 [usage-billing-schema.md §1/§2](docs/integration/usage-billing-schema.md)。