独立运行与网页嵌入
通过站内运行页使用 Agent,或用 embed.js 把已发布的 Agent 嵌入第三方网站
Agent 配置并发布后,Clouisle 提供两种分发方式:
- 站内运行页:面向登录用户的完整对话界面。Agent 用对话(Chat)(
/chat/{agent_id}),工作流用运行(Run)(/run/{workflow_id}?type=workflow)。 - 网页嵌入:用团队 API 密钥把已发布的 Agent 或工作流嵌入外部网站,支持浮窗、全屏与移动端三种形态。
嵌入始终以 API 密钥作为访客身份,不需要对方登录 Clouisle。因此目标必须先发布,密钥也只能访问你为它勾选的对象。
站内运行页
运行页去掉了编排侧边栏和配置抽屉,专注完成任务:
- 无干扰画布:适合复杂交互、大文档分析和多轮迭代。
- 必填变量先填写:Agent 配置了必填变量时,会话开始前会弹出结构化输入栏。
- 完整能力:附件上传、图片查看器、文档预览、
ask_user表单与消息版本分支。
进入方式:应用(/app/apps)> 悬浮应用卡片 > 右上角 ... 菜单:
- Agent 选对话(Chat),在新标签页打开
/chat/{agent_id}。 - 工作流选运行(Run),打开
/run/{workflow_id}?type=workflow。
也可以直接访问 /run/{id}:默认按 Agent 处理,带 ?type=workflow 时按工作流处理。
网页嵌入:准备 API 密钥
嵌入页面只认 clou_ 开头的 API 密钥,不接受账号登录状态。
- 前往 API 密钥(
/app/api-keys),点击创建密钥。 - 填写名称,例如「官网嵌入」。
- 按需在允许访问的智能体与允许访问的工作流里勾选要公开的对象。留空表示不限制,嵌入场景务必勾选,否则密钥能访问团队内所有可嵌入对象。
- 按需设置过期时间(留空表示永不过期)与速率限制(每分钟请求数,
0表示不限;嵌入请求目前不按该值限流)。 - 保存后立即复制密钥——弹窗关闭后无法再次查看。忘了只能新建一个再替换。
密钥会被写进网页源码,任何访客都能看到。只勾选确实要公开的 Agent / 工作流,并定期轮换;发现泄露就禁用密钥,再更新网页里的代码。
网页嵌入:开启与配置
- 在 Agent 编排页(
/app/apps/{agent_id})或工作流编排页打开目标对象。 - 确认对象处于已发布状态——未发布时嵌入抽屉顶部会提示,且无法保存。
- 点击顶部工具栏的嵌入按钮。
- 打开启用嵌入。
- 在API 密钥处粘贴上一步的密钥,它会自动填入下方代码片段。
- 选择嵌入模式(浮窗 / 全屏 / 移动端),按需调整外观。
- 点预览检查效果,确认后点保存,再点复制代码粘贴到你的网站。
配置项
| 配置项 | 说明 | 默认值 |
|---|---|---|
| 启用嵌入 | 允许通过 iframe 把该对象嵌入外部网站;关闭后所有嵌入地址都会被拒绝 | 关闭 |
| 允许的域名 | 只允许这些来源加载挂件;留空允许所有域名。支持 example.com、*.example.com 与带端口写法,逗号或换行分隔 | 空(允许所有) |
| 展示头部 | 在嵌入页顶部显示应用图标与名称 | 开启 |
| 查看历史 | 在嵌入页显示历史记录侧栏(保存在访客浏览器本地) | 开启 |
| 允许新建 | 允许访客发起新的对话或运行 | 开启 |
| 主题 | 自动 / 浅色 / 深色;自动跟随访客系统设置 | 自动 |
| 主色调 | 品牌强调色,#RGB 或 #RRGGBB;浮窗模式下同时决定按钮底色 | 空 |
| 浮窗位置 | 右下角 / 左下角 | 右下角 |
| 问候语 | 浮窗首次展开前显示的一句话提示,点击可展开对话 | 空 |
允许的域名
留空等于允许所有来源。填写后只允许列表中的主机名:https://example.com、*.example.com(含根域与子域)以及带端口的形式都可以,格式在保存时校验,不合法会直接报错。来源不在列表里的请求会被拒绝并提示「此域名不允许嵌入此资源」;请求完全不带来源信息时放行,方便本地调试。
外观配置保存在对象上,保存后立即对新的访问生效;已经打开的页面需要刷新。
网页嵌入:把代码放进网站
抽屉底部的三个页签(浮窗 / 全屏 / 移动端)决定生成哪种片段。三者都指向同一个嵌入页面(Agent 为 /embed/agent/{id},工作流为 /embed/workflow/{id})。
浮窗模式(推荐)
浮窗需要引入官方 embed.js,再调用 Clouisle.init:
<script src="https://<your-domain>/embed.js"></script>
<script>
Clouisle.init({
type: 'agent',
id: '550e8400-e29b-41d4-a716-446655440000',
token: 'clou_a1b2c3d4e5f6...',
mode: 'bubble',
theme: 'auto',
primaryColor: '#2563eb',
position: 'bottom-right',
greeting: '你好!有什么可以帮你的?',
});
</script>Clouisle.init 的参数:
| 参数 | 取值 | 默认值 | 说明 |
|---|---|---|---|
type | 'agent' / 'workflow' | 'agent' | 嵌入对象类型 |
id | 对象 ID | 必填 | Agent 或工作流 ID |
token | clou_ 密钥 | 必填 | 复制片段时自动填入;两项缺任意一个,SDK 会在控制台报错并且不渲染 |
mode | 'bubble' / 'fullscreen' / 'mobile' | 'bubble' | 呈现形态 |
theme | 'light' / 'dark' / 'auto' | 'auto' | 嵌入页亮暗主题 |
primaryColor | 十六进制色值 | 空 | 浮窗按钮底色,自动挑选黑或白前景色 |
position | 'bottom-right' / 'bottom-left' | 'bottom-right' | 浮窗贴边方向 |
greeting | 文本 | 空 | 浮窗旁的问候提示 |
container | CSS 选择器 | body | 仅全屏 / 移动端使用;找不到容器时控制台报错并放弃 |
浮窗实例可以用 Clouisle.open()、Clouisle.close()、Clouisle.destroy() 控制;重复调用 init 会先销毁上一个实例。嵌入页内部发出的关闭动作也会收起浮窗。
全屏与移动端模式(纯 iframe)
这两种模式不需要 JS,抽屉直接生成 iframe:
<!-- 全屏:放进页面里的某个容器 -->
<iframe
src="https://<your-domain>/embed/agent/550e8400-e29b-41d4-a716-446655440000?token=clou_a1b2c3d4e5f6...&mode=fullscreen"
style="width: 100%; height: 100%; border: none;"
allow="clipboard-write"
></iframe><!-- 移动端:铺满整个视口 -->
<iframe
src="https://<your-domain>/embed/agent/550e8400-e29b-41d4-a716-446655440000?token=clou_a1b2c3d4e5f6...&mode=mobile"
style="position: fixed; top: 0; left: 0; width: 100%; height: 100%; border: none; z-index: 9999;"
allow="clipboard-write"
></iframe>全屏模式也可以交给 SDK 指定容器:Clouisle.init({ type: 'agent', id: '...', token: '...', mode: 'fullscreen', container: '#chat' })。
地址参数
嵌入地址支持以下参数,手改片段时用得到:
| 参数 | 说明 |
|---|---|
token | API 密钥,必填 |
mode | fullscreen(缺省)或 bubble;mobile 与 fullscreen 都铺满容器 |
theme | light / dark;缺省或 auto 时跟随系统 |
color | SDK 会按主色调带上,但嵌入页当前不读取,不影响内部配色 |
嵌入页的历史记录保存在访客浏览器本地;关闭查看历史后侧栏不显示,关闭允许新建后访客不能新建对话。
以上覆盖的是网页端接入。如果你要在自己的后端或原生客户端里调用同样的嵌入能力(会话、运行、上传、历史记录),见嵌入集成 API。
访问与安全
- 只接受 API 密钥:嵌入页不使用账号登录状态。缺少密钥时页面无法加载(一直显示加载中);密钥无效、被禁用或过期时,请求会被拒绝并提示密钥无效或已过期。
- 密钥归属于创建者:嵌入会话以创建密钥的那个用户身份执行,因此它能读到的知识库、能调用的工具都以该用户为准。不要用权限过高的个人账号创建嵌入密钥。
- 密钥绑定收窄范围:勾选了「允许访问的智能体 / 工作流」就只能访问勾选对象;留空则不限制。建议始终勾选。
- 多重校验:目标必须命中密钥绑定、必须已发布、必须启用嵌入,再叠加域名校验。对应提示分别是「此 API 密钥无权访问请求的 Agent」「Agent 未找到」「此资源未启用嵌入功能」「此域名不允许嵌入此资源」。
- 速率限制:密钥上的速率限制目前不作用于嵌入请求;实际速度受团队模型配额与供应商限流约束。
- 权限隔离:嵌入会话无法访问团队模型管理、站点设置或其他管理员功能。
常见问题
嵌入页一直转圈或提示密钥无效
- 片段里的
token是否完整(以clou_开头),有没有粘贴成账号登录令牌。 - 密钥是否已被禁用或过期;过期后必须新建密钥并替换网页代码。
- 目标是否已发布、是否已打开启用嵌入。
- 网站域名是否在允许的域名里。
浮窗按钮不出现
embed.js的地址必须指向你实际部署的 Clouisle 域名。id与token都要有值。- 页面上重复初始化会互相替换,只保留最后一个实例。
访客看不到历史记录
嵌入页的历史存在访客浏览器本地:清空浏览器数据、换设备或无痕窗口都会丢失;需要跨设备保留历史时,请改用站内运行页。
相关页面
- 嵌入集成 API — 嵌入对话、工作流执行、上传与历史接口
- API 密钥 — 创建、绑定对象、禁用与轮换密钥
- 创建与编排 Agent — 编排、发布与工具配置
- 对话与会话 — 引用、附件与产物在会话中的表现
这篇文章对你有帮助吗?