NevoFlux
Canvas

NevoFlux SDK

Canvas 应用内可用的 JavaScript API —— 智能体、存储、事件、工具、分享。

每个 Canvas 制品运行时都会注入一个全局 window.NevofluxSDK。通过它,你的应用可以 与智能体对话、持久化数据、收发事件、运行白名单工具,并进行分享 —— 全部经由通往宿主的 安全消息通道。

API 一览

命名空间方法
(根)callTool(action, params)
agentchat(message, options)cancel(sessionId)sendCommand(command, params)
sidebaropen()send(message)notify(type, data)
storageget(key)set(key, value)delete(key)query(prefix)
systemgetInfo()
eventssubscribe(patterns, handler, options)publish(topic, data, options)history(topic, options)waitFor(pattern, options)recover()
toollist(options)invoke(toolName, params, options)
shareshare(artifactId, options)import(shareId, password)extend(shareId, secs)delete(shareId)list()

agent.chat(message, options)

以流式方式从智能体获取回复。options 可包含 sessionIdattachments,以及回调 onStreamonToolResultonState。解析为 { text, toolResults, sessionId }

示例

// 1) 询问智能体并把答案流式写入界面
const result = await NevofluxSDK.agent.chat("总结当前标签页", {
  onStream: (c) => { output.textContent += c.delta; },
  onState:  (s) => { status.textContent = s.status; },
});
console.log(result.text);

// 2) 为该制品持久化少量状态
await NevofluxSDK.storage.set("count", "1");
const count = await NevofluxSDK.storage.get("count");

// 3) 发现并运行一个白名单工具,流式接收其事件
const { tools } = await NevofluxSDK.tool.list();
const { callId } = await NevofluxSDK.tool.invoke(
  "ffmpeg.probe",
  { input: "/clip.mp4" },
  { timeoutMs: 10000, onEvent: (e) => console.log(e.event_type, e) }
);

// 4) 响应 NevoFlux 其他位置发来的事件
const sub = NevofluxSDK.events.subscribe(["session:*"], (evt) => {
  console.log("event", evt);
});
// 用完后 sub.unsubscribe()

tool.invoke 能运行哪些工具由工具白名单控制。 对已禁用或未列入的工具的调用会被拒绝。

本页目录