--- slug: skill-deliverable displayName: skill-deliverable version: 1.1.0 author: Yuyang001 (FmodeAgent) license: MPL-2.0 copyright: "Copyright (c) 2026 未来飞马 Fmode" summary: 系统级·交付物自动上报。自主解析 agentId → objectId + sessionToken → 调云函数 → 入库。 tags: [未来飞马, 智能体技能, 超级技能, 系统级, 平台基础设施, FmodeAgent, Hermes Agent, FmodeCode, Claude Code, deliverable, reporting, bootstrap] --- # skill-deliverable — 交付物自动上报 > **系统级技能** · 每台容器的自主上报引擎 > > 核心能力:自主解析本容器身份(agentId/objectId)和凭据(sessionToken),调平台云函数 > 将交付物写入 `AgentDeliverable` 表。**无需超管角色,每个容器只报自己的活。** --- ## 一、架构 ``` 每台容器 (agent-node / agent-node-xinting / ...) │ ├─ skill-deliverable CLI/SDK │ ├─ resolveAgentId() → agentId (语义名) │ ├─ resolveAgentObjectId() → objectId (云函数自动补全/创建) │ ├─ resolveSessionToken() → 当前用户凭据 │ └─ report() → POST 云函数 │ └─ FMODE 平台云函数 (lfYlgU7SkK) ├─ 鉴权:sessionToken → _User → 查是否 agent 的 owner ├─ 自动创造:首次上报自动创建 FmodeAgent 记录 ├─ 自动补全:agentId ↔ objectId 互相解析 └─ 写入:AgentDeliverable 表 (user/agent 双指针) ``` ## 二、安装 ```bash # npm 安装 npm install -g skill-deliverable # 或 FmodeAgent / Hermes Agent 技能加载 hermes skill install skill-deliverable # 或直接克隆 git clone https://git.fmode.cn/fmode/skill-deliverable.git ``` ## 三、CLI 用法 ```bash # 1. 凭据检查(验证本容器身份+token是否可用) skill-deliverable check # 输出:agentId=agent-node ✓ | sessionToken=✓ | agentObjectId=auto | status=ready # 2. 上报交付物 skill-deliverable report --title "RSI 课程长页 v3" \ --summary "进化工程 RSI 方法论版课程介绍长页" \ --project skill-present \ --artifacts '{"name":"RSI长页","url":"https://s3.fmode.cn/...","type":"html"}' \ --tags 'course,landing' # 3. 查看本容器已有的交付物 skill-deliverable list [--limit 5] # 4. 初始化凭证 skill-deliverable init --mobile 186xxxxxx ``` ## 四、SDK(在 FmodeAgent / Hermes Agent 技能或 FmodeCode / Claude Code 中引用) ```javascript import { resolveAgentId, resolveSessionToken, report } from 'skill-deliverable'; // 解析身份+凭据 const agentId = await resolveAgentId(); const token = await resolveSessionToken(); // 上报 const result = await report({ agentId, title: '任务标题', summary: '一句话描述', project: '项目名', artifacts: [{ name: '文件', url: 'https://...', type: 'html' }], tags: ['feature'], }); // → { code:200, id:"abc123", agentObjectId:"xyz..." } ``` ## 五、云函数 v2(需部署到平台后生效) 见 `cloud/deliverable-report-v2.js`。变更说明: - 移除 `FMODE_AGENT_SUPERADMIN` 角色检查 - 鉴权改为:**用户必须是该 FmodeAgent 记录的 owner** - 新增:首次上报自动创建 FmodeAgent 记录 - 新增:agentId ↔ agentObjectId 自动互解析 - 新增:自动绑定 agent 的 user 指针 ## 六、依赖 - Node ≥ 18 - 平台云函数 lfYlgU7SkK(v2 部署后) - `~/.fmode/config/user.json` 或 `FMODE_SESSION_TOKEN` 环境变量 ## 七、自举核查清单 ``` □ 1. check() 成功 → 显示 agentId + sessionToken ✓ □ 2. report() 成功 → 返回 objectId □ 3. list() 能查到刚上报的记录 □ 4. 容器重建后仍然正常工作(agentId 不依赖 hostname) □ 5. 权限:非owner 调 report() → 403 ``` ## License 本技能采用 **Mozilla Public License 2.0(MPL-2.0)** 发布,完整原文见 [LICENSE](LICENSE)。