使用界面与编排
CLI、TUI、MCP 如何进入系统,编排服务如何在模型运行前把用户意图编译为三个规划边界。
本层职责
TUI、CLI、Studio、Python、MCP 是操作同一系统的不同方式,都不承载模型推理或 benchmark 打分。它们的任务是把用户意图转换为执行层已理解的某一种 request 类型,并展示结果。本页覆盖 CLI/TUI、Studio 入口、MCP,以及把意图编译为可运行 plan 的编排服务。
request 产生之后落到哪里,先读 工作流。实际执行的 delegate runner 见 评测核心。
CLI 与 TUI
控制台入口是 worldfoundry/cli/main.py:1888 main()。它在 cli/main.py:1088 起构建子命令树:
tui—— 启动引导式发现 TUI。TUI 在cli/tui.py(main在:131),app、discovery、brand、icon 助手在cli/tui_*.py。它驱动与 CLI 相同的 catalog 与编排调用,只是展示,不是第二套 runtime。evaluate—— 归一化输入、选择 run mode、返回一个EvaluateRunResult。run—— 模型运行:解析 runner、生成、再打分。validate—— 不跑模型即校验 benchmark metadata 加载。embodied—— 具身评测子树(run、serve、merge、plan)。- 另有
zoo、preflight、dataset、tasks、reporting、model_run、plan_metric、mcp助手。
CLI 调度到编排服务,不直接 import pipeline 文件或算 metric。保持这一点,才能在不重新实现生成、artifact 物化或打分的前提下新增界面。
Studio 是交互式预览界面,安装入口是 worldfoundry/studio/cli.py:78 main()。它复用同一套 catalog 与 runtime 契约,不承载打分。内部结构见 Studio 内部。
MCP
MCP server 把 catalog、run 生命周期、metric、readiness 暴露为工具,让 agent 驱动同一工作流。它是复用同一套契约的薄壳,不含私有模型代码。
- 入口:
mcp/__init__.py:30main();server 构造在mcp/server.py(create_mcp_server:38、run_server:55)。 - 工具经
mcp/tools/registration.py:55register_tools注册,把每个 payload 绑定为@mcp.tool()。 - 工具 payload 按职责分组,而非按模型:
discovery(list/get model、benchmark、task)、runs(preview、evaluate、status、result、samples、cancel)、metrics(list、show)、readiness(benchmark dataset 检查)、studio(workspace 推理)、context(MCPToolContext)。
因为每个工具都经同一 catalog 与编排服务解析,MCP 驱动的 run 与 CLI 驱动的 run 产出相同的 artifact 与 scorecard。
编排服务
编排服务是界面与执行之间唯一的编译边界,位于 evaluation/tasks/execution/orchestration/service.py。它校验五个 intent dataclass 之一,返回执行层可运行的 PreparedEvaluation。
Intent
ModelBenchmarkIntentModelBenchmarkRunRequest(model + benchmark)首读
service.py:60ScoreArtifactsIntent为已有 artifact 打分
首读
service.py:85GenerateAndScoreIntent先生成再打分
首读
service.py:101ScoreResultsIntent为磁盘上的 result 打分
首读
service.py:125ReproduceIntent复现 recipe
首读
service.py:135
每个 intent 有对应的 _prepare_* 函数(service.py:414–:642)。公共入口是 prepare_evaluation(intent)(service.py:737)与 execute_prepared_evaluation(prepared)(service.py:753)。界面的职责是产出其中一个 intent,不得重复实现生成、调度或 metric 执行。
三个规划边界
WorldFoundry 保持三种规划类型相互独立。不要用第四种 recipe executor 包裹它们。
边界
PreparedEvaluation面向用户的编译结果:preflight 诊断、协议保真策略、由 generation/data/evaluation/runtime/reference 溯源推导出的 claim 等级。
首读
service.py:198RunPlan单个生成/评测 stage 的低层 plan;带指纹,保证可复现重跑与缓存复用。
首读
orchestration/plan.py:113EvaluateRunRequest/ModelBenchmarkRunRequestrunner 实际消费的 request 类型。
首读
orchestration/evaluate.py:41/orchestration/model_benchmark.py:64
调用方标志只能收窄 claim 等级,绝不能把诊断型 run 提升为官方 run。score_valid 记录 evaluator 是否产出可用分数;leaderboard_valid 另需可比溯源与 benchmark-runner 证据。claim 等级如何流入 scorecard 见 评测核心。