3.6 KiB
Coze Studio 借鉴分析 → 私域Agent 落地清单
分析对象:github.com/coze-dev/coze-studio(字节跳动开源 AI Agent 开发平台,21.5k star,Apache-2.0) 技术栈:Go 后端(DDD 微服务 + Eino 运行时)+ React18/TS 前端(Rush monorepo + FlowGram 画布引擎)
一、值得借鉴的 6 个设计(按投入产出排序)
1. 工作流画布:节点注册表 + 表单元数据 ⭐ 最值得抄
Coze:每种节点类型一个"注册表"(type 唯一、与后端约定 schema)+ "表单元数据"(FormMeta), 画布上的节点卡只显示关键信息摘要,点击后在侧边抽屉里出完整配置表单;支持动态端口 (如意图识别节点按分支数动态生成输出口)。 → 我们已有 @xyflow/react 画布。落地:
- CanvasPage 抽
nodeRegistry.ts:每种 Agent 角色(生产/质检/主控/组合)一份 FormMeta, 节点卡只显示「名称+标签+启停」,配置全部进右侧检查器(对齐已完成的"属性检查器"规划) - 节点 schema 与后端 canvas_snapshot 字段一一对应(现在已是 {node_id, agent_id, enabled, x, y},加 role 即可)
2. 节点/工作流「试运行」(Test Run)
Coze:每个节点支持单节点调试,试运行结果条直接显示在节点卡下方。 → 我们已有 run-step 逐段生成。落地:画布页加「▶ 试运行此节点」按钮—— 选中单个 Agent 节点,用一段测试导图文本走一次该 Agent 的生成,结果展示在节点卡下(复用 SSE 进度)。
3. 知识库:分段策略可配置 + 命中测试分 tab
Coze:知识库建库时可选分段方式(自动/自定义分隔符/最大长度),且"命中测试"是一级入口。 → 我们的 KB 检索测试已在详情页签里 ✓。补:建库弹窗加"分段设置"(当前固定 2200 字聚合, 放开为:自动/自定义长度/按标题切),后端 chunk.chunk_texts 已支持 target 参数,只差暴露。
4. 发布流:草稿 ↔ 发布版本分离
Coze:Agent/工作流有"草稿"与"发布"两态,发布时冻结配置快照,回滚=切回历史发布版本。 → 我们有 canvas_snapshot 和 prompt_template_version 雏形。落地:Agent 加「发布」按钮, 发布时把当前配置写进 agent.runtime_snapshot 冻结;任务生成优先用快照(已有此逻辑),未发布的改动不影响在跑任务。
5. Chat SDK / OpenAPI
Coze:提供对话 OpenAPI 和可嵌入的 Chat SDK。 → 远期:给吴总团队做移动端轻入口或小程序时再考虑;当前 SaaS 页面已够用。
6. 功能开关(Feature Flags)
Coze:bot-flags 统一管理功能灰度。 → 我们的 qc_mode 已是任务级开关。可以再收一个全局开关面板(系统管理→功能开关): 如"允许编辑内置资源""启用跨稿质检""启用总监审核",避免改代码发版。
二、不建议照搬的
- Rush monorepo + 30+ packages:我们单应用 147 文件,monorepo 是过度工程
- Go 微服务 + DDD 四层:当前规模 FastAPI 单体+常驻子进程是最优解,拆微服务只会增加运维负担
- i18n:用户全是中文团队,不需要
- 数据库表资源(Coze 的 database 表):我们没有此需求
三、建议落地顺序(结合用户此前痛点)
- 节点注册表+侧抽屉配置(画布体验,1 次迭代)
- 发布/草稿版本分离(Agent 改配置不再影响在跑任务,解决真问题)
- 分段策略可配置(KB 清洗质量的延伸)
- 全局功能开关面板(qc_mode 之类收进去)
- 单节点试运行(锦上添花)