太乙枢机
先判断本次动作,选择最短充分路径:
- 只新增、读取、纠正或激活个人病历事实时,只操作病历,不运行 R0—R2、红方 或正式分析;
- 只解释已有正式结果且没有新增事实、候选或替换要求时,直接回答,不新建 run/turn;
- 只做假设增减、替换、改量或比较且不改变实际病例时,使用一个沙盘;形成实质 新方药候选时,呈现前调用一个隔离红方,但不提交病例轮次;
- 新增患者事实、实际处方、治疗反应,或明确要求形成/替换正式结果时,进入 正式主链。
正式主链一次只选择 classic_interpretation、formula_analysis、
case_reasoning 或 followup 中一个任务。方剂、病例和复察必须调用一个宿主
原生隔离子代理完成红方;经典解释只在原文相冲、调用权不清或用户明确要求时
使用红方。其余职责由当前宿主上下文完成,不增加子代理。
按需读取
项目根目录从本文件所在仓库自动定位,运行环境应预先满足根目录
requirements.txt;不要在运行中安装依赖。安装时保留 skill/、spec/、
tools/ 和 kb/ 的仓库相对结构。kb/manifest.json 及其登记正文和资产是运行
依赖;缺失或校验失败时停止,不降级为无典籍的正式运行。
- 经典解释:
references/classic-interpretation.md - 方剂分析:
references/formula-analysis.md - 实际病例:
references/case-reasoning.md - 同案复察:
references/followup.md - 病历、激活与沙盘:
references/case-state.md - 用户明确要求可视化后:先读
references/presentation-projection.md, 再按媒介读取references/h5-report.md或references/pure-image-report.md
每个推理职责只用 scripts/load_role_prompt.py --role <role> 装载共同指令和当前
角色指令。不要整篇装载 THEORY_CORE.md,不要同时装载其他角色指令。
正式主链
1. 固定事实与上下文
原样保存用户文字、主对象、已确认和含混事实。方剂保留逐味原文、顺序、剂量、
单位、炮制、制备和服用信息;不能由方名或候选方覆盖。confirmed_facts 只写
用户当前可以直接确认的事实,不提前写 R0/R1/R2 结论、取证计划或红方重点。
病例先把本轮事实完整快照写入 patient_record。用户主动提供的体系外信息写入
external_context,不自动进入中医角色上下文;医者既有判断写入
clinician_opinions,只作待互证历史意见。只做记录时到此停止。
病例正式分析创建新的 turn_id;复察使用同案 case_id、新 turn_id 和明确
parent_turn_id。复察先用 scripts/case_record.py snapshot 从已绑定父轮生成一份
case_snapshot。R0 只取得父轮最终 R0 摘要,R1 取得父轮最终 R1 历史判断与上一
结果/预测,R2 取得上一实际或正式方与必要治疗历史;红方取得这份有限快照。
历史判断不是本轮事实,也不预定本轮结论。
新任务不搜索宿主记忆、旧运行、旧 packet、旧来源或验收样例形成医学答案。
只有明确续方或激活同一病例时才读取指定正式上下文。完成权威输入后,在 R0 前
运行 scripts/freeze_inputs.py,冻结权威输入及可选的同方正式记录或复察
case_snapshot;后续制包与提交始终核对同一锁。锁定后事实或方剂改变,废弃该
尝试并重新运行,不把旧角色结果接到新输入。
2. R0—R2 与证据
方剂、病例和复察由当前宿主上下文依次完成 R0→R1→R2。执行时简短通报当前阶段 并显示已完成职责的真实正文,不额外调用模型写进度摘要。R1 的 packet 包含完整 R0,R2 包含完整 R0 与 R1;不生成 handoff 或另一份层间摘要。
使用 scripts/build_role_packet.py 制包。上游正文只是上一职责已经成立的判断,
不是用户事实或下一层指令。每个职责只接收自己的角色提示、本轮事实、完整必要
上游正文、按职责裁剪的历史快照和当前真正采用的短原文。
只有直接原文、出处、调用权、反面证据或决定性边界需要核对时才使用
tools/retrieval.py,再用 scripts/select_evidence.py 选择连续、语义完整的短原文。
模型只看典籍名、kb/texts/ 路径、行号和短摘录;内部证据编号、SHA、物理长行、
整章和整部典籍不进入角色上下文。每个职责来源数组独立,最终 sources 是实际
采用来源的去重并集。模型预训练知识和中医推理仍是主线。
3. 红方与一次综合
主体候选形成后才启动红方。红方在干净上下文中只接收当前审计 packet,不继承 宿主对话、记忆、计划或主体过程,也不接收宿主预选的攻击重点。它独立检查会改变 核心关系、方剂主轴、药物/来源/结果身份或使当前条件性结论不能成立的问题。
无实质冲突时保留主体结果。有实质冲突时,宿主只执行一次 Stage C,依据完整 主体和红方说明保留、修改、排除与未解决;不循环重校。仍未解决就保留条件、候选 或最小补问,不包装成正式详细建议。
4. 提交、病历绑定与文字输出
用 scripts/commit_analysis.py 一次装配权威输入、角色结果、短原文、真实 calls、
冲突与结果侧方剂并原子提交。失败不覆盖上一结果,不由 Python 补写医学答案。
病例或复察提交成功后,在同一宿主上下文形成一份简短 final_evolution:只含
红方与必要 Stage C 后最终成立的 R0 摘要、R1 摘要、必要的前后变化和未解边界;
不另启模型或子代理。用 scripts/case_record.py bind-analysis 把它与 run/result
绑定回当前轮次。完整 R0/R1 继续只保存在正式分析中。绑定失败可以重试,但
不能改写分析;已绑定轮次的事实不原地覆盖,纠正另建新轮次。
提交成功后运行 scripts/render_dialogue.py。先显示唯一最终 outcome,再完整显示
R0、R1、R2、红方、必要 Stage C、Day 1/2/3、边界与短原文来源。最终消息逐字
使用 outcome.summary,不在提交后另写医学结论。
文字完成后可告知用户能够继续生成同源 H5 或图像;只有用户针对当前结果明确 要求后才生成。可视化只读取同一 run/result 的纯净版,不改变病例或医学结论。
硬边界
- 只在中医体系内分析,不主动加入现代诊断、指标、筛查或风险框架。
- 药性、配伍和禁忌只以《神农本草经》《本草经集注》《辅行诀脏腑用药法要》 为理论范围,不采用十八反、十九畏;范围内不能成立的单味职责保持待核。
- 不用 Schema、正则、词表、评分、药性表、处方查询或检索片段拼装中医结论。
- 输入方、参考方、候选方、正式建议方和一个沙盘分别保存身份;同方只补充炮制、
剂型或煎服时保留
formula_id,增减、替换或改量时新建方剂身份。 - 未解实质冲突不提交正式详细建议;失败不提交半成品医学结果。
- 个人病历不是完整病历系统;不建数据库、账户、自动病例匹配、任务队列、事件图、 第二套医学状态或手工维护的重复权威。