搭建同款智能工作台

最近更新时间:2026-07-09 15:59:01

我的收藏
前两篇介绍了如何通过 API 从零搭建 Claw 模式应用。但直接调用 API 只完成了后端的服务端逻辑(签名、会话、对话、沙箱产出等),并不包含终端用户实际使用的前端交互界面
为降低完整落地的成本,ADP 提供了开源项目 adp-chat-client,一套包含前端界面后端服务的完整示例工程。
开发者既可以直接部署,快速获得一个与 ADP 同款的智能工作台,也可以参照其实现进行二次开发,搭建符合自身业务需要的对话产品。

一、adp-chat-client 的定位

维度
直接调用 API(前两篇)
使用 adp-chat-client
交付内容
仅服务端调用逻辑
前端界面 + 后端服务的完整工程
前端
需自行开发
提供现成对话界面,开箱即用
签名与转发
需自行实现 V3 签名
已封装,前端不接触密钥
部署
需自行搭建
支持 Docker 一键部署
适用场景
深度定制、非 Python 后端
快速落地、以现有工程为蓝本二次开发
adp-chat-client 可将 ADP 应用快速部署为 Web 应用,也可嵌入小程序、Android、iOS 等终端。

二、提供的能力

前端(Vue 3 + Vite)

一套完整的智能工作台交互界面,覆盖终端用户对话所需的主要能力:
实时流式对话、对话历史管理。
语音输入、图片理解。
交互式 Widget(图表、表单等)渲染(adp-widget 独立包)。
Skills 管理(浏览技能广场、安装/卸载/排序)。
连接器 / 工具插件管理(浏览、OAuth 授权、绑定/解绑)。
任务列表、Skill / 连接器 / 知识库的选择与调用等工作台交互。

后端(Python / Sanic)

将服务端全部调用细节封装完毕,前端无需接触密钥与签名:
腾讯云 V3 签名与云 API 转发。
对话 SSE 流式转发。
实时文档解析(SSE 流式返回解析进度,获取 doc_id)。
沙箱工作空间的文件读写与下载。
第三方账户体系对接(OAuth / URL 跳转等)。
限流、CORS、Iframe 嵌入等生产部署所需的服务端能力。

三、快速部署

adp-chat-client 支持 Docker 一键部署,填入密钥与 ADP 应用信息(ApplicationId / AppKey 等)即可运行。完整的部署步骤、系统要求、账户体系对接、Nginx / CORS / 子路径等专题,参见仓库 README

Claw 模式若需支持用户在对话中自定义选择 Skill / 模型 / 连接器,需在应用高级配置中开启「允许在对话中动态修改配置」并重新发布,详情请参见 动态修改 Agent 配置

四、真实例子:动态修改模型

以"用户在对话中切换大模型"为例,展示 adp-chat-client 前后端如何配合实现 动态修改 Agent 配置

前提:获取用户专属 AgentId

每个用户第一次操作时,需要通过 CopyAgentFromApp 获取专属的 AgentId(后续所有动态配置修改都针对这个 Agent):
对应前端代码(composables/useAgentStore.ts):
// 1. 先查后端缓存
const record = await getAgentConfig({ ApplicationId: appId });
if (record.AgentId) return record.AgentId;

// 2. 首次:调用 CopyAgentFromApp 获取专属 Agent
const result = await copyAgentFromApp({ ApplicationId: appId });
const agentId = result.ParentAgentId;

// 3. 持久化到后端 DB
await saveAgentConfig({ ApplicationId: appId, AgentId: agentId });

修改模型:前端发起

用户在界面选择新模型后,前端通过 /adp/ModifyAgent 接口提交修改:
// client/packages/adp-chat-component/src/composables/useAgentStore.ts
await modifyAgentByPath(applicationId, {
model: {
ModelId: 'new-model-id', // 新模型 ID
Alias: '智谱GLM-5.2',
ModelParameters: { Temperature: 0.7, MaxTokens: 4096 }
}
});

// 内部等价于调用:
POST /adp/ModifyAgent
{
"ApplicationId": "app_xxx",
"Payload": {
"AppId": "app_xxx",
"AgentId": "agent_xxx",
"Agent": {
"Model": { "ModelId": "new-model-id", "Alias": "智谱GLM-5.2", ... }
},
"UpdateMask": { "Paths": ["model"] }
}
}

修改模型:后端转发

后端通过通用的 /adp/<Action> 转发端点,自动完成 V3 签名并转发给 ADP 云 API:
# server/router/adp.py — 通用转发路由
# 收到 /adp/ModifyAgent 后:
# 1. 从 Payload 中取出业务参数
# 2. 用 SecretId/SecretKey 做 V3 签名
# 3. 转发到 ADP 管理 API(adp.tencentcloudapi.com 或 capi.adp.tencent.com)
# 4. 原样返回响应

关键分工

职责
密钥接触
前端
用户交互、构造 UpdateMask 参数、缓存 AgentDetail
不接触
后端
V3 签名、转发 ADP 管理 API、持久化 AgentId 映射
SecretId/SecretKey
ADP
执行 ModifyAgent,更新 Agent 配置,下次对话生效
-
注意:
修改模型后无需重新发布,下一次对话请求会自动使用新模型。这是 Claw 模式运行时动态配置的核心优势。

五、二次开发

工程按标准前后端结构组织,便于裁剪与扩展:
前端
client/packages/adp-chat-component:核心对话组件,Vue 3 + Vite,界面与调用封装分离,可替换主题、裁剪功能或嵌入既有站点。
client/packages/adp-widget:交互式 Widget 渲染包(图表、表单等),支持懒加载与自定义路径配置。
后端server/,按 config / core / model / middleware / router / util 分层,core 层与具体协议解耦,model 层提供 ORM 实体定义,便于复用与替换。
在此基础上模仿或改造,即可较低成本地搭建出符合自身业务的智能工作台。