Flux — 共享状态引擎

v2.3.0

通过 Flux 状态引擎发布事件并查询共享世界状态,让多智能体共享观测、协调数据与追踪实体状态,实现实时协作。

2· 1.5k·6 当前·6 累计
by @eckmantechllc (EckmanTechLLC)
下载技能包
最后更新
2026/2/26
0
安全扫描
VirusTotal
无害
查看报告
OpenClaw
安全
high confidence
该技能内部一致:围绕 Flux HTTP API 实现 CLI 封装,仅请求单一服务令牌 FLUX_TOKEN,指令与代码均与描述用途相符。
评估建议
本技能是 Flux HTTP API 的简单 CLI 封装,功能如其所述。安装前:1) 确认信任外部端点 https://api.flux-universe.com 后再设置 FLUX_TOKEN,该令牌授予 API 访问权限;2) 仅在需要执行管理员更新时提供更高权限的 FLUX_ADMIN_TOKEN;3) 确保运行环境具备 curl 及 jq 或 python3(脚本使用但未在包元数据中声明);4) 注意技能可列举命名空间/实体(发现功能),如需严格隔离,避免共享跨租户令牌。...
详细分析 ▾
用途与能力
名称/描述(发布/查询 Flux 世界状态)与所含文件及脚本一致:bash CLI 调用 Flux HTTP 端点。所需凭证 FLUX_TOKEN 与可选 FLUX_ADMIN_TOKEN 与文档 API 用法匹配。小差异:SKILL.md / README 指出需 curl(及 jq/python)但注册元数据未列出所需二进制文件。
指令范围
SKILL.md 指示智能体调用提供的 flux.sh 脚本执行发布/获取/列表/删除/管理员操作,并访问文档中的 Flux API 端点。脚本仅使用 FLUX_* 环境变量及标准工具(curl、jq、python3)。同时暴露目录端点列举命名空间/实体(可能泄露公共实例上跨租户的全局状态)——此为发现功能,需留意。
安装机制
无安装规范;技能仅为指令/脚本。无下载或解压操作。脚本随包提供,安装器不会获取外部内容。
凭证需求
仅 FLUX_TOKEN 为必需(primaryEnv)。FLUX_ADMIN_TOKEN 与 FLUX_URL 可选,分别用于管理员操作与本地覆盖,需求合理。注意:技能将向默认外部主机 https://api.flux-universe.com 发送请求——提供凭据前请确认信任该服务。
持久化与权限
always 为 false,技能不请求持久化平台级权限,不修改其他技能或系统级配置。智能体可按默认自主调用该技能。
安全有层次,运行前请审查代码。

运行时依赖

无特殊依赖

版本

latestv2.3.02026/2/11

新增入门章节:检查 flux-core/directory 以发现可用命名空间与数据。

无害

安装命令

点击复制
官方npx clawhub@latest install flux
镜像加速npx clawhub@latest install flux --registry https://cn.longxiaskill.com

技能文档

