
Coze Studio 工作流测试运行 SDKcoze-workflow/test-run 包全面解析【免费下载链接】coze-studioAn AI agent development platform with all-in-one visual tools, simplifying agent creation, debugging, and deployment like never before. Coze your way to AI Agent creation.项目地址: https://gitcode.com/GitHub_Trending/co/coze-studiocoze-workflow/test-run 是 Coze Studio 前端 monorepo基于 Rush中负责**工作流测试运行Test Run**能力的前端包为工作流画布提供试运行参数表单、测试集Testset管理、运行日志解析、问题面板与结果上报等一整套开箱即用的组件、Hook、Adapter 与插件化服务。本文将以 frontend/packages/workflow/test-run/README.md 为主线结合包内真实源码讲解其安装接入、API 构成、插件化服务与核心实现原理帮助你在 Coze Studio 项目中快速定位并复用这套测试运行能力。包定位工作流测试运行能力的统一载体在 Coze Studio 的 frontend/packages/workflow 目录下test-run包与base、components、nodes、variable等兄弟包共同构成工作流前端生态。从 package.json 可以看到其身份信息包名coze-workflow/test-run版本0.0.1描述为 workflow test run许可证Apache-2.0README 的 Overview 明确说明该包是 Coze Studio monorepo 的一部分提供 workflow 功能包含Component、Hook、Adapter 以及更多Store、Service、Plugin、Api。从 src/index.ts 的导出清单可以印证这一划分导出内容覆盖组件表单面板、测试按钮、日志详情、折叠面板、可拖拽面板、测试集管理与选择、文件图标等表单引擎LazyFormCore、InputNumberV2Adapter常量FormItemSchemaType、TESTSET_BOT_NAME、FieldName工具Tracker、typeSafeJSONParse、getTestDataByTestsetHookuseDocumentContentChange、useTestFormService特性FeaturesQuestionForm、ProblemPanel、NodeStatusBar、LogImages插件createTestRunPlugin、TestRunService、TestRunReporterService。值得一提的是 src/index.ts 中保留了TraceListPanel、TraceDetailPanel的注释代码并明确说明“禁止直接导出 Trace 以避免 visactor 包在首屏被加载”这体现了该包在设计时对首屏体积的刻意控制属于从源码中可以确认的工程约束。安装与工程接入该包是 monorepo 内部包README 给出的标准接入方式为在目标包的package.json中声明workspace:*依赖{ dependencies: { coze-workflow/test-run: workspace:* } }随后执行rush updateworkspace:*协议配合 Rush 的 workspace 机制可保证 monorepo 内所有包共享同一份依赖解析与锁文件避免版本漂移。子路径导出Subpath Exports除了根入口package.json 还通过exports与typesVersions暴露了 5 个语义化的子路径便于按需引入、减小首屏体积子路径指向源码内容定位.src/index.ts主入口聚合全部导出./pluginssrc/plugins/test-run-plugin/index.ts测试运行插件体系Service、Plugin Creator./logsrc/features/log/index.ts日志解析、状态条、图片预览等日志能力./inputsrc/features/input/index.ts输入类表单能力./constantssrc/constants/index.ts测试运行相关常量./formilysrc/formily.tsFormily 表单配置例如仅需日志能力时可写import { OutputLogParser } from coze-workflow/test-run/log避免加载整个包体。README 中“And more...”的提示也暗示实际导出面比文档列表更广最准确的 API 定义以各 TypeScript 源文件为准。核心组件与表单能力FeaturesREADME 的 Features 一节列出了 Component、Hook、Adapter、Store、Service、Plugin、Api 七类能力下面结合源码逐一展开。试运行面板与交互组件FormPanelLayoutsrc/components/form-panel/form-panel-layout.tsx试运行参数表单的整体布局容器配套.module.less样式模块BaseTestButton / TraceIconButtonsrc/components/test-button/测试按钮与“打开 Trace”图标按钮用于发起试运行和跳转链路追踪LogDetailsrc/components/log-detail/运行日志详情面板内部含use-get-current-resultHook、日志字段log-fields、日志图片log-images与一套完整的分页组件pagination含页码选择器、更多选择器等Collapse / ResizablePanelsrc/components/collapse/、src/components/resizable-panel/折叠面板与可拖拽调整大小的面板use-resize.ts提供拖拽缩放逻辑用于搭测试运行的分栏布局InputFormEmptysrc/components/form-empty/表单为空时的占位组件FileIcon / FileItemStatus / isImageFilesrc/components/file-icon/文件类型图标映射与图片文件判定工具常用于文件上传类表单项展示。表单引擎Adapter 与懒加载InputNumberV2Adaptersrc/components/form-materials/input-number/base-input-number-v2.tsx数字输入框 V2 版适配器将 Formily 字段与数字输入控件解耦LazyFormCoresrc/components/form-engine/lazy-form-core.tsx表单核心的懒加载版本配合前面“避免首屏命中重依赖”的设计仅在真正渲染表单时才加载表单引擎。表单物料的完整集合位于 src/components/form-materials/涵盖 input、text-area、input-number含 integer/float 细分、input-time、switch、full-input、voice-select、file-upload 以及 form-item、form-section 等编排组件这些是试运行参数表单的“积木”。两大业务特性问答表单与问题面板QuestionFormsrc/features/question/模拟对话式试运行的问答表单内部包含消息列表message-list、回答输入框answer-input、虚拟滚动同步virtual-sync与基于 zustand 的 storeuse-question-form-store.ts并使用use-send-message.ts负责发送消息ProblemPanelsrc/features/problem/试运行结果的问题汇总面板将问题按分组problem-group与条目problem-item展示use-problems.ts负责收集与组织问题数据。测试集Testset管理从选择、编辑到自动生成测试集是批量试运行的输入数据来源该包围绕它提供了完整的 Provider Store 组件组合TestsetManageProvidersrc/components/testset/manage-provider.tsx上下文 Provider接收spaceId、workflowId、userId、nodeId、projectId与自定义formRenders通过 zustand 创建一次性的管理 StoreuseRef保证只初始化一次。Store 内部将bizCtx默认注入connectorID: TESTSET_CONNECTOR_ID固定值10000将bizComponentSubject默认设为CozeStartNode类型并暴露openEditPanel区分 create/edit 模式、closeEditPanel、validateSchema带缓存的结果校验等动作TestsetSelectsrc/components/testset/select/测试集下拉选择器含加载更多auto-load-more、条目自定义渲染与use-testset-options数据 HookTestsetEditPanelsrc/components/testset/edit-panel/测试集编辑面板按表单区段edit-form-section组织支持名称输入与 schema 驱动的编辑表单use-edit-form-schemas.tsAutoGenButtonsrc/components/testset/auto-gen-button/AI 自动生成测试数据按钮use-auto-gen.ts封装生成请求useTestsetManageStore / useTestsetManage消费 Store 的 HookUtilssrc/utils/testset/提供表单值转换trans-form-value、按测试集取测试数据get-test-data-by-testset、schema 校验validate-schema、表单默认值分配、字段名/类型推导、节点表单 schema 遍历traverse-testset-node-form-schemas等纯函数工具。关键常量来自 src/constants/testset.ts常量值含义TESTSET_PAGE_SIZE10测试集列表每页条数TESTSET_CONNECTOR_ID10000测试集连接器固定 IDTESTSET_BOT_NAME_WORKFLOW_VARIABLE_NODE_BOT_IDBot 类型测试集的特殊字段名TESTSET_FORM_BOOLEAN_SELECT_OPTIONStrue/false布尔类型下拉选项FormItemSchemaTypestring/bot/chat/number/object/boolean/integer/float/list/time表单项 schema 类型枚举此外 src/constants/log.ts 定义了EndTerminalPlanVariable1、Text2用于标识结束节点的展示方案FieldName等表单相关常量位于 src/constants/form.ts。插件化服务依赖注入驱动的测试运行内核该包最具架构价值的部分是其插件体系子路径./plugins源码位于 src/plugins/test-run-plugin/它基于flowgram-adapter/free-layout-editor的definePluginCreator与 inversify 实现。createTestRunPlugin向工作流编辑器注入服务create-test-run-plugin.ts 导出的插件创建器在onBind阶段将TestFormService绑定到单例实现export const createTestRunPlugin: PluginCreatorobject definePluginCreatorobject({ onBind({ bind }) { bind(TestFormService).to(TestFormServiceImpl).inSingletonScope(); }, });这意味着当工作流编辑器加载该插件后任意节点组件都能通过useTestFormService()拿到同一个表单服务实例。TestFormService表单缓存test-form-service.ts 定义了一个以Mapstring, FormDataType为核心的表单值缓存服务getCacheValues(id)/setCacheValues(id, value)。它的作用是让用户在多次试运行之间切换节点时参数表单的已填内容不丢失。useTestFormService则是对useServiceTestFormService(TestFormService)的封装供 React 组件消费。TestRunService暂停与继续test-run-service.ts 定义了测试运行的**暂停pauseTestRun与继续continueTestRun**两个动作用于支持大模型长耗时运行时的“暂停试运行”交互。TestRunReporterService结构化埋点上报test-run-reporter-service.ts 定义了完整的埋点事件枚举ReporterEventName即内部EventNameTryStart发起试运行携带scenetoolbar/publish/node/form/triggerRunEnd运行结束携带execute_id、testrun_typeflow/node/trigger、testrun_resultsuccess/fail/cancel/errorFormSchemaGen表单 schema 计算耗时durationFormRunUIMode表单 UI 模式form/jsonFormGenDataOrigin表单数据来源cache/testset/history/ai/ai_backup/ai_failedLogOutputDifference日志原始输出差异分析结果is_difference与error_msg、log_node_typeLogOutputMarkdownMarkdown 日志渲染/预览action_typeTraceOpen打开 Tracepanel_type为 list/detail。Params接口为每个事件定义了强类型载荷并统一携带space_id、project_id、workflow_id、workflow_mode等公共字段PickReporterParamsT, X类型工具用于按事件裁剪参数。服务接口TestRunReporterService当前提供logRawOutputDifference与logOutputMarkdown两个直接方法。这套设计把“埋点”抽象为可注入的服务便于在测试与生产环境间替换实现。运行日志解析、状态条与图片子路径./logsrc/features/log/index.ts聚合了完整的日志展示能力NodeStatusBarnode-status-bar节点运行状态条运行中/成功/失败等LogImageslog-images日志中的图片预览DataViewerdata-viewer通用 JSON/结构化数据查看器内置 BigNumber 处理、字段生成与折叠展开use-expandMarkdownViewer / useMarkdownModalmarkdown-viewerMarkdown 内容渲染与弹窗模式日志解析器log-parserConditionLogParser条件分支日志、OutputLogParser输出日志含sync-output-to-node将输出同步回节点、is-different-output判断与历史输出差异、NormalLogParser普通日志、FunctionCallLogParser函数调用日志、WorkflowLinkParser工作流跳转链接类型守卫isConditionLog、isOutputLog、isReasoningLog、isFunctionCallLog、isWorkflowLinkLog工具generateLog生成结构化日志、LogType枚举与Log/ConditionLog类型。差异分析output difference能力与ReporterEventName.LogOutputDifference埋点相呼应前端在展示输出时对比历史结果并上报是否产生差异支撑“结果对比”类交互。工具与通用 Hooksrc/utils/ 提供了一批与 README 中 Api/Utility 相关的纯函数typeSafeJSONParse安全解析、stringify-value、Tracker埋点工具见 tracker.ts。Hooks 目录src/hooks/则包含useDocumentContentChange文档内容变更监听useFormSubmitting表单提交中状态use-test-run-service.ts、use-test-run-reporter-service.ts消费前述两个 Service 的 React 封装。从依赖清单package.json还可以确认包的技术底座formily/core/formily/react表单、zustand状态管理、inversifyDI、ajvschema 校验、tanstack/react-query数据请求、bignumber.jsjson-bigint大数处理、remark-parseunifiedMarkdown 解析等。开发与质量保障README 的 Development 一节声明该包使用 TypeScript、现代 JavaScript、Vitest 与 ESLint。工程配置位于 config/rush-project.json 与 config/rushx-config.jsonlint 脚本为eslint ./ --cache。作为 monorepo 子包其变更与发布遵循 frontend/README.md 及 Rush 仓库的整体规范见 rush.json。总结coze-workflow/test-run 是 Coze Studio 工作流测试运行能力的“一站式”前端包对外提供面板布局、测试按钮、日志详情、测试集管理等高复用组件对内通过createTestRunPlugin以依赖注入方式向工作流编辑器注册表单缓存、暂停/继续、埋点上报等服务同时以子路径导出与懒加载机制控制首屏体积。阅读 frontend/packages/workflow/test-run/README.md 可快速了解接入方式而深入 src/ 各子目录则能掌握其表单引擎、日志解析与插件化架构的完整实现为在工作流场景中二次开发测试运行能力提供直接参考。【免费下载链接】coze-studioAn AI agent development platform with all-in-one visual tools, simplifying agent creation, debugging, and deployment like never before. Coze your way to AI Agent creation.项目地址: https://gitcode.com/GitHub_Trending/co/coze-studio创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考