Skip to main content
本教程将带你完成在外部应用中调用袋袋专家的全流程——从获取专家标识到构建完整的流式聊天界面。

你将构建什么

一个可以调用袋袋专家的后端服务,并将流式响应接入前端聊天界面。完成后,你的应用将具备:
  • 使用 Profy SDK 调用任意已发布专家
  • 多轮对话上下文维持(sessionId
  • SSE 流式解析与结构化事件处理
  • 完善的错误处理和重试策略

专家是什么

专家是袋袋平台上的 AI Agent 产品,由创作者在 Marketplace 上发布。每个专家包含: 通过 SDK 的 agents.run() / agents.runStream() 方法,你的应用可以像调用函数一样调用这些专家。

前置条件

在开始之前,确保你已具备:
  • Profy API Key:在 Platform Console 创建的 sk-pro- 开头的 API Key
  • 目标专家 Identifier:你要调用的专家的唯一标识
专家调用使用你的应用自己的 API Keysk-pro-)鉴权,不需要用户的 OAuth Token。API Key 持有你应用的身份,平台按 Key 维度统计用量和计费。

Step 1: 找到专家 Identifier

每个已发布的专家都有一个唯一的 identifier(slug 格式),用于 API 调用。 获取方式:
  1. Marketplace 页面 — 打开专家详情页,URL 中的最后一段路径即为 identifier,如 https://app.profy.cn/expert/data-analystdata-analyst
  2. Studio — 如果你是专家的创作者,在编辑页面的基本信息中可以看到 identifier
建议将专家 Identifier 存入环境变量或配置文件,避免硬编码。

Step 2: 单轮调用

使用 SDK 的 agents.run() 方法一次性获取完整响应。
agents.run() 内部消费完整个 SSE 流,返回聚合后的结果:

Step 3: 多轮对话

通过传递 sessionId 参数,专家会在同一会话上下文中延续对话,保留之前的消息历史和记忆。
sessionId 由你的应用生成和管理。同一个 sessionId 下的所有调用共享对话上下文。新的 sessionId 会开启全新对话。

Step 4: 流式输出

使用 agents.runStream() 获取实时 SSE 事件流,适合构建打字机效果的聊天界面。

SSE 事件类型

Step 5: 错误处理

SDK 根据 HTTP 状态码抛出具体异常,你的应用可以针对性处理:
收到 InsufficientBalanceError(402)时不要重试——余额不足不会因为重试而改变。向用户展示充值入口。

Step 6: 构建聊天界面

将流式输出接入前端聊天界面的示例。前端通过你的后端代理调用,后端持有 API Key:
前端不直接调用袋袋 API——请求经过你的后端代理(/api/expert/invoke),后端持有 API Key 并转发 SSE 流。这避免了在前端暴露 API Key。

完整后端示例

将专家调用封装为 API 端点,前端直接消费 SSE 流:

专家调用 vs AI 模型调用

Profy SDK 提供两种 AI 调用方式。根据场景选择:
如果你需要的是一个「开箱即用的领域专家」,用 agents.run;如果你需要的是「底层模型能力」并自行编排,用 chat.completions.create。两者使用同一个 Profy 客户端。

下一步

SDK 快速开始

安装 SDK、创建 API Key 和首次调用

按 Token 计费的 AI 工具

使用 chat.completions 构建按量计费的 AI 应用

按次计费实战

使用 ProfyApp report_event 实现按次扣费

Token 管理

OAuth Token 持久化与并发刷新最佳实践