# Flux Skill 技能 Flux 是一个持久化、共享、基于事件溯源的世界状态引擎。代理发布不可变事件,Flux 推导出所有代理都能观察到的权威状态。 ## 核心概念 - Events(事件):不可变的观察结果(温度读数、状态变更等) - Entities(实体):由事件推导出的状态对象(传感器、设备、代理) - Properties(属性):实体的键值属性(更新时合并——只需发送已变更的属性) - Streams(流):逻辑事件命名空间(sensors、agents、system) - Namespaces(命名空间):通过令牌鉴权实现多租户隔离(可选,用于公共实例) ## 前提条件 公共实例: https://api.flux-universe.com(在 flux-universe.com 购买命名空间——购买后自动分配名称,例如 dawn-coral本地实例: http://localhost:3000(默认,可通过 FLUX_URL 环境变量覆盖) 鉴权:将 FLUX_TOKEN 设置为你的 Bearer 令牌。公共实例必须设置;本地实例若关闭鉴权则可省略。 ## 命名空间前缀 所有实体 ID 必须加上命名空间前缀:yournamespace/entity-name 以命名空间 dawn-coral 为例: ``bash ./scripts/flux.sh publish sensors agent-01 dawn-coral/sensor-01 \ '{"temperature":22.5}' ./scripts/flux.sh get dawn-coral/sensor-01 ` 未带命名空间前缀的实体 ID 在启用鉴权的实例上将被拒绝。 ## 快速开始 首先验证连接: `bash ./scripts/flux.sh health ` 然后查看目录,了解 Flux Universe 中可用的数据: `bash ./scripts/flux.sh get flux-core/directory ` 目录列出所有活跃命名空间、实体数量及总计实体数——是发现系统数据流的好方式。 ## 脚本 使用 scripts/ 目录提供的 bash 脚本: - flux.sh - 主 CLI 工具 ## 常用操作 ### 发布事件 `bash ./scripts/flux.sh publish # 将 dawn-coral 替换为你的命名空间 # 示例:发布传感器读数 ./scripts/flux.sh publish sensors agent-01 dawn-coral/temp-sensor-01 '{"temperature":22.5,"unit":"celsius"}' ` ### 查询实体状态 `bash ./scripts/flux.sh get # 将 dawn-coral 替换为你的命名空间 # 示例:获取当前传感器状态 ./scripts/flux.sh get dawn-coral/temp-sensor-01 ` ### 列出所有实体 `bash ./scripts/flux.sh list # 按前缀过滤 ./scripts/flux.sh list --prefix scada/ ` ### 删除实体 `bash ./scripts/flux.sh delete # 示例:移除旧测试实体 ./scripts/flux.sh delete test/old-entity ` ### 批量发布事件 `bash # 将 dawn-coral 替换为你的命名空间 ./scripts/flux.sh batch '[ {"stream":"sensors","source":"agent-01","payload":{"entity_id":"dawn-coral/sensor-01","properties":{"temp":22}}}, {"stream":"sensors","source":"agent-01","payload":{"entity_id":"dawn-coral/sensor-02","properties":{"temp":23}}} ]' ` ### 检查连接器状态 `bash ./scripts/flux.sh connectors ` ### 管理员配置 `bash # 读取运行时配置 ./scripts/flux.sh admin-config # 更新(需要 FLUX_ADMIN_TOKEN) ./scripts/flux.sh admin-config '{"rate_limit_per_namespace_per_minute": 5000}' ` ## 使用场景 ### 多代理协作 代理向共享实体发布观察结果: `bash # 将 dawn-coral 替换为你的命名空间 # 代理 A 观察温度 flux.sh publish sensors agent-a dawn-coral/room-101 '{"temperature":22.5}' # 代理 B 查询当前状态 flux.sh get dawn-coral/room-101 # 返回:{"temperature":22.5,...} ` ### 状态追踪 追踪服务/系统状态: `bash # 将 dawn-coral 替换为你的命名空间 # 发布状态变更 flux.sh publish system monitor dawn-coral/api-gateway '{"status":"healthy","uptime":3600}' # 查询当前状态 flux.sh get dawn-coral/api-gateway ` ## API 端点 事件摄入: - POST /api/events —— 发布单个事件(限制 1 MB) - POST /api/events/batch —— 批量发布事件(限制 10 MB) 状态查询: - GET /api/state/entities —— 列出所有实体(支持 ?prefix=?namespace= 过滤) - GET /api/state/entities/:id —— 获取指定实体 实体管理: - DELETE /api/state/entities/:id —— 删除单个实体 - POST /api/state/entities/delete —— 批量删除(按命名空间/前缀/ID) 实时更新: - GET /api/ws —— WebSocket 订阅 Connectors: - GET /api/connectors —— 列出连接器及其状态 - POST /api/connectors/:name/token —— 存储 PAT 凭据 - DELETE /api/connectors/:name/token —— 移除凭据 管理员: - GET /api/admin/config —— 读取运行时配置 - PUT /api/admin/config —— 更新运行时配置(需要 FLUX_ADMIN_TOKEN) Namespaces(仅鉴权模式): - POST /api/namespaces —— 注册命名空间(返回鉴权令牌) ## 注意事项 - 事件自动生成 UUID(无需提供 eventId) - Properties 合并更新——只需发送变更的属性,原有属性会被保留 - 时间戳字段必须为 epoch 毫秒(i64)——API 要求,flux.sh 会自动生成 - 状态在 Flux 中持久化(通过 NATS JetStream + 快照,重启后依旧存在) - 实体 ID 支持 / 进行命名空间划分(例如 scada/pump-01`)

数据来源ClawHub ↗ · 中文优化:龙虾技能库