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 → 调云函数 → 入库。
系统级技能 · 每台容器的自主上报引擎
核心能力:自主解析本容器身份(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 双指针)
# npm 安装
npm install -g skill-deliverable
# 或 FmodeAgent / Hermes Agent 技能加载
hermes skill install skill-deliverable
# 或直接克隆
git clone https://git.fmode.cn/fmode/skill-deliverable.git
# 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
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..." }
见 cloud/deliverable-report-v2.js。变更说明:
FMODE_AGENT_SUPERADMIN 角色检查~/.fmode/config/user.json 或 FMODE_SESSION_TOKEN 环境变量□ 1. check() 成功 → 显示 agentId + sessionToken ✓
□ 2. report() 成功 → 返回 objectId
□ 3. list() 能查到刚上报的记录
□ 4. 容器重建后仍然正常工作(agentId 不依赖 hostname)
□ 5. 权限:非owner 调 report() → 403
本技能采用 Mozilla Public License 2.0(MPL-2.0) 发布,完整原文见 LICENSE。