目录:与 LangGraph 等差异 · 六步落地 · 最小权限 · Schema 与熔断 · 失败摘要 · 排障
编排对照:《LangGraph 工具节点与网关》侧重图状态与检查点;《CrewAI 多 Agent 网关路由》侧重角色卡与路由键;《AutoGen 多 Agent》侧重对话回合与并发预算。结构化校验与重试可与《JSON Schema 工具调用与重试》、《PydanticAI 与网关 Schema》联读。首页、帮助中心、套餐定价与购买页均为公开入口。
与 LangGraph / CrewAI / AutoGen 的边界
Strands 强调工作流步骤与工具调用链在单一运行实例内的顺序与补偿;它不替代你用 LangGraph 画显式有向图,也不等价于 CrewAI 的角色分工表或 AutoGen 的多代理群聊。落地时仍应把出站唯一喉位放在网关:任何模型产出的 tool_calls 必须先过允许工具名表,再做草案校验,最后才触达本机技能或上游 HTTP。这样即使工作流代码升级,旧令牌与旧白名单也不会悄悄放大攻击面。
六步可复现(远程 Mac)
1 固定运行时。安装 Node.js 22 LTS 与锁定的 [email protected],执行 openclaw doctor --json 直至全绿;配置根 chmod 700,Bearer 文件 chmod 600,日志目录落在可写 SSD 沙箱。
2 回环监听。网关只绑定 127.0.0.1:${PORT};开发机用 ssh -R 0.0.0.0:8742:127.0.0.1:8742 user@remote 一类反代,未上 mTLS 前禁止对公网监听。
3 签发最小令牌。在 Dashboard 为「Strands 工作流」桶单独建 scope:仅 tools.invoke 与必要 skill;短 TTL、可吊销;生产与预发分桶各一枚,避免一张令牌跨环境漂移。
4 Strands 指向网关。将 OpenAI 兼容 base_url 设为 http://127.0.0.1:${PORT}/v1,模型名与网关路由一致;工作流内登记的工具名字符串必须是网关白名单的真子集且大小写逐字相同。
5 Schema 与超时。仓库内单一 JSON Schema 源生成每工具 arguments(及可选结构化输出);同步到网关并在转发前校验;连接超时个位数秒,网关执行墙钟比 SDK 总超时短至少五秒,留出半开探针窗口。
6 熔断与信封。将连续 422 校验失败、读超时与上游 5xx 计入熔断计数,冷却数十秒后半开放行少量探测;工作流捕获节点把 stage、code、单行 hint、correlation_id、tool_name 写入步骤状态与 JSONL,不回传用户原文整段或密钥片段。
# 环境占位:按 doctor 替换端口;密钥勿入库
export OPENAI_API_KEY="${OPENCLAW_BEARER}"
export OPENAI_BASE_URL="http://127.0.0.1:8742/v1"
export STRANDS_TOOL_ALLOWLIST="read_repo,run_unit_tests,post_review_comment"
export OPENCLAW_CONNECT_TIMEOUT_S=8
export OPENCLAW_GATEWAY_WALL_S=50
export OPENCLAW_SDK_TOTAL_TIMEOUT_S=58
export OPENCLAW_BREAKER_THRESHOLD=4
export OPENCLAW_BREAKER_COOLDOWN_S=40最小权限清单
| 对象 | 建议 |
|---|---|
| 令牌 | 按环境分桶;禁止写「通配」工具名;吊销后立即从 Strands 密钥注入处删除。 |
| 工具面 | 生产桶去掉交互式 shell、任意写路径;写路径配合幂等键与临时目录配额。 |
| 出站 | 默认拒绝;仅放行网关已登记上游;远程 Mac 系统防火墙记录变更工单。 |
JSON Schema 与熔断协同
校验失败体应带 pointer 与 keyword,供下一轮模型自修复;网关计数与 Strands 内置重试不要双重指数退避:建议网关负责可重试类网络抖动,工作流层只对业务可补偿步骤重放。Apple Silicon 统一内存下,为 tokenizer 与校验线程池预留约两成余量,避免与本地向量或音频作业争用页缓存。
失败摘要回传到工作流状态
捕获节点应把网关 429、503、自定义 breaker_open 与 422 映射到同一信封形状,便于审计与看板聚合;关联号沿用网关 access 日志里的 correlation_id,与人读 PR 描述解耦。需要 IDE 侧沙箱对照时可读《IDE 桥接与健康探针》。
排障速查
- 401/403:核对 Bearer 是否过期、scope 是否缺
tools.invoke;同一机器多进程是否误用预发令牌打生产路由。 - 422 激增:Schema 与代码枚举漂移;在 CI 对 schema 做哈希快照,与网关镜像文件 diff。
- 熔断常开:阈值过紧或下游真故障;读 JSONL 中
breaker_state,用单条半开探针验证后再全量。 - 工作流悬挂:SDK 总超时大于网关墙钟时易出现双端互等;把分层超时写进运维一页纸并对齐
doctor输出。
延伸阅读
可观测字段命名可与《OpenTelemetry 与 GenAI 可观测矩阵》对齐;多模型出口预算见《多模型路由成本矩阵》。