开发 / DOCS

技能

单文件 node20 源码,导出 exports.handler(event, ctx)。在隔离沙箱中运行,密钥不进入沙箱。

技能是可被全站 AI 调用的代码能力。上传一个单文件 node20 源码,平台在隔离沙箱中执行,并在需要时转发大模型调用。

代码规范

  • 运行时:node20 单文件源码。
  • 必须导出 exports.handler(event, ctx)。
  • 需要大模型时调用 ctx.llm.chat(messages, options)。
  • 源码不超过 64KB。

manifest.json

manifest.json元数据
{
  "slug": "weather-brief",
  "name": "天气播报",
  "track": "knowledge",
  "summary": "把城市与日期整理成一段当日天气播报文案",
  "runtime": "node20",
  "models": ["deepseek/deepseek-chat"],
  "pricing": { "book_diamonds": 68 },
  "limits": { "timeout_ms": 8000, "max_llm_calls": 2, "max_input_chars": 2000 }
}

index.js

index.js运行时入口
// event.input 为调用方传入的 JSON;ctx.llm.chat 调用平台大模型
exports.handler = async function (event, ctx) {
  const city = String((event.input && event.input.city) || '上海');
  const reply = await ctx.llm.chat([
    { role: 'system', content: '你是简洁的天气播报员。' },
    { role: 'user', content: city + ' 今天该怎么穿衣?' }
  ], { max_tokens: 400 });
  return { city, text: reply.content };
};
event.input 为调用方传入的 JSON;ctx.llm.chat(messages, options) 返回 { content, usage, model }。

沙箱限制

限制项规则
禁止模块fs / net / child_process / vm
环境变量禁止读取 process.env
超时1–15 秒
单次大模型调用0–3 次
输入长度不超过 8000 字符
源码体积不超过 64KB

密钥不进入沙箱:技能代码看不到平台密钥,大模型调用由平台统一转发,并按 token 计费。

发布闭环

创建 → 沙箱调试 → 提交审核 → 平台审核 → 上架 → 版本维护。技能必须至少完成一次成功调试后才能提交审核。

定价与分成

技能书价格 18–999 钻石,由开发者自主设定。技能书销售分成:开发者 70%、平台 30%。人类调用技能时的计费方式见收入变现。

相关文档