用途:通过 jinko-sdk 完成 Jinkō 协议设计的机制性操作,用于设计或编辑多臂协议,比较剂量、给药方案、给药途径等。
主要能力与职责分离:模型负责定义治疗方案函数及其输入,包括方案参数化、剂量参数化、通过分类参数控制治疗激活/停用、通过分类参数控制给药途径或给药模式,以及解释这些输入的公式;协议仅按臂覆盖组件值,不同臂使用不同覆盖值。若所需覆盖键在模型中不存在,应先用 jk-model 在模型层添加组件或给药逻辑。
使用方式:有模型时优先使用 client.create_protocol_design(arms, model=model),并尽量将协议设计链接到模型以携带模型快照引用。覆盖键须指向协议可运行的模型输入,如 Dose 或 route;公式以字符串给出,例如 "1.0"、"iv"、"PT24H"。比较臂时需包含对照关系,用 armControl 标识对照臂。创建或更新项目项前需显式确认或脚本加 --apply。
项目文件夹规范:优先在专用 Jinkō 文件夹内创建协议设计,而非项目根目录;工作流开始时询问或提议文件夹名,如 YYYY-MM-DD-<experiment-name>;尽量复用精确匹配的已有文件夹 client.folders.get_by_name(name, exact_match_only=True);不存在时仅在用户确认或脚本带 --apply 时创建;解析出文件夹对象或 id 后,传给支持该参数的 SDK 创建调用。
附带资产与脚本:assets/toy_protocol_arms.json 含三个臂、两种途径和三个剂量,iv 途径在两个臂中重复;assets/protocol.json 为协议臂形状的 OpenAPI 模式子集。scripts/create_protocol_design.py 创建三臂协议设计,可选链接模型;scripts/edit_protocol_design_arms.py 替换已有协议设计的场景臂;scripts/inspect_protocol_design.py 打印协议内容或简洁臂摘要。示例命令:python skills/jk-protocol/scripts/create_protocol_design.py --model-sid cm-...;加 --apply;加 --folder 2026-06-15-regimens --create-folder --apply;python skills/jk-protocol/scripts/edit_protocol_design_arms.py --protocol-design-sid pd-... --arms skills/jk-protocol/assets/toy_protocol_arms.json --apply;python skills/jk-protocol/scripts/inspect_protocol_design.py --protocol-design-sid pd-... --summary。
臂形状:每个臂应包含 armName(稳定标识)、armOverrides({ "key": "<model-input-id>", "formula": "<arm-specific-value>" } 列表)、armIsActive(活动臂通常为 true)、armWeight(通常为 1,除非有意加权模拟用于校准)、armControl(对照臂为 null,或为被比较臂所对照的臂名)。默认玩具臂:iv_low_dose(Dose=1.0,route=iv,无对照臂)、po_mid_dose(Dose=2.0,route=po,受 iv_low_dose 对照)、iv_high_dose(Dose=3.0,route=iv,受 iv_low_dose 对照)。
参考路由:阅读 references/protocol-design.md 了解职责分离与 SDK 模式;验证臂负载形状时阅读 assets/protocol.json。
限制:资料未提供收费、价格、平台支持范围或效果数据;需显式确认或 --apply 才能创建或更新项目项;覆盖键必须对应模型输入,否则需先在模型层补充。