SuperAPI AI 工具集

package-langfuse-green

智能体与模型

查看项目

更新于 10-16 02:38

技能介绍

用途:在一个 VPC 内的六台 AWS 或 Vultr 机器上部署并收敛 Langfuse v4.27.0。包含 Neon 存储层(storage broker、pageserver、一个 safekeeper、compute_ctl 下的 Postgres 17,layers 与 WAL 放在 R2)、Redis 7.2、三个各带一个 Keeper voter 的 ClickHouse 副本,以及运行 langfuse-web、langfuse-worker 和 Cloudflare 后 Caddy 的应用主机。Neon 层通过 SHA 固定 getcolors/neon 并渲染其模板;ClickHouse 模板为本包自有,源自 getcolors/clickhouse。

安装与用法:

npx skills add getcolors/langfuse cp .agents/skills/package-langfuse-green/green ./green chmod +x green

根目录 green 是负载的副本而非符号链接;npx skills update -p 会重写负载而不动副本,更新后需重新复制。命令:./green build 渲染 .colors/<profile>/(不调用云厂商、不需凭据);./green create --dry-run 走流程但跳过副作用;./green create 真实收敛并内置门禁;./green rehearse 从备份恢复两个存储、启动固定镜像并演练;./green describe 通过 SSH 查看各主机最近监控结果;./green delete 由 compute-prevent-destroy 保护,不删除 R2 内容。build 与 --dry-run 可在空环境的新检出上运行;退出码 2 表示校验失败并一次性列出所有问题。

凭据:非机密期望状态在 colors.yml;凭据均为 COLORS_PAR_* 环境变量,通常放在 gitignore 的 .envrc.private。涉及 Vultr API key、Cloudflare API token(Zone:Read + DNS:Edit)、R2 状态访问密钥、Langfuse 存储/Neon/备份 R2 凭据、ENCRYPTION_KEY(64 位十六进制)、SALT(≥32 字符)、INIT_USER_PASSWORD(≥12 字符),均为操作者持有。不要导出 COLORS_PAR_PROFILE。存储或备份密钥对与状态密钥对相同(反之亦然)时,除非 colors.yml 记录 r2-credential-sharing: shared-accepted,否则拒绝 create。

收敛保证:每次收敛运行门禁,失败即整体失败,包括应用主机到 Neon、Redis、ClickHouse 端口的原始 TCP 与 Keeper 拒绝;两个数据库为 UTC、三副本可见、跨节点查询、Keeper 仲裁、system.query_log 存在;经应用主机 API 摄入 trace、generation、score 并可读回、在节点 0 和最后一个副本上找到,并在 R2 产生新原始事件对象;媒体文件通过预签名 URL 往返且 sha256 一致;错误 API key、匿名请求、未认证 Redis PING、错误 ClickHouse 与 Postgres 密码均被拒绝;超时内 200 条 trace 可查询、主机内存低于 85%;备份凭据不能读实时数据;最后写入并读回 ready 标记 <prefix>.colors-ready。

恢复(如实说明):ClickHouse 单副本故障由另两副本自动恢复,RPO 0;Redis 重启由 AOF 恢复,RPO 0;Redis 主机故障无自动恢复,队列任务丢失、原始事件仍在 R2;Neon 本地状态由 R2 layers 加 safekeeper 重放,RPO 约 0;Neon 主机故障由 Postgres dump 恢复,RPO 6 小时;整个 ClickHouse 集群由夜间原生备份配下一次 Postgres dump 恢复,RPO 24 小时;应用主机由带操作者密钥的收敛恢复,新项目密钥,RPO 0。备份在恢复时配对。

AWS 托管部署:使用 provider-compute: aws、provider-backend: s3、s3-bucket-mode: managed、langfuse-storage-provider: s3、langfuse-storage-managed: true,需全局唯一桶名与原生 S3 端点/区域,仍需三个操作者持有的应用密钥。授权 delete 会移除托管应用桶及其内容,状态桶最后 finalize。

浏览器媒体:API 媒体路径无需额外配置;UI 渲染需为 https://<langfuse-host> 在存储桶上设置 CORS 规则,只有 Admin R2 token 可设置,可用 R2 控制台或 wrangler r2 bucket cors put;设置前 smoke 门禁将预检报为 WARN。托管 AWS 存储会在建桶时创建 CORS 规则。

限制:配置见 references/configuration.md;计算使用固定 colors-compute 库;使用 R2 或 S3 状态;构建渲染 compute/shared 与 compute/nodes/<node_id>;已有单体 <profile>/langfuse-infrastructure.tfstate 需显式迁移,不可直接在其上创建或移除拒绝保护。