Imported from mikoto2464/erp-sandbox-agent (
AGENTS.md). Install upstream withnpx skills add mikoto2464/erp-sandbox-agent. Copyright stays with the author.
ERP 沙盘 Agent 项目约定
0. 当前交接:模型任务分配已实施,现有预设需显式配置档位
本节汇总当前状态;第 15 节较早的记录用于历史追溯,不能覆盖当前代码与本节说明。
最新反馈与本轮处理
-
2026-10-16:再次逐段核对赛道2平台规则与案例讲解,升级
solver-21。明确平台开关/不变参数、可迁移操作机制、案例数值/页面状态三层边界;不套用案例初始资金和人员,也不丢弃案例讲解的设计收费、特性研发、工资生效、分单与交付机制。公共指引与产销/资金/逐期机制分开装配,路线明确共享资源、图纸/特性、工资生效和付款交接。维修的周年进入与折旧的周年结束分别记录,真正冲突和正式覆盖分开处理。新增feature_researchDecimal 工具(erp-formulas-2),只按当前值至目标值差额计费,拒绝降级退款及不符单位,支持批次、来源、行动绑定及历史计算读取。详见docs/track2-rules.md。136项后端定向检查(含4项新回归)及修改模块Ruff检查通过;未调用真实模型、未改运行数据或预设、未部署/重启服务,完整仿真仍未实现,用户暂存规程保持。 -
2026-10-16:按失效工资引用反馈升级
solver-20。PlanningValidationError保留期间、行动说明、对象及字段等结构化诊断,分段不再把所有引用错误压成通用失败码。人工窗口用经营操作解释来源关联问题,明确无需查找/填写 fact 编号、无需补充文字即可选择“重新核对题目依据并修正”;受影响操作按真实年季列出,原始编号和候选只在诊断详情展开。已有一次定位修正按行动真实对象/名称有界补传最多12项当前事实,人工重试同样附实际记录,不从拼接或近似 ID 自动替换,也不因目录存在就标记已读;正常流程不新增请求。读取用户提供的赛道2规程后,增加打包的planning_platform.txt核对指引与各职责专项提示,覆盖关闭数智化/碳、竞单30%申报与报价区间、资格、招聘/季度工资、采购收货应付时点、预算基线和自动费用;区分通用条款、变动案例及内部冲突,未进入冻结来源的适用口径作为情景,不自动改题目。运行不依赖 sample 或原DOCX,不套用案例企业/初始资金/工资/报价。238项后端定向检查、17项前端交互检查、类型检查/构建及修改模块Ruff/格式检查通过,静态产物同步;未调用真实模型、未改运行数据/预设、未部署或重启服务。用户原先暂存的规程DOCX保持原文件和暂存状态,不纳入代码提交。 -
2026-10-16:按用户反馈升级
solver-19,统一现金单位与人工问题处理。新增纯 Pythondomain/money.py,用 Decimal 精确比较元/万元及明确人民币别名,保留原始金额/单位;费率、缺币种倍率及不同币种不猜换算,换算后仍检查限额,现金折叠不再漏掉可换算付款。公共/路线/分段提示词明确金额总额、单价和月费的单位边界。保留用户新增的project_handoff分批资料交接。规划/格式/额度等可处理错误在有界自动修正后,通过needs_input+ intervention 保存问题及具体行动/金额,Web 自动弹出选项与修正说明;可确认未计算且非共享行动的单位、仅重试问题任务,或取消;额度不足可显式开始新任务。暂停释放后台线程,当前任务响应仅在私有运行缓存中复用,不把未验证结果写成功缓存;人工等待不占执行时限,恢复不重置调用额度。答复校验问题 ID、选项、题目版本和输入修订,拒绝重复/过期答复;确认单位写入方案假设,仍完整校验来源、时序、现金和限额。关闭弹窗不答复,可在任务记录重开;服务重启后内存继续点不可用,明确标记需重试,避免孤立待答问题。234项后端定向检查、16项前端交互检查、类型检查/构建、修改模块 Ruff及前端格式检查通过,静态产物同步。未调用真实模型、未改运行数据/预设、未重启或部署服务,完整经营仿真仍未实现。 -
2026-10-15:修复
windows.1.references 选择的资料超过分段上下文容量。PlanningKnowledge.project_handoff保留22000字符初始投影,将未装入的选中完整记录补入最多24项/12000字符的reference_evidence,剩余 ID 留在待查清单交原有工具分批读取,不再将聚合超限立即判为生成失败。只将实际发送记录登记已读,未知/跨题引用及单条连查询也无法传输的资料继续拒绝;值、单位、状态、来源不截断,模型实际容量、五轮、调用额度、截止时间和一次定位修正保持。新增5项回归,73项相关后端检查及修改模块 Ruff 通过,含原生多查询→16期生成、缓存重放、隔离SQLite及Word重开。未调用真实模型、未修改运行数据/预设、未部署或重启服务,完整经营仿真仍未实现。 -
2026-10-15:系统审查方案生成并升级
solver-18。公共资料/工具契约与产销、资金、路线、分段提示词分开;planning_handoff.py统一实际发送来源、资料选择与计算交接。路线windows.references仅选择下游所需当前题目资料,由程序装入分段;共享行动仍要求实际读取来源,未知/跨题 ID 不放行。各段不继承上游或其它段的裸已读标记,修正只带本任务来源与计算。空表改为去重参数目录,详情可按工作表查询;待查 ID 清单纳入上下文容量,保留初始资金/费用,完整记录不截断。工具提交引用枚举随已读/待查目录刷新,计算结果和来源显式交接,可按 ID 查询,批次来源去重;multiply 支持显式月数×每月费用,不隐式换季/月;工具 Schema 直接给精确公式签名,错误列出缺少/多余参数,不再要求额外查询签名。新增 scenario 执行条件,空 gap 引用且有明确说明时保留为情景,不补造缺口或改 always;情景写入方案假设,情景融资/收款不能填平确定现金支出。行动条件可空字段在编译边界补 null;明确 payment 动作的 cost 标注归为 payment 纳入现金检查,历史快照不变。行动诊断汇总同轮各对象错误并给期间/key;已校验职责分析独立缓存,下游失败可复用。原生工具对话在同次有限接口重试内保留,不重查已完成资料或重置五轮/额度/截止时间。220项后端定向检查通过,包含隔离 HTTP、SQLite/Word、批量计算、分段并行、缓存与故障恢复;真实 API 联调与最终结果见docs/solver-review.md。未修改运行数据库/预设,未重启或部署服务,完整经营仿真仍未实现。 -
2026-10-15:修复“路线分段约束引用未读取资料”的上下文交接缺口。职责投影先装入显式引用的完整事实/规则/缺口及初始条件,再有界补充实体关联,避免大型实体整组省略时连带丢失所需字段;原值/单位/状态/来源不截断、不提升。路线引用诊断定位 windows.<段>.references 或共享行动并列出具体 ID;在已有一次修正中由
PlanningKnowledge.reference_batch按 ID 补入当前目录真实记录(最多24项/12000字符),只将实际发送记录登记为已读,不增加正常请求或修正轮数。未知/跨题/超大无法传输的引用仍失败,不因目录存在就视为已读。路线成功缓存累计保存前次工具及修正补取的真实访问记录,重放不再丢失依据。新增10项回归,164项后端定向检查和修改模块 Ruff 通过,含隔离应用原生工具上传→读题→修订→16期求解,引用补取后在八次求解请求内保存完成;未调用真实模型、未改运行数据或重启/部署服务,不保证所有现场语义问题均已消除。 -
2026-10-15:修复分段后沿用整流程 8 次额度导致第 5–8 期等分段被其它阶段耗尽调用的问题。新增
planning_budget.py:按已知分析/路线/分段/预算任务提前公平分配独立子额度,合计不超过求解总额度;子任务不可挤占兄弟额度,工具阶段预留最终提交及一次修正空间。新增ERP_SOLVER_MAX_MODEL_CALLS=32(1–256)控制整次求解,已有ERP_TASK_MAX_MODEL_CALLS=8保持读题等普通任务上限,同时作为规划子额度最大值;显式求解总额 8 仍严格遵守,低于必需提交数在模型调用前给出配置诊断。父子额度原子扣减,嵌套包装与工具往返只扣一次,总截止时间默认 900 秒不因分段重置;子额度耗尽显示子任务及总额度计数,调度记录同步。模型池快照冻结预算配置,不改用户模型预设或运行数据。新增 10 项回归,178 项后端定向检查及修改模块 Ruff 通过;复现两段修正需 9 次、四段批量计算/查询加两段修正需 17 次均成功,严格 8 次配置的隔离应用回归及调度/预设/恢复兼容通过。均为受控模型,未进行付费联调、未部署或重启现有服务,不能承诺真实任务不再触及有界额度。 -
2026-10-15:按用户要求将统筹明细拆为有界并行任务,升级
solver-17。超过 4 期先生成精简路线、跨段共享行动和分段支出约束,再按真实周期均衡拆成最多 4 段并行编制;16 期为四段、每段四期,最多四项并发,仍受模型职责/容量/共享端点额度限制。各段仅接所分配期间的 Schema、冻结路线和有界事实投影,不重复全周期明细或原职责分析;Python 合并,不再调用模型重抄全计划。跨段依赖只引用冻结 shared- 行动,局部 key 自动隔离;全局依赖/时序/经营期覆盖/现金及已配置分段支出限额整体校验。仅修正错误段的相关经营期一次,不能改其它期或共享承诺,仍受原任务调用/截止时间上限。payment/borrow/repay的 Schema 绑定 FinanceDetails;缺少可空 obligation_action_id 时补 null,错误业务字段仍定位修正,不猜 finance_entity_id。新增 15 项回归,144 项后端定向检查与修改模块 Ruff 通过;受控两个模型的四段实际并行,隔离 HTTP 的 16 期生成及 fee02 修正八次求解请求完成,SQLite/Word 重开兼容通过。未调用真实模型、未改运行数据、未重启或部署服务;完整经营仿真仍未实现,不保证真实提速或经营可行。 -
2026-10-15:修复职责分析有限修正丢失工具依据的问题,并支持连续分批计算。新增
erp_calculate_batch,每批最多 24 项、同一工具循环最多 96 项尝试;按数组顺序执行,可引用本批前项或前批计算,逐项返回结果/字段诊断,一项失败不取消其它成功项。完整成功批次可复用,部分失败批次允许重试;相同 ID/相同计算可复用,换参数覆盖仍拒绝。职责修正继承已读取引用及计算记录,计算 ID 归入calculation_ids并保留来源链;一次收集多字段诊断,仍失败显示职责、字段及具体引用,不静默丢弃约束。保持单次修正、五次模型往返、共享调用/截止时间、题目绑定与逐项取消检查。新增 16 项回归,129 项定向检查通过;隔离应用上传→读题→求解以受控原生工具响应完成两批计算及职责修正,总计六次求解模型请求,验证真实计算值进入保存行动。未调用真实模型、未修改运行数据、未部署或重启现有服务,不能据此保证现场成功率或实测提速。 -
2026-10-15:修复
solver-16工具绑定与循环退出缺口。原工具要求模型逐次抄写长 context_hash,漏填被误报为其它题目;现在工具/原生最终提交的模型 Schema 不再要求该字段,由服务端当前请求附加。显式错误绑定仍拒绝执行,只反馈字段修正,不切换目录或采纳错误题目结果。工具最多五次模型请求,最后一次仅开放最终提交;共享预算将尽、重复查询或混合提交时提前收束,并为其它职责、统筹与空表来源匹配预留调用。相同请求复用当前循环结果,参数错误给具体字段诊断;完整纯 JSON 仍经绑定及原有业务校验,未完成结果不能当成功。思考开启时不强制 named tool_choice、不改用户思考配置。新增 14 项回归,113 项定向检查及修改模块 Ruff 通过,包含原生 OpenAI SDK 受控请求和隔离应用 HTTP 上传→读题→求解,在既有 8 次预算内复现并恢复绑定误填/持续查询;未进行真实付费联调,未改运行数据、未重启或部署现有服务。 -
2026-10-15:按本轮明确要求重构新 Web 方案生成为
solver-16,入口application/planning_pipeline.py。产销资源/资金约束并行分析,统筹编制唯一逐期行动账本;Python 分配稳定 ID、期间和引用类别,一次修正只开放诊断相关经营期,修正后整体校验。planning_context.py冻结题目/规则版本、源文件哈希和规范内容,职责投影最多 22000 字符,完整查询目录只保存在服务端;按 ID/实体/类别/关键词分页补取,响应/工具/计算/缓存绑定 context_hash,不再自动注入 Solver 记忆文本。domain/calculations.py用 Decimal 实现第 6 节候选公式,LangChain 原生planning_lookup/erp_calculate工具支持按需查询/计算,最多五轮且每次往返计入共享调用与截止时间。公式的事实/前次计算/决策来源、单位、期间、情景及结果留痕,未知不补零,候选不自动变成正式规则。预算来源匹配和文档提纲在生成阶段冻结到Plan.preparation;后续预算阶段仅发布,Word/空表映射直接读取,无需模型配置。预算失败保留有效行动和明确失败工作表;历史方案及原 Solver 类保留兼容。完整仿真仍未实现,派生报表仍留空,真实质量/速度未经验证。已通过 158 项后端定向检查(新流程 22 项)、4 项前端任务检查、类型检查/构建和修改业务模块 Ruff,静态产物同步。详见docs/solver-review.md。工作区开工时已有多项用户修改及暂存样例,均保留;不修改运行数据、不付费联调、不部署/重启服务。 -
2026-10-15:修复方案生成“局部修复仍未通过”的类别误填错误。LLM 常把 fact ID 写进
rule_ids/gap_ids(或空missing_reason),导致整方案失败。新增确定性容错层domain/action_validation.normalize_plan/normalize_action/canonical_references:按题目目录把每个引用归位到它实际所属字段(fact/rule/gap 互移),不吞掉真正未知的引用(未知仍保留原字段交由校验/修复报错);空missing_reason补通用说明。在总协调最终方案解码与修复后、以及decode_specialist候选行动解码前统一调用,减少一次 LLM 修复往返。此层只做确定性归位,不新增模型请求、不改变提示词长度。 -
2026-10-15:按“无仿真引擎导致方案数值靠 LLM 猜、协作三角无共享账本、修复循环静默隔离关键约束、review 填满空期、预算只做 direct/sum 且会写派生报表”等缺陷分析,修正方案生成与数据输出的软校验缺口。
review不再计入经营期覆盖(action_validation.covered_business_periods,每期至少一个非 review 业务动作,缺失期修复同样按非 review 覆盖);DraftPlanEvaluator新增简单现金流折叠(validate_cash_flow,按期累计amount_meaning为现金收付且单位一致的动作,任一期余额为负即plan.cash_flow失败,初始现金未知或单位混杂则跳过,不伪精确);协作分析记录(recommendations/risks/dependencies)引用失效在本地补丁后仍不通过时直接失败,移除isolate_invalid_advice的静默隔离;预算阶段按工作表名/标签拒绝利润表、资产负债表、现金流量表等派生报表写值(budget.derived_statement),只保留输入参数。提示词同步,analysis_limits恒为空保留任务展示兼容。 -
2026-10-15:Solver 升级为
solver-15,修复正式缺口引用与模型自由生成 ID 的契约矛盾。solver_references.py将职责相关事实、规则、实体和题目已有缺口目录用于协作、统筹及受限补丁,按引用类型约束条件;枚举复用并删除补丁未用定义,Schema 只经请求边界传递一次。新发现的规划风险写说明与应对,不自建 gap ID、不改配无关缺口。一次修复后仍只有分析记录引用无效时,整条记录隔离为明确未验证的文字风险线索,保留有效行动交资金/统筹重新判断;隔离的角色结果不写成功缓存,任务记录分析限制。候选/最终行动的金额、来源、依赖、实体、结构和真实时序仍严格校验,传输/取消及调用预算保持,不额外增加正常请求。资金同时接有效产销风险与依赖分析,避免只见行动而丢失风险。84 项后端定向检查及修改 Solver 模块 Ruff 通过,含用户同类错误修复后重复、16 期统筹、独立 SQLite 保存与 Word 重开。仅受控模型响应,未进行真实模型联调、未部署/重启服务、未修改用户数据,不能承诺实际生成必定成功、真实提速或财务可行性。 -
2026-10-15:Solver 升级为
solver-14,生成阶段改为自主规划:总协调使用完整规范事实、订单池、空表参数需求及经营基调,自主选择产品/资源/时点/资金路线,不被局部候选限制。partial/missing_input 仅作内部分析限制,角色完成后继续统筹,不进入 needs_input、不向用户追加确认;已校验的分析可缓存,角色原始确认文字不再追加到正式方案。未知真实事实仍为未知,可用明确情景假设、仅使用拟新增资源及条件分支表达;不能补零或改为已发生事实。最终方案中显式请求用户确认/补充的文本进入一次有界改写,持续不合契约仍失败,不伪装成功。 -
2026-10-15:总输出新增按真实周期必填的 period_actions 分组,复用共享 Action 定义避免按期复制大 Schema;每一期至少有行动,Python 按期赋值并展开为原持久化契约,再校验依赖、实体、金额、期间及来源。检查 review 是当期操作,没有建设完成期/支付期,本次生成中规范为 null;业务动作的真实提前期/支付期继续严格校验,不更改历史快照。旧平面输出仍经原有有界修复,不能以未覆盖结果冒充成功。Vue 显示“已完成职责分析,统筹自主规划”,不把规划分析限制变成待补步骤。72 项后端定向检查(含四种基调、漏期/空期、真实业务时间/来源及确认文字改写)、1 项前端任务展示检查、TypeScript/构建和修改 Solver 模块 Ruff 检查通过,静态产物同步。未进行真实模型联调、未部署/重启服务,不能承诺真实模型质量或经营可行性。
-
2026-10-15:Solver 专项修复升级为
solver-13。协作与总协调的定位补丁 Schema 只返回开放字段,Python 与原对象合并后整体校验;旧完整 replacement 仍可读取,但不允许改变未开放 condition、来源、金额、ID 或依赖。修复同一风险/建议只报告首个错误,以及某个行动结构错误导致其他行动语义校验全部跳过的问题;结构失败对象仍检查条件/来源,诊断保持原数组索引,动作类型修复同时开放专属 details。资金新增行动及其事实进入总协调正式上下文。修复/重试次数、原模型粘性、共享额度和截止时间保持,未增加正常流程请求。 -
2026-10-15:规划空表只传已核对的参数标签、单位、期间、说明及显式工作表依赖,重复范围合并;同一需求直接传入产销/资金/模板需求/统筹,不携带原格、公式或填表坐标。行动提交容量检查也只检查参数需求,预算阶段仍使用原模板/范围并保护公式和既有值。提示词补齐采购 details 和 condition 完整契约,按战略取舍、关键时点、逐期四线操作和收官组织,参考 DOCX 只用于组织方式,不引用其中的订单、价格或融资结论。66 项后端定向检查及修改的 Solver/契约模块 Ruff 检查通过。用隔离临时数据、临时本地端口和受控模型响应测试用户给出的
0915赛题.docx/0915浙江日赛最新详单.xls:上传→读取→求解→Word 下载通过,70 行仍为待竞订单池、16 期覆盖、一次字段补丁保留条件、DOCX 21 张表,测试服务已关闭。未调用付费接口、未部署或干扰原服务,不代表真实策略质量、提速或财务/履约可行性已验证。 -
2026-10-15:读题升级为
reader-17,修复订单整行detail与表头序列的来源误报。联合提取新增table_mappings,模型只映射逐行 BOM/需求/订单表的类别、范围、列含义与表头,Python 从原格展开规范字段,保留编号文本、逐行实体及证据,仅执行已声明的有限单位转换;空格保持未知,显式纵向合并只继承真实锚点,复杂布局继续逐字段提取。拒绝越界、错误表头、漏列、重叠与重复提取。历史拼接文字仅在引用同表同行、实际列序及逐格原值完全对应时支持;表头序列允许省略有限单位后缀,不改金额/数量校验。已有工作流仅恢复与原提取一致且无其他争议的字段,用户修改和快照保持。只读回放本地题目,72 项来源错误降至 1 项,剩余output_bonus把“无”写成 0,需核对,未修改运行数据。 -
2026-10-15:减少读题尾部等待。较大章节/整表先开始,拆分片段及最终合并保持原文顺序;关联复核按实体组织,消除逐字段重复关联,仅对实际跨任务关系或争议请求,独立范围复用现有 Reader 并发(最多 4)和共享模型额度,修复/异常拆分共享调用边界。只读记录显示本地仍为三个 general 预设,terra 优先级 90、flash 85;没有自动修改档位或优先级,轻量分配需用户显式保存。77 项后端定向检查(含两个隔离 HTTP 兼容检查)及修改读题模块 Ruff 检查通过;未调用真实模型,不能承诺真实提速或下一次语义提取质量。
-
2026-10-15:修复“局部修复仍未通过:行动必须覆盖每一期”的补丁范围缺口。
solver-12的总协调在一次受限修复中可补充替换后仍缺失的经营期,包括日期修复造成的新空期;替换与补充合计最多 24 项。既有行动 ID、未开放字段及相对顺序保持,新增行动继续整体校验;周期诊断给出具体漏期和越界行动。 -
2026-10-15:完成 Solver 重构后专项审查与修复,版本
solver-11。修复模板需求误归 coordinator、局部修复缺失前置完成期/引用事实、一次只处理首个错误、模板/输入组被用作实体、资金/总协调丢弃显式引用的订单事实,以及协作风险条件结构校验遗漏。详见第 8、15 节;未经真实模型验证,不保证下一次生成必定成功。 -
2026-10-15:处理方案生成因“缺少竞单目标/已签合同,无法形成唯一资源路线”而整体失败。
solver-10明确经营草稿与候选决策边界,产销可按已知约束与经营基调选目标;初始存量、准入、用料关系等真实未知仍保持未知,不自动当零或已具备。协作新增有引用、非空的partial,继续资金/统筹且保留缺口;空missing_input在原任务内复核一次,仍无依据则停止。见第 8、15 节。 -
用户反馈简单任务集中到高优先级模型、等待较长。已实现可配置的确定性轻重任务分配,不硬编码供应商、模型名或预设 ID,不增加普通任务的模型分配请求。
-
模型设置新增
task_tier(light/general/strong)与task_roles(空列表表示职责不限)。旧预设缺少字段时保持通用档位;加载已有 schema 3 不写回文件,用户主动保存后使用 schema 4。没有修改用户运行目录中的模型预设、数据库或密钥。 -
要使用户已有轻量模型优先承接简单任务,仍须在前端将相应预设设为“轻量”并勾选参与协作;经营推理预设可设为“复杂”。 未指定档位的池继续按旧优先级兼容,不从名称或自由文本能力说明猜测能力。当前预设始终入池,但仍受职责/档位适用性约束。
-
调度实现轮次未读取用户实际配置;后续已只读核对本地档位、参与开关、优先级和任务选择记录。受控检查证明调度行为,不证明真实接口质量、超时已消除或实测提速,不能据此宣称所有现场原因已确认。
当前调度规则与入口
所有后端路径均相对于 src/erp_agent/。
| 位置 | 当前行为 |
|---|---|
application/task_suitability.py |
本地按职责、完整请求规模、结构化冲突和任务依赖分级。普通章节/整表、来源映射、报告整理在轻量阈值内为 simple;关联复核、工作表输入依赖及较大输入为 moderate;产销、资金、全周期统筹、来源冲突及超大输入为 complex。 |
application/model_scheduler.py |
simple 按 light/general/strong,moderate 按 general/strong,complex 按 strong/general 排候选;同档位按用户优先级。环境职责集合与预设职责取交集,再校验实际字符与 SDK Token/输出预留容量,按预设/共享端点额度选择可用候选。轻量不承接中等或复杂任务。 |
adapters/model_settings.py |
冻结入池模型、档位、职责和分级阈值到任务配置及缓存指纹。旧设置兼容,显式保存才加入新档位/职责;没有自动猜测或改写旧配置。 |
config.py、.env.example |
默认 direct;保留 ERP_MODEL_ROLE_CANDIDATES。新增 ERP_TASK_SIMPLE_MAX_CHARS=32000、ERP_TASK_MODERATE_MAX_CHARS=64000,按完整请求(提示词、输入、Schema)分级,不按行数拆表。 |
web/src/components/ModelSettings.vue |
可管理档位和职责;能力说明仅供可选 agent 策略参考。 |
application/model_dispatch.py |
可选 agent 策略仍可统筹分配,目录与执行均受职责、档位和容量约束。版本 dispatcher-7-role-scope。 |
application/model_scheduler.py、web/src/components/TaskDrawer.vue |
显示“本地规则分级”、判定依据、候选排除原因以及等待/选择时的共享额度。区分未开放职责、档位不适用、字符容量、Token/输出预留容量及额度占满。 |
优先候选容量不足或额度占满可使用后续适用候选;所有适用候选占满则等待,无适用档位/职责返回配置诊断,不以拆表绕过适配限制。格式修复仍沿用原模型,修复输入增加不单凭分级换模型;超过原模型实际容量则明确失败。有限重试/候选切换、取消、在途额度释放及任务级调用/截止时间边界保持。真实完整 ERP 仿真、答疑与跨进程额度仍是后续缺口,不属于本轮模型调度修复。
已完成的实现边界
本轮开始时业务代码提交为 6c6e760(署名 mikoto2464),上一提交为 515fb27;本轮引用契约与分析隔离修改仅提交本地,具体提交见 Git 记录。
- 调度默认直接执行,主 Agent 分配为可选
agent策略;同供应商端点别名共享额度,在途请求真正结束后释放。修复沿用原模型,临时故障有限重试及一次候选切换;调度、修复、重试、截断扩容和拆分共享调用/截止时间;普通任务默认 8 次、900 秒。新规划任务按子额度执行,整次求解默认 32 次总额、同一 900 秒截止时间,不因分段重置。 - Action schema 2 有稳定
action_id、有限动作类型、类型专属 details、金额/数量单位及含义、前置依赖、条件、来源与已知完成/支付期。旧快照只经application/codec.py、contracts.py兼容,不从文字推测事实;domain/action_validation.py给出定位诊断,受限补丁后整体校验。 - Solver 的产销与模板需求可独立并行,资金必须等待本轮候选行动;总协调处理冲突并生成全周期行动。入口为
application/solver.py、solver_collaboration.py、solver_context.py,当前版本solver-15。 - 行动方案先保存为不可变结果;预算自动作为独立任务继续,Word 报告由输出页单独发起。
application/solution_stages.py、workflow.py、answerer.py与adapters/jobs.py、persistence.py保存独立阶段及成功边界,绑定方案 ID、题目版本、行动/模板哈希和阶段 attempt_id。失败/取消不隐藏行动方案,旧响应不覆盖新阶段。 - 预算由
application/solver_budget.py、budget_context.py、budget_execution.py、budget_codec.py与domain/budget.py实现:LLM 返回输入组/范围到业务来源的映射,Python 展开并用 Decimal 计算,缺口合并记录影响格;独立表最多两项并行,显式depends_on_sheets按 DAG 执行,展示公式不制造依赖。命名计算仅实现 direct/sum 及有限单位转换,未实现关系保持空白。 - Mapper 复用已核对模板和预算来源,不再解析空表;公式、已有数据、隐藏/保护格和合并续格保护不变。报告版本
answerer-2,战略时点与执行风险角色最多两项并行,引用行动 ID,由 Python 插入数值。 - 记忆继续使用 SQLite/LangGraph 成功缓存、精确 ID/实体查询及 BM25 补充检索;项目、题目版本、方案和任务对象隔离,已传事实去重,进程索引 LRU 上限 24 份/8 MB。不增加向量库或 Embedding 服务。
- Vue 已显示独立阶段、结构化行动和去重预算缺口,轮询保留历史方案选择及未提交修改文本。静态构建产物随代码提交到
src/erp_agent/api/static/。 - 通用 ERP 经营仿真、任意规则计算、正式方案答疑和跨进程模型额度协调尚未实现。结果保持草稿标记,不宣称资金、履约、财务或最优策略已验证。
工作区、验证与继续工作约束
- 本轮开始时,工作区只有用户原先暂存的
sample/topic/板栗2.0.xlsx;保持文件及暂存状态,不纳入本轮代码提交或后续无关提交。提交使用现有 Git 署名,仅提交任务文件。 - 上一轮通过 89 项后端定向检查、10 项 HTTP/恢复检查、19 项前端交互检查,以及 TypeScript 检查、构建和修改前端格式检查。受控检查证明调度/依赖/来源/保存边界,不证明真实接口质量或提速。本轮 51 项后端定向检查、17 项前端交互检查通过,类型检查/构建及修改业务模块 Ruff 检查通过;本轮未运行真实模型任务。
- 调度修改优先使用
tests/test_direct_scheduling.py、test_model_scheduling.py、test_output_scheduling.py的受控模型,新增必要用例验证简单任务使用适用轻量候选、复杂任务保留强候选、容量不足升级、共享额度、修复粘性与旧配置兼容。依赖、预算、恢复相关回归按需选test_solver_dependency_flow.py、test_budget_execution.py、test_solution_stages.py,避免无意义全量重复测试。 - Python 检查使用
.venv/bin/python -m unittest ...;前端修改后运行定向 Vitest 和npm --prefix web run build(包含类型检查),同步静态产物。现有仓库仍有历史 Ruff 告警,不能泛称全仓 lint 已通过。 - 不新增评估集、性能基线、A/B 或基准平台;不进行付费联调,不开启真实任务,不部署,不重启或干扰正在运行的服务。此前云端记录为
7ab4d73,本地3617ff7未部署;云端当前状态本次没有连接核验。 - 默认数据目录
.erp-data/中的模型预设、数据库和访问密钥不应输出或改写。尤其不要为排查随手实例化指向运行数据库的SQLiteRepository:其初始化会把未完成任务标记为服务重启失败;只用隔离临时数据库做检查。
1. 项目目标与当前阶段
使用 Python 构建通过 Web 交互的 ERP 沙盘辅助决策系统。用户上传 DOCX/DOC/PDF 赛题、XLS/XLSX 订单资料、补充规则,也可手动输入题目与限制,可上传 XLSX 空白预算表;系统提取规则与数据、协作生成经营方案、导出 DOCX 方案和填好的 Excel,并提供围绕方案的对话答疑。
当前已开始第一阶段实现。本文是后续实现的依据,完整仿真和答疑尚未实现,方案文档与预算表已支持草稿导出,当前能力见第 15 节与 README。pyproject.toml 要求 Python >= 3.11,main.py 为开发启动入口;后续调整前先检查工作区现有改动,保留用户的文件和修改。
核心约束:
sample/只存开发样例,部署和运行时可以完全不存在。运行代码、默认配置、启动流程均不得依赖该目录或任何样例绝对路径。- 题目内容、产品名称、市场、经营年数、季度数、表格版式和规则均可变化,不得写死为当前样例。用户已授权经营周期默认 4 年、每年 4 季(共 16 期),无需人工确认;题目明确规定或用户修改时采用对应周期,默认值不覆盖真实冲突。
- AI 请求只在服务端发起,浏览器不得持有模型供应商密钥。
- 仅在用户明确要求部署时更新服务器,日常修改只提交本地 Git。生产服务监听默认
0.0.0.0:8000,转发由用户自行管理;部署不得覆盖其他站点或上传样例、SSH 凭据。开发项目数据默认不上传;用户明确要求同步时,先用 SQLite backup API 制作一致快照、备份云端数据,再同步数据库及服务端模型预设,保留云端访问密钥。 - 读题、求解、解答、文档解析、模型接口、仿真器、存储和表格映射可分别替换。
- LLM 负责语义理解、策略提议、模板理解和解释;确定性 Python 内核负责业务计算、状态转移、可行性检查和财务对账。
- 所有产物与答疑引用同一个带版本的已验证求解结果。LLM 不得另编金额、产量、得分或表格数值。
- 求解统一采用多角色 LLM 协作生成,已移除蒙特卡罗及策略切换;未经仿真的结果保持草稿标记,不宣称最优或已验证经营可行。
- 未知值不等于零;规则冲突、缺失、推测和已确认事实必须明确区分,并保留来源。
- 优先采用模块化单体和必要的接口,按实际需求扩展,避免提前引入微服务、通用插件平台或复杂 Agent 框架。
2. 三个业务角色与公共内核
角色是应用层职责,可以由流程、工具和 LLM 调用共同实现,不要求三个独立模型、进程或自主 Agent。各角色可配置不同模型和提示词,也可使用同一供应商。
| 角色 | 输入 | 职责 | 结构化输出 |
|---|---|---|---|
读题 Reader |
原始文件、补充规则、用户修正 | 提取段落和表格,合并拆表,识别实体、单位、时间、公式和限制,登记证据与疑点 | ProblemSpec、RuleSet、ValidationReport |
解题 Solver |
已校验题目、规则快照、已核对空表与用户经营要求 | 产销资源、资金风险与模板预算角色协作,总协调汇总逐期方案;共用确定性校验与仿真契约 | SolutionBundle,含计划、轨迹、账本、指标、风险和协作记录 |
解答 Answerer |
求解结果、证据、已核对模板、对话上下文 | 协作组织方案与执行说明,复用空表解读并映射已有方案数据,回答问题 | ReportData、WorkbookMapping、ArtifactManifest、有依据的答复 |
公共组件不另设自由推理的业务角色:
RuleEngine/Simulator:执行规则和状态转移,是计算结果的唯一权威。Validator:检查结构、单位、引用、时序、可行性、账目和产物一致性。WorkflowService:编排阶段、维护版本、处理澄清、任务取消、重试和恢复。ReviewService:独立复核语义与证据,检查读题遗漏、规则误解、策略理由和报告/表格映射是否与事实相符;返回问题和修改建议,不修改正式数据或代替仿真计算。LLMClient:封装模型调用、结构化输出、工具调用、用量和错误,角色代码不依赖具体 SDK。
三个业务角色覆盖产品职责,内部步骤可分别替换。Reader 以资料解析、规范化提取、确定性合并和必要的关联复核为主;每个大章节或工作表在输入上限内作为一个任务,一次提取参数与规则,避免为普通格式化逐项拆角色或重复请求。读题初次默认按职责候选、用户优先级和实时额度由 Python 直接安排章节/整表;主 Agent 分配仅为可选策略;不按固定行数拆普通表格,仅实际输入超限或调用异常时拆小,跨任务关联及已有歧义才追加复核;独立参数/规则提取器保留为可替换实现,不作为默认两轮调用。资料切分复用 LangChain 与原表结构,各角色通过项目/版本隔离的共享记忆端口对齐。Solver 包括协作规划、计划汇总及确定性校验与仿真;Answerer 将报告组织、模板映射、文件渲染和答疑分开实现。
WorkflowService 用明确的状态机和错误分类决定下一步。Validator 每个阶段必经,ReviewService 在规则/单位有歧义、新模板、关键策略或产物涉及较大修改时按配置启用;可采用单独的 LLM 请求,结合原始证据检查,不依赖角色的自我评价。复核通过也不代表数值计算正确,仍须经过确定性校验。复核产生的争议必须保留证据,不将复核模型的猜测提升为事实。
Solver 保留产销资源、资金风险与按需模板预算职责;按用户最新要求,统筹在冻结跨段承诺后把逐期明细拆为连续期间任务,最多四段并行,不为每个产品、季度或参数扩充自主角色。领域对象继续作为规范数据、约束和工具供 Solver 使用。只有评估证明某个步骤持续成为瓶颈、需要独立上下文或工具权限时,再拆出新的专门角色;角色数量不是效果指标。
3. 模块边界与建议结构
采用端口与适配器结构;不必一次创建全部目录,随实际功能建立。
src/erp_agent/
domain/
models/ # 题目、规则、状态、行动、账本和结果
rules/ # 公式、取整和业务规则
simulation/ # 确定性事件与状态转移
validation/ # 领域约束和一致性检查
application/
ports/ # Protocol 接口,不含供应商实现
reader/ # 读题用例
solver/ # 协作规划与方案汇总
answerer/ # 报告、填表和问答用例
review/ # 语义与证据复核
workflow/ # 任务状态机与阶段衔接
adapters/
documents/ # DOCX、DOC 转换、可选 OCR
llm/ # 不同模型供应商和自定义接口
artifacts/ # DOCX、XLSX 分析、写入与重算
persistence/ # 数据库、文件或对象存储
jobs/ # 后台任务执行器
api/ # Web API、流式事件、依赖组装
prompts/ # 按角色维护的有版本提示词
config.py # 配置模型与加载
tests/
unit/
integration/
fixtures/ # 独立受控的测试材料
web/ # Vue 3、TypeScript、Vue Router、Vite
src/components/ # 共享控件、弹窗、证据预览
src/composables/ # 项目状态、后台任务、模型预设与通知
src/lib/ # API 类型、路由、来源与复核规则
src/views/ # 项目页面和各步骤
依赖方向为 api/adapters -> application -> domain;应用层通过 ports 调用外部能力,领域层只依赖纯 Python 领域类型与必要的数值工具。领域代码不导入 Web 框架、文档解析器、LLM SDK、数据库或全局配置。
建议通过有类型的 Protocol 定义下列能力:
DocumentParser.parse(source) -> ParsedDocumentLLMClient.generate(request) -> LLMResponseReader.read(documents, overrides) -> ReadingResultStrategyGenerator.propose(problem, rules, state, constraints) -> StrategySetSimulator.run(problem, rules, state, policy, scenario) -> SimulationResultTemplateAnalyzer.analyze(template) -> WorkbookSchemaWorkbookMapper.map(schema, solution) -> WorkbookMappingArtifactRenderer.render(render_request) -> ArtifactManifestReportComposer.compose(report, llm, control) -> ReportOutline:可替换的报告组织,引用当前结果,不修改经营计划。AnswerService.answer(question, solution_context) -> AnswerResultReviewService.review(review_request) -> ReviewResultRepository、FileStore、JobRunner封装持久化、文件访问和任务执行。
组合根根据配置注入实现。接口输入输出使用具名类型,避免把 dict[str, Any] 当作贯穿系统的业务协议。优先用不可变 dataclass 表达领域对象,Pydantic 校验 API、文件和 LLM 边界;两者的转换集中处理。
默认技术方向:Python >= 3.11、FastAPI、Pydantic、python-docx、openpyxl;NumPy 可用于批量数值计算,金额仍遵守精确计算规则。DOC 转换和 Excel 重算可用可替换的 LibreOffice 适配器。数据库和后台执行器先选满足实际部署规模的方案,接口保留升级空间。未实现的依赖不提前加入项目。
首版服务端采用标准库 HTTP/OOXML/结构化边界适配器与 SQLite,前端采用 Vue 3 + TypeScript、Vue Router 和 Vite。按用户明确要求,模型层已迁移为 LangChain 及 OpenAI、Anthropic、Google GenAI、Ollama 集成包,依赖统一声明在 pyproject.toml,不再维护手写 HTTP 协议。业务流程与领域模型保持独立,当前使用 LangGraph SQLite 检查点提供任务及共享记忆,无需自主 Agent 图;后续引入图需有具体流程需求。后端测试使用 unittest,前端关键交互使用 Vitest;模型 SDK 使用受控响应,不依赖外网或真实密钥。
4. 规范数据模型与版本
规范模型使用稳定内部 ID,展示名称保留原文;金额、效率、时间和数量携带明确单位。字段名称可随实现细化,但必须覆盖以下信息。
| 模型 | 必备内容 |
|---|---|
SourceDocument / ParsedDocument |
文件 ID、哈希、原始名称、解析器版本;按原顺序排列的段落、表格、图片与来源位置 |
EvidenceRef / FieldProvenance |
文档 ID、段落/表格/行列定位、原文、规范字段路径、转换过程和上游引用;页码仅在可靠获取时记录 |
ProblemSpec |
经营周期、货币及单位、初始条件、认证、市场、产品、BOM、材料、产线、人力、培训、激励、班次、融资、贴现、销售需求、碳排放、数智化与预算控制配置 |
RuleSet |
规则 ID 和版本、公式标识、参数、适用范围、动作前置条件、事件顺序、付款和确认时点、取整政策、来源与确认状态 |
DemandForecast / OrderContract |
分开表示市场调研需求和实际合同;市场、产品、特性、时间、数量、价格口径、资质要求、交付期限、账期和违约规则 |
InitialState / SimulationState |
时点、现金、应收应付、债务、库存、在制品、产线状态、员工资历/工资/效率、研发与资质进度、商誉、市场份额、碳和建设进度 |
Action / Policy |
时点、动作类型、实体、数量/金额、前置条件;固定计划或根据当时可观测状态决策的策略 |
LedgerEntry / PeriodResult |
业务事件、现金流、借贷分录、库存和成本变动、季度/年度报表、关键指标及规则引用 |
SolutionBundle |
问题/规则/状态版本、策略、逐期动作与轨迹、账本、评分分解、情景结果、可行性、风险、备选方案和协作任务元数据 |
WorkbookSchema / WorkbookMapping |
工作表、区域、表头层级、期间、单位、公式、合并格、保护;目标格与规范指标/动作字段映射、来源和歧义 |
ValidationIssue / ValidationReport |
字段或规则位置、严重度、问题、证据、影响范围、候选解释和解决状态 |
ReviewRequest / ReviewResult |
被复核的输入/规则/方案/映射版本、相关原始证据、待检查事项;可定位发现、严重度、证据、建议与处理责任 |
ReportOutline / ReportNote |
战略、时点、风险说明;当前行动/参数/规则/预算引用、适用时点、触发条件和应对,不生成独立经营数值 |
ArtifactManifest / ConversationContext |
产物 ID、格式、哈希、校验结果、求解版本;对话所绑定的版本、引用和显式修改请求 |
数据约定:
- 融资/贴现资料同时给出期限与利率/贴息且无明确其他口径时,用户授权默认按对应完整期限总利率处理;
interest_rate_basis/discount_rate_basis以term_total、assumed和用户默认说明记录,同实体关联期限与原文利率。明确年/季利率等规定优先,默认不覆盖冲突;付款频率不等于利率周期,不猜分摊或复利算法。 - 使用
Decimal处理金额、报价、利率和需要精确取整的公式;百分数规范为比例,例如50% -> Decimal('0.5')。数量按业务规则使用整数,金额精度由规则指定。 - 季度和月份明确转换,例如一季三个月;周期优先采用题目明确值或用户修正。未提供的经营年数、每年期数分别默认 4,来源标为系统默认,保留
assumed及说明,无需人工确认;无效值、重复字段和真实冲突仍须处理。 - 表格中的“无”、空白、百分数、零值分别解析,不作全局等价替换。人员类别映射和名称别名需有证据,不能默认“初级技工”一定等于公式中的“手工工人”。
- 每个输入事实和规则都关联字段来源;推导值关联依赖字段与公式。证据可放在独立来源索引中,避免污染仿真器的数值类型。
- 状态区分
known、assumed、conflicted、missing;LLM 的置信度仅用于安排复核,不能替代校验。 - 用
schema_version管理数据契约;题目、规则、模板映射、方案分别版本化。运行还记录代码/提示词/供应商/模型版本、协作角色配置与仿真参数。 - 修正生成新快照,明确旧方案的适用版本;更换输出模板可以重新渲染,无需重跑求解。哈希和缓存键包含输入、规则、模型/提示词及相关配置。
5. 读题流程与规则澄清
- 接收多文件输入,辨别赛题、补充规则、市场调研、实际订单、初始状态和输出模板。保留原文件和哈希,不把历史解答当作题目事实来源。
- 先用确定性解析器提取文档结构,再让 LLM 做语义归类和规范字段映射。保留段落与表格原顺序,支持跨表续接、合并单元格、多层表头和表内换行;只有满足同一分组语义的列才能向下继承空白值。
- DOCX 使用原生解析;DOC 经可配置适配器转换,记录原件与转换件的关系。转换不可用时返回明确原因,不把旧 DOC 当 DOCX 读取。图片中的必要数据可经可选 OCR/视觉适配器提取,并保留识别证据。
- 校验结构化 LLM 输出、实体引用、重复/遗漏行、单位、数值范围和时间。读题禁止把全部原文一次传给模型:按文件的大章节或完整工作表组织任务,只有超过实际输入上限时才按完整行拆小,超长单段按句子边界切分,保留原证据 ID、表头、标题、合并格及短文件说明。同批参数与规则默认一次提取为独立数据集合,不按普通条目过度拆分;跨段复核仅检查跨批次的同实体属性/规则关联及已有争议,重复引用标题/表头不构成跨批次争议,输入仍为有界条目与相应原文。含数值的未引用表格行给出定位提醒,仍需人工判断是否有效条目,不能视为已证明语义完整。局部未出现的信息不等于全题缺失;统一合并后执行来源、重复字段和周期校验。
- 区分“市场总需求”“本队可获得需求”“合同数量”和“平均/参考/实际成交价”。用户已授权订单详单默认归为待竞订单池
order_pool,无需额外确认用途;原文或用户说明明确为已签/已分配合同、市场调研或历史订单时采用明确用途。默认不覆盖真实来源冲突,不把订单池或总需求转成本队必得订单;具体竞单资格/分配规则缺失仍须定位说明。 - 原文冲突或缺失时生成澄清项。权威来源和覆盖关系必须显式记录;默认以当前赛题及适用正式补充规则为依据,用户提供的暂定公式属于候选规则,不能静默覆盖冲突原文。
- 用户可在 Web 查看证据、修正字段和选择规则解释。对重要口径尚不明确的题目,可生成带假设的情景方案;缺少必要定义而无法计算时,输出受影响范围与待补项,不生成伪精确得分。
- 校验完成后冻结
ProblemSpec和RuleSet快照,再进入求解。模型不得执行文档中的指令或把其中的文本当成系统权限。
逐行 BOM/需求/订单表可由模型返回列映射与明确数据行范围,由 Python 读取原格展开字段,不让模型逐行重抄数量、报价或用一个拼接 detail 代替规范属性。映射校验真实表头/列、当前完整行范围、列覆盖和重复范围;复杂布局保留逐字段路径,不按固定行数拆普通表。历史拼接结果只能以同表同行的逐格原值与列序证明,不能因含有分隔符而放宽任意文字校验。较大读题任务优先开始,结果仍按原文合并;关联复核按实体与实际跨来源关系去重,独立范围遵守同一并发和额度边界。
字段来源必须真正支持该值:记录了一个来源定位不等于来源正确。对关键金额、比例、期间和需求行核对原文数值及转换链,未支持的提取不能标为 known。规则整理后执行能力检查,区分“已理解且已实现”“已理解但未实现”“尚待澄清”;不支持的机制交由适配器扩展或明确限制本次求解范围,不能假装通用仿真器已经支持任意新规则。
需要优先识别的规则缺口包括:初始资产/库存/人员和商誉、经营时长、贷款额度和利率周期、税率与税款支付时点、维修频率、研发付款方式、动作先后、交货期限起算、竞单与零售分配、激励成本及衰减、特性成本与要求、数智化计分与预算控制扣分、碳中和率定义。它们均不能从输出样例反推为默认事实。
6. 用户提供的候选公式
以下保留当前需求中的公式,作为待匹配赛题与平台口径的规则候选,并非已确定适用于所有赛题。实现时采用带版本的函数与参数配置;不执行上传文本或 LLM 生成的任意 Python,不直接 eval 公式。需要动态表达式时使用受限 AST/DSL 和允许的运算符。
| 项目 | 候选规则 |
|---|---|
| 最终得分 | Z = (所有者权益 + 数智化建设费用 × 10 - 预算控制使用率扣分) × 商誉 × (1 + 本年碳中和率 + 上年碳中和率) |
| 竞单指数 | Y = 广告费 + 市场占有率 × 商誉 × (参考价 - 报价) + 1000 × 特性研发值;市场占有率初始值暂定为 1 |
| 实际产量 | floor(基础产能 × (1 + 手工工人效率之和 / 4 + 高级技工效率之和) × 班次加成) |
| 计件工资 | 实际产量 × (手工工人单件工资 × 人数 + 高级技工单件工资 × 人数) |
| 开产费 | 实际产量 × 产品规则中的单件开产费;与计件工资一起在开产时支付 |
| 在制品成本 | 原材料成本 + 参与该批次工人的月薪合计 × 生产周期月数 + 计件工资 + 开产费;2 季生产周期对应 6 个月 |
| 解雇赔偿 | (N + 1) × 月薪,N = ceil(入职至解雇的在职年数),不满一年按一年处理 |
| 折旧 | 年度折旧 = (原值 - 残值) / 折旧年限 |
| 会员指数 | floor(广告热度 × 引流参数 × 商誉 × 0.01) |
| 零售指数 | 会员指数 × (单价承受能力 - 报价) × 0.01;供给超过需求时各队按比例分配 |
| 碳排放量 | 产品数量 × 产品单位排放量 + 生产线单次排放量 × 生产次数,按产品/产线分别累加 |
| 第三年起各队的碳指标 | A × (1 - Ax / A) / (N - 1);A 为参照期全部队伍总排放,Ax 为本队排放,N 为队伍数;第三年暂按前两年,第四年按第三年 |
| 商誉扣减 | 违约 -1、未付工资 -5、未收货 -1、未还本付息 -1、未付应付账款 -1、未付管理费 -1、网络营销无库存 -1 |
| 贷款利息、贴息 | 向上取整 |
| 违约金、税金 | 四舍五入 |
| 出售金额 | 向下取整 |
落地前必须明确:
- 每个公式的变量、单位、适用年份/市场/产品,以及在哪个事件执行;保留原文公式和规范表达式。
- 取整的目标精度、逐笔或汇总执行的顺序,以及负数处理。“四舍五入”使用明确的十进制规则,例如确认后采用
ROUND_HALF_UP,不使用 Python 默认round()代替。 - “手工工人”和题目岗位的映射、效率计算前后时点、损失是相对比例还是百分点、激励叠加方式、工资涨幅和培训生效时点。
- 在制品成本按批次归集;工资现金支付和工资分配到在制品/费用是不同动作,避免把月薪、产品成本、BOM 和开产费重复计入。题目列出的“产品成本”需确认是核算成本、参考值还是包含既有项目。
- 折旧从何时开始、是否按季分摊、维修/税费的计提与支付时点;期末资产不得低于规则允许的残值。
- 竞单指数不等于成交概率或可得订单量;排序、平手处理、分配、最低报价和竞单资格需要独立规则。特性值对应哪一类研发需确认。
- 零售指数与需求数量的关系、比例分配的分母及整数尾差处理;负指数、报价高于承受价等情况不能自行截为零。
- 碳指标公式描述的量究竟是配额、排放要求还是其他指标,第三年前两年的合计口径,以及
A = 0、N <= 1时如何处理。不得进行除零,也不得擅自补平台规则。 - 碳中和率的分母、上限、费用确认和初始年度值;商誉的 初值、边界、恢复方式与扣减频率;数智化费用计分范围与预算控制使用率扣分算法。
- 预算控制若依赖预先提交的预算,需要独立保存预算基线、实际值、偏差和提交时点,按规则计扣分;不能在事后改写预算来消除偏差。影响求解目标的预算信息必须在求解前纳入,输出模板版式则可后置。
尚未确认的公式可以作为命名情景执行,输出必须列明情景假设;不能伪装成已确认平台规则。最终分数不可计算时,仍可展示已经验证的现金流、权益和其他分项。
7. 确定性经营仿真
仿真器接收冻结规则、初始/当前状态、计划或策略和情景,返回逐事件轨迹、账本、期末状态与校验结果。相同输入与情景产生相同输出,不在仿真循环内调用 LLM。
- 事件顺序显式建模并归入规则版本,例如季初结算、到货/完工、融资、招工与培训、开拓/研发、广告竞单、开产、交付、期末结算;该示例不是默认平台顺序。
- 记录同季内部的付款与收款时点,检查即时现金是否足够,不能只验证季末现金。
- 研发、认证、市场开拓、产线安装/转产、材料送货、培训和生产均有进度;开始、完成、可使用时点按规则处理,不能有差一季的隐含约定。
- 合同必须有资质、可用库存或可兑现的排产、材料、人员和资金支撑。总市场需求不是已签合同,应收账款也不等于现金。
- 原料、在制品和成品按规则流转,产线不可同时执行互斥任务,人员分配不可重复占用;招聘数量、贷款额度和研发上限等约束均可校验。
- 现金流水与财务分录由同一业务事件生成,区分现金流、利润和资产变化;支持存货成本、固定资产及折旧、应收应付、借款、税费和所有者权益。
- 期末检查
资产 = 负债 + 所有者权益、现金勾稽、存货数量守恒、期初期末衔接、债务到期、订单履约、工资及费用支付,并计算商誉、碳和评分分项。 - 每项约束区分平台硬限制、允许但会被罚的行为和用户风险偏好;默认寻求不违约且现金充足的方案,但不把自行设定的安全缓冲写成赛题规则。
- 经营终点必须结算或按规则计量在制品、库存、应收、债务和税费;不能靠遗漏末期偿债、工资或跨期成本虚增成绩。
用结构化事件和指标解释方案。保存简明决策依据、候选比较和计算证据,不要求存储或向用户展示模型内部思维链。
8. 协作经营方案生成
当前 Web 入口为 solver-21。赛道2规程按平台参数、案例操作机制、案例数值/页面状态三层解释;公共与分职责机制分开提供。特性研发通过 Python feature_research 计算,按差额当期支付,不与资格研发或反复图纸设计混用;原文核对见 docs/track2-rules.md。提示词由公共资料契约和本阶段职责组成,分析不接行动生成说明;路线只冻结跨段承诺并选择分段资料。windows.references 是当前目录的下游资料选择,不再强制上游为选择资料额外查询;真实行动引用必须来自本角色实际收到的记录。分段只登记本段发送/查询的来源,引用枚举随实际查询结果刷新;计算交接包含结果、单位、期间、公式、输入及情景,详情按需读取。
路线选中资料聚合超过初始投影时,程序以有界 reference_evidence 补充完整记录,剩余 ID 保留为 context.unloaded_reference_ids,分段按需分批查询;初始未装入不再直接终止生成。只有实际发送/查询的内容可作为已读依据,待查目录不可放行行动引用。单条记录既不能完整装入初始投影、也无法通过单次查询传输时,给出分段及具体 ID 的容量诊断;不截断来源,所有实际模型请求继续检查总输入容量、原调用额度和截止时间。
持续跨段使用的设备、人员及研发由路线定义一次共享计划,各段沿用其前提,不按分段重复新增。提示词明确区分拟定数量与未知事实:计划人数/设备数和有依据的情景数量填写结构化参数,计算结果绑定工具记录;来源不支持的参数仍保留未知。条件的可空字段可省略,引用型条件仍必须给真实引用;新决策中的 payment + cost 归一为现金 payment,不能漏过现金检查。
初始上下文仍有 22000 字符上限,空表用去重参数目录表示,完整标签说明/期间/依赖可按工作表查询,原表保护与生成阶段预算定位保持。待查 ID 自身计入容量;目录不是已读事实。没有正式事实/规则/缺口 ID 的执行前提用 scenario,必须有说明且不带伪造引用或比较值;记录到方案假设,不代表已满足或已完成仿真。明确的未知 ID 仍报错,不能自动换成情景。情景收款/融资不计入确定可用现金,情景支出保守预留。
已校验的独立职责分析可作为检查点缓存;路线/分段仍需整体行动校验后才进入成功缓存。临时接口失败的有限重试保留同次任务工具对话与计算记录,各次请求都扣原额度,五轮和总截止时间不重置;任务完成或失败即释放对话状态,不能跨角色/项目继承。
当前新 Web 路径采用 solver-17:产销/资金分析并行,超过四期先由统筹确定精简路线和跨段共享行动,再将逐期明细按实际经营期均衡拆为最多四段并行生成,每段最多一次定位修正,子额度从求解总额提前分配;Python 合并后全周期校验,不额外调用全量统筹。共享行动只插入一次,局部行动 ID 隔离,跨段依赖须预先冻结,未知现金或未设置限额不补零。每段模型输入保留当前范围、必要事实/约束及可按需查询的同题目目录,输出 Schema 只开放分配期间。显式引用字段优先完整传递,实体关联只在剩余容量内补充;路线未读引用的既有一次修正按 ID 补入受限真实记录,并保留累计已读来源,未知引用仍拒绝。四期以内作为一个有界明细任务;下述旧版本记录用于兼容与追溯。
新 Web 生成使用 solver-16:产销/资金并行职责分析 → 统一逐期决策 → Python 校验 → 生成并冻结预算参数与文档数据。上下文采用冻结目录的职责投影与有界只读工具查询,不能整题重复注入。导出只对应冻结结果;下面 solver-10 至 solver-15 的流程与补丁约定保留为兼容历史,不能覆盖本节开头及第 0 节最新行为。
求解仅有一个协作流程,不提供 LLM/蒙特卡罗切换;新 API 请求拒绝 llm_monte_carlo。历史 SolverMode 标识仅为读取旧方案保留,SearchConfig 与采样执行已删除。保守、平稳、激进、自定义四种经营基调继续有效。
正常生成不新增用户确认;有界自动修正后仍无法继续的规划、格式、单位或调用额度问题,按用户最新要求进入人工处理窗口,保留当前任务响应并等待选择,未完成结果不能作为成功方案。协作角色提供分析、候选和限制,总协调基于完整规范事实、待竞订单池、空表所需参数及经营基调自主决策;可调整或放弃有依据的候选,不只机械合并。partial/missing_input 是内部分析状态,已完成的校验分析可缓存并继续统筹,不转为等待用户输入。未知项保持未知,以明确情景假设、策略边界或条件分支表达,不把初始未知存量写成零或承诺赢单。总协调按真实周期逐期输出必填行动分组,Python 展开并验证;检查动作无建设/支付时间元数据,真实业务动作仍保持时间与来源约束。
Solver 先由 Python 整理已确认资金、固定费用、资格和提前期,产销角色输出具体候选行动及依赖,资金角色等待这些候选后核对支出、收款、资金缺口和融资,总协调解决结构化冲突并形成完整行动。相互依赖的角色不并行编制独立计划;产销/资金分析最多两项并行;冻结路线后的分段明细最多四项并行,模型全局额度继续生效。区分有效建议、无新增建议与分析限制;经校验的分析限制可缓存,但空行动不能冒充已完成经营方案。普通任务不再额外请求模型评估难度或选择模型;默认本地按职责候选、实际容量、用户优先级及并发额度调度,可显式启用主 Agent 分配。
solver-13 将协作输出校验与补丁职责分别放在 application/solver_specialist.py、solver_repairs.py,编排仍为 solver_collaboration.py。模板需求任务按 budget 调度与校验,candidate_actions 必须为空,entity_catalog 与动态 Schema 枚举提供合法实体;模板 ID、工作表、输入组/范围不当作实体,跨对象建议使用 company。资金接显式引用的局部订单事实;总协调接完整规范事实及紧凑订单池,以支持自主比较路线,均保留正式来源。校验收集一轮中各对象定位错误;修复最多一次、24 个对象,包含引用事实、规则、前置行动、已知完成期和有界下游时间范围。字段定位错误只开放相应字段,时序错误仅开放时间字段,保留依赖边、非空已知完成/支付期、金额、来源与稳定 ID;结构无法定位到字段时仅开放该错误对象,不扩大到其它对象。总协调复用同一上下文原则,乱序允许修复相关相邻日期但不自动重排数组。补丁后整体校验,未修完、越界或持续无效明确失败,不额外全量重生成。风险条件检查字段结构、运算符及引用;错误显示简明定位诊断,不把大段 JSON 当可执行结果。
solver-13 的完整行动修复另由 application/solver_plan_repairs.py 校验受限补丁。原方案非空且存在缺期或本轮时间字段可能腾空原经营期时,可同时返回 patches 与 additions;新增行动仅限替换后仍缺失的期,使用新稳定 ID,与替换合计最多 24 项。补丁输入保留完整紧凑既有行动、其来源及相关资金/规则,列出原缺期和可能腾空的期;输出空间按范围有界预留,仍遵守预设容量、原模型及任务调用/时间预算。Python 只按期间插入新增行动,保持旧行动相对顺序;不自行生成 review、不把未知补零或推断经营时点。新增行动引用、数值/单位、依赖、期间及整体覆盖全部校验,不完整或越界仍失败。无新增需要的旧 patches 响应继续兼容;空方案不通过此分支补造成完整方案。DraftPlanEvaluator 与领域校验共用周期覆盖诊断,显示具体缺失期及越界 ID,不重复发布两条通用提醒。
solver-14 的产销与总协调共用 planning_policy:制定有约束依据的自主经营规划,不要求唯一解,也不索取用户的竞单目标或新确认。数量/投入属于拟定决策,不能当作题目原值或已发生事实;未知初始存量、市场准入、BOM/时点仍保持未知,可仅使用拟新增资源或明确情景假设/条件分支。BOM 可能保存在产品属性或表格列中,须核对来源,不能因无独立 bom 分类宣称全题缺失。partial 必须有有引用的行动/建议与分析限制,missing_input 可作为没有额外建议的内部分析记录,二者通过结构校验后均继续资金/统筹并可缓存,不触发用户输入。原 reason 供统筹理解,不由 Python 直接追加到 Plan.risks;统筹将其转成自主决策、假设和执行条件。最终显式确认/补充请求会有限改写。failed、传输故障、不可解析结果或持续校验错误仍不能当成功;调用/时间边界、原模型粘性及恢复保持。
solver-15 统一生成与补丁的 reference_catalog:正式事实/规则/实体/缺口 ID 不可由模型新建,条件引用类型须对应其目录;没有已有缺口时 gap_ids=[],本轮风险以说明和应对表达。目录包含当前题目的问题记录(含信息项),展示与校验保持一致。共享 Schema 定义避免逐对象重复枚举,局部补丁仅保留用到的目录;应用层不把 Schema 重复拼入 system,SDK 依据 schema_json 在结构化或文本模式传递。未知 gap 引用的补丁可同时更新对应说明,以保留分析含义。
协作分析记录(recommendations/risks/dependencies)引用失效在本地补丁后仍不通过时直接失败,不再静默隔离,避免关键依赖约束被丢弃;原候选行动及其它已校验记录保持,但含行动错误、结构/期间错误、空应对等其它问题同样失败。资金接收有效产销分析与风险,避免只传候选金额而丢失风险。此处理不增加重试或模型请求、不补零、不修改冻结题目,也不把未知前提当作已满足。
行动 schema 2 使用稳定 action_id、有限动作类型与对应 details,保存数量/金额及单位、金额含义、关联实体、前置行动、事实/规则/缺口 ID、条件及已知完成/支付期间。未知保留 null 与原因;销售不是收款,余额/检查不是付款。Python 校验依赖、期间、ID、来源、单位和动作字段;旧快照只在兼容层转换索引和生成确定性 ID,不从旧文字推测经营事实。校验问题定位到字段和行动,使用受限对象补丁并整体复核;不可解析结果仅有限重生成,不改题目或其他任务范围。
solver-12 按职责传递结构化关联数据:产销保留完整订单与资源关系,资金只接候选行动及资金规则,预算只接当前工作表关联行动/事实/规则,报告只接当前行动、依赖、计算来源和真实缺口。原文通过正式来源 ID 还原;短 ID 仅在任务内一一对应,不持久化为正式 ID。裁剪资料不代表题目缺失,已包含事实不重复注入记忆。字符上限继续生效,SDK 提供可靠 token counter/profile 时补充实际容量检查,不关闭用户思考或自动改变预设。
预算在行动冻结后作为独立阶段运行:模型返回输入组/范围到业务来源的映射、期间轴、单位转换及缺口 ID,Python 从已核对输入结构展开合法单元格,用 Decimal 执行来源引用、求和和已支持转换;没有实现的计算关系留空说明,不执行模型代码或 eval。独立工作表最多两项并行,明确输入依赖按 DAG 执行,展示公式不生成等待依赖;结果按固定模板/工作表顺序合并。缺口按原因和来源去重并记录全部目标,不用零代替未知。只在当前范围输入或预计输出超限、异常时拆分,保护公式、已有值、隐藏/保护格和合并续格,默认 Excel 打开后重算。
行动通过当前支持的结构校验立即保存不可变 SolutionBundle 并可查看。预算与报告使用独立 budget_result / report_result 记录,绑定 solution_id、problem_version、plan_hash、模板哈希及处理 attempt_id;预算仅以只读投影供旧渲染接口使用,不并发改写 Plan。失败/取消保留完整成功结果,重试使用输入/模型/提示词隔离缓存继续失败阶段;迟到处理不能覆盖新阶段或用户选择。报告仍由用户在输出页单独发起,可与预算独立处理;导出记录预算哈希,后续预算变化需重新核对映射或重新生成报告。阶段明确显示行动草稿、等待/处理中、部分预算可用、失败/取消及完成,不展示虚构进度,不代表真实经营可行性已验证。
定位协作/统筹补丁的 replacement 只返回 allowed_fields,程序复用原对象其它字段并重新整体校验,不要求模型重抄完整行动。未定位 condition、来源、金额、稳定 ID 和依赖保持;既有完整补丁仍按范围严格校验。同一对象的多项错误必须一起进入有限修复,结构错误不掩盖其它行动的可解码问题。资金新增候选也进入总协调的正式事实范围。规划模板上下文只包含 Reader 已核对的业务参数需求、期间/单位/说明和显式依赖,重复范围合并;原格、公式和目标坐标只供后续预算映射,不在行动阶段重复传输。
Tenacity 临时故障最多两次调用,持续故障再有限切换候选;格式修复沿用原模型。调度、修复、截断扩容、重试与拆分共享任务级调用与时间边界(默认 8 次、900 秒,环境可配置),SDK 重试关闭,取消不重试。额度在实际请求结束后释放,取消不能提前释放在途额度。
Solver 和主 Agent 调度使用 SDK 原生流式传输,在服务端聚合完整输出后校验,截断/中断的片段不得缓存为成功。协作建议、预算写值及总协调分别请求 4000/6000/16000 Token 回答空间,默认另预留 8192 Token 思考;不关闭用户思考,显式 Anthropic 思考按实际预算预留,全部受模型预设上限限制。已知截断根据实际总预算及思考用量扩容一次,不按普通超时重试;达到预设上限不重复相同请求,持续失败再按原边界分段。调度目录包含各任务对应候选的实际总预算。完整重复实体以关联行表传输,字段 ID、来源、类型、单位、状态、转换和说明可还原;模板建议及预算写值省去订单池明细,产销保留全部订单,总协调沿用候选行动及必要订单引用,局部省略不等于题目缺失。拆分依据当前模板结构体积,不能因共同题目背景大而反复拆小工作表。
所有角色使用同一题目/规则版本、Reader 空表解读、共享记忆和用户要求。输入先检查实际模型容量,输出遵守 schema;JSON/引用错误最多修正一次,在途任务可取消,任务详情展示职责、模型与处理对象。最终计划继续验证全周期、实体、金额类型、可写格、动作/预算一致性及遗漏;尚无真实仿真时只输出草稿,金额、产量、现金和评分不能宣称已验证。
经营模板可在独立空表库上传、解读和确认,供多个项目导入复用;项目内不再上传、解读或核对空表。步骤三提供“导入已处理空表”,不重复调用模型。模板用途、期间、单位和输入区域随题目版本、模板 ID/哈希保存;公式与已有数据不改,模板不是题目事实。真实模板疑点确认前必须提供处理说明;普通未知单位不强制确认。Mapper 只使用当前方案绑定、同一题目快照已核对的模板。
基于已有方案调整使用 previous_solution_id、revision_prompt 与累计 requirements,加载同项目、同题目版本的结构化计划,保存新方案及父方案引用,不发送旧模型原始响应。新要求优先于旧偏好,不能覆盖已确认硬规则;事实变化先修订题目。所有产物引用一份求解结果,模板原值、公式、输入与历史方案保持版本隔离。
9. 方案、Excel 与答疑
9.1 经营方案
先从 SolutionBundle 生成 ReportData,再渲染 DOCX。内容包括题目参数与来源、确认规则和假设、战略与备选方案、前置时点倒推、完整逐季操作卡、数量/资金预算、年末报表、得分分解、风险应对和待确认事项。经营期按题目展开,四年赛题必须覆盖全部 16 季。
报告组织由战略与关键时点、执行与风险两个协作角色完成,复用统一模型目录、全局并发额度和项目/版本/方案隔离记忆;最多两项并行。任务使用紧凑行动关联表、相关规范事实与规则、预算范围汇总,不重复发送全题、原模型响应或逐格预算。角色输出非空的职责说明及现有引用,数字、百分比和具体期间不在说明里誊写,交给 Python 从引用及 period 展示。引用、角色职责、数字文字与周期校验通过后确定性合并;新说明仍保留草稿约束。DOCX 按参数速查、关键时点、战略路线、逐季四线操作卡、预算、风险与收官组织;表格保留当前行动编号,分组不改变方案动作顺序。
每项操作应尽可能给出时点、对象、数量、资金、前置依赖和触发条件;“扩产”“满产”“保证现金”之类的文字不能代替可执行计划。文档里的数值直接绑定结构化字段,由程序插入或核对,LLM 生成的文字与实际计划冲突时拒绝发布。
9.2 任意用户 XLSX 模板
按“解析结构 -> 语义映射 -> 校验映射 -> 确定性写入 -> 重算与对账”处理,而非按固定格坐标填当前样例。
- 模板分析器读取工作表名、多级表头、合并格、行列标签、命名区域、数字格式、公式及共享公式、隐藏区域、数据验证、保护和打印设置。
- LLM 将行列语义映射到标准指标或动作字段,返回有类型的
WorkbookMapping;包括期间、单位、金额方向、明细/汇总关系、实体别名、目标格和证据。常见模板可以缓存经确认的映射,但需验证模板哈希和结构。 - 同时考虑工作表名、单元格标题和布局。时间标注或产品别名冲突时生成映射疑点;不得仅按表名猜年份、按列序猜产品。
- 用户要求保留原模板全部公式与已有数据,只填写空白输入格。空表在独立空表库解读确认后可导入,再在经营方案处选择,生成时按表内期间、对象、单位安排操作与预算。填表页只使用当前方案 generation.template_ids 绑定的模板,更换模板须先生成新方案;服务端分析、确认及导出均校验绑定。填表 Agent 核对已有规划条目,不另扩充计划或改变预算值;公式不列入待填写或待确认清单。模板公式只辅助理解输入,不能当作已确认赛题规则。
- 填表阶段不重新解析或解读模板。已确定预算用
budget:i直接映射;仅有适用既有候选的未确定项交给按工作表协作的来源核对。源/目标类型、单位和期间须匹配,未知单位不猜倍率,余额、利润、权益和得分等不能用行动金额凑出;无可靠来源保留空格和原因。大核对任务只在超限或异常时按完整行拆分,公式/原值保持由写入器确定性保护。 - 映射目标受可写区域约束;合并区域只写合法锚点,计算公式默认保留,隐藏格和保护格不得自行覆盖。确需修正原模板标签或公式时形成显式的映射/修正记录。
- 空白格不一定是待填输入。未找到来源的字段保留未解决状态,不用零值或 LLM 猜测填满;不适用的项目与缺失数据分别标记。无法完整填入时提供部分草稿和映射报告。
- 写入器只消费已校验映射与仿真结果,保留原始模板,输出独立副本。生成填表清单,说明目标格、字段、值、单位转换、期间和来源。
openpyxl不计算公式,历史缓存值不能当新结果。默认保留公式并设置 Excel 打开后自动计算,服务端不执行公式或索要展示值。FormulaRecalculator保留为可选适配器,只有显式启用时重算后核对;未经重算的展示值不能当新结果。- 校验所有必填项、跨表期间、单位、现金勾稽、资产负债平衡、费用汇总与方案一致性;重开导出文件检查公式、合并格、版式和写入值。
- 核心支持 XLSX;旧 XLS、XLSM、含宏/外部链接或特殊对象的模板由专用适配器处理或返回能力限制,不执行宏或外部内容,不静默损坏对象。
- 未上传模板时可提供系统规范预算表;通用填表指基于结构理解适配多种表,不承诺无需澄清即可填写所有未知版式。
9.3 方案对话窗口
- 每个会话绑定
problem_version、rule_version、solution_id和必要的情景 ID。答疑检索当前题目、来源、动作、计算轨迹和产物字段,回答“为什么”“怎么算”“何时做”“风险是什么”。 - 数字问题调用只读计算/查询工具,给出输入、公式、期间和来源;缺少证据时明确说明。用户不需要重新上传当前会话已有文件。
- 区分解释问题与“修改规则/计划”的指令。修改生成新版本并触发受影响的重算,未重算前只显示假设分析,不把口头建议当已验证的新计划。
- 支持“少借款”“换一条产线”“报价提高”等反事实分析,通过同一仿真器比较结果;对话不直接改写已发布文件。
- 实战反馈可更新当前季度状态和已知订单,再滚动重规划剩余季度;保留历史行动和版本,不重写已发生经营事实。
- 上下文按相关证据和计算结果选取,避免每轮塞入全部文件;流式答复、引用、任务进度与会话持久化由 Web 层提供。
10. Web 流程与后台执行
用户流程:独立空表库上传、解读及核对空表(选填) -> 创建项目/会话 -> 上传或追加赛题与补充文件 -> 读取并核对题目数据和规则 -> 选择经营基调并导入已核对空表 -> 协作生成方案 -> 查看结果或提交调整要求 -> 核对方案绑定空表的映射疑点 -> 下载方案与表格 -> 围绕方案对话、反馈状态和重新规划。
不把模型名称、内部角色通信、仿真调用细节等暴露成必要的用户操作。用户只需要理解题目、假设、目标、风险和结果;提供必要的高级配置入口。
建议按资源组织 API:projects、documents、problems、rules、jobs、solutions、templates、artifacts、conversations,不把所有功能塞进一个聊天接口。
后台任务状态建议覆盖:
queued -> running(stage) -> succeeded
|----> needs_input -> queued(输入已补全后)
|----> failed
|----> cancelled
阶段包括读取、校验、求解、结果校验、模板映射、渲染、产物校验。通过 SSE 或同等流式机制提供阶段、已评估候选数和完成情况;不伪造无法估计的进度百分比。
- API 请求只提交任务或读取状态。CPU 密集仿真与文档转换在可替换的后台执行器运行,保持服务端响应。
- 保存任务输入快照、阶段产物、错误和恢复点;读取成功但渲染失败时只重试渲染。取消时保存有用的已完成结果,并标记任务未完成。
- 任务提交、模型重试、事件处理和产物写入考虑幂等性,避免重复收费、重复动作或文件覆盖;产物使用独立 ID 并原子发布。
- 反馈按责任返回:证据/提取问题回读题,方案不可行回协作规划与校验,字段映射问题回模板映射,文字与数字冲突回报告组织;基础规则变化使受影响方案和产物失效。每类自动修复有次数和用量上限,耗尽后提供诊断与已完成结果,不无限循环。
- 设置明确的阶段出口:题目可进入指定范围的仿真、计划可执行且账目正确、映射可写且语义明确、产物数值一致。用户仅处理影响决策的重要歧义或显式修改,不要求每次角色调用都人工确认。
- 对模型超时、限流和临时错误使用有上限的重试;结构化输出不合法时记录错误并有限修复。配置单任务模型调用/用量和调用预算上限。
- 用项目/会话隔离题目、状态、聊天和文件;记录日志时携带项目、任务、运行和版本 ID。部署到多用户环境时加入相应的认证和资源访问校验。
- 配置从环境或配置文件读取,密钥仅在服务端使用,日志不记录密钥。文件路径、转换器位置、模型、存储和执行器可配置。
- 校验上传格式、文件签名和大小;限制解压、转换、OCR 和模型调用资源。DOCX/XLSX 是压缩容器,需防止路径穿越及异常膨胀。
- 不允许 Web 用户任意读取服务器绝对路径;开发工具可显式注入授权文件来源。转换器用受控临时目录、独立进程和超时,传入参数不用 shell 拼接。
- 上传内容作为数据处理,LLM 工具仅开放所需能力;限制模型输出的文件目标、公式操作和状态修改。
- 原始文件、转换件、解析数据、规则快照、方案结果和导出文件按配置存储,支持清理策略。测试和运行存储位置与
sample/分离。
11. 已查看样例与可迁移的经验
以下仅是开发参考,不能成为运行默认值或标准答案。
| 样例 | 对设计的启示 |
|---|---|
sample/topic/0915赛题.docx |
多处表格因分页拆分,P4、部分产线和贴现行在独立续表中;产品有单件开产费,碳相关值为零;需重建完整表,并处理碳公式的零分母情况 |
sample/topic/10.5.docx |
产品、市场和材料名称完全不同,包含按年季分组的市场调研;合并格读出的空白时间/市场应按分组继承;未列独立开产费,不能沿用另一题的字段值 |
sample/solve/四年16季经营作战方案.docx |
可参考参数速查、时点倒推、逐季卡片和风险的组织方式,不能作为数值或规则真值 |
sample/solve/标准预算表(省发)(1).xlsx |
含年度操作、综合费用、利润、资产负债及生产表,具有多层标签、合并格、已有公式与共享公式,需要分析结构后映射 |
当前样例里必须避免复制的问题:
- 解答文档把
10.5.docx首个市场调研量 60,000 写为 72,000,后续也出现需求量变化;文中引用的经销商订单原件未在本次样例中提供。应作为不同来源口径/资料缺失处理,不能把解答文档的量作为确定合同,更不能推测统一倍率。 - 解答声称覆盖四年 16 季,但操作卡止于
4Y2Q,将其称作最后一季;完整计划还需4Y3Q和4Y4Q,即使没有新订单也要处理交付、收款、费用和终局结算。 - 解答中将“单件毛差”直接用于接单优先级、对维修频率和融资优劣作出断言;这些都需要核对完整成本、付款时点和利率口径。高售价或低名义利率不自动等于最终得分最高。
- Excel 的第二至第四年工作表仍有
1Y1Q至1Y4Q表头和“引导年经营”标题,生产页仅列 P1–P3/R1–R4,与灯饰题和 P4 不匹配。它们是需要确认/调整的模板标签,不得按位置强行映射。 - 当前两个题目均未给出完整计分、平台执行时序及所有订单规则。用户补充公式可帮助建立候选规则,仍需标明未确认口径。
后续测试应使用受控 tests/fixtures/ 或动态生成的最小文档,记录真实预期和来源;不要直接把 sample/solve 当黄金答案。至少以两种不同题目结构和不同表格布局验证泛化,并验证部署包不带 sample/ 时正常工作。
12. 编码与验证规范
-
本地提交使用用户已配置的 Git 姓名与邮箱,不用 Codex 等临时署名覆盖。当前用户署名为
mikoto2464;保留用户已有提交和暂存内容,只提交本次任务文件。 -
前端源码统一维护在
web/src/,采用 Vue 单文件组件、Composition API 和严格 TypeScript;页面、共享组件、状态逻辑、API 类型分别维护,不恢复全局 DOM 拼装或单文件业务脚本。DOM 操作仅用于焦点、滚动、原生 dialog/popover 等控件行为。 -
npm 依赖及锁文件放在
web/。开发使用npm --prefix web ci、npm --prefix web run dev,Vite 将/api代理至本机 8000;构建使用npm --prefix web run build,包含类型检查。构建生成src/erp_agent/api/static/,源码与产物同步提交,不手改构建文件。普通 Python 启动使用已提交产物,无需 Node;开发及重新构建需要 Node >= 22.12。 -
Vue Router 使用 Hash 路由保存项目、步骤及复核标签,兼容既有地址和 Python 静态资源服务;刷新、重新登录及后台任务完成不重置当前步骤。后台响应不得覆盖新项目或保存期间新增的编辑,过期会话重新加载服务端状态。
-
UI 沿用统一蓝白视觉与 Material 的层级/反馈原则。所有弹窗及任务侧栏支持点击遮罩和 Escape 关闭,保留焦点恢复及轻量进出动画;共享下拉菜单支持键盘、点击外部关闭,并在 dialog 内渲染以保持可交互。toast 在左上角自动淡出,无关闭按钮。来源表格按完整表展示,相关表头/对象与待核对格使用不同高亮。
-
每次功能或行为修改须同步更新本文的相关约定及第 15 节当前实现状态,准确记录已完成能力、限制和下一阶段缺口,避免文档与代码脱节。
-
验证从简、从精:按本次改动选择最少且有效的检查,优先复现用户问题及验证关键边界;通过后停止,不无故重复或扩大范围。低影响改动不新增仅复述实现的测试。接口验证优先使用 curl 或已有定向测试;只有实际需要检查交互和布局时才使用浏览器工具。真实模型联调仅在离线检查无法回答问题时进行,控制调用次数与输入输出预算。文档修改只检查差异,不运行应用测试。
-
所有公共接口、模型和业务函数有明确类型;通过
pyproject.toml统一依赖和工具配置,建议使用 Ruff、一个明确选定的类型检查器及 pytest。 -
使用职责清晰的模块、命名和有边界的错误类型;错误包含用户可理解的信息与结构化诊断,不以
except Exception: pass掩盖失败。 -
业务参数、公式、事件顺序、提示词和模板映射有版本及独立职责;禁止在 API 路由、提示词和 Excel 写入器里分别复制同一套计算公式。
-
注释只解释必要的规则口径、边界或设计原因,简洁明确;不写重复代码含义的逐行注释、冗长教程、空实现和没有当前用途的抽象。
-
不在全局创建模型连接、读取题目或运行任务;生命周期和依赖由组合根管理。配置错误尽早且明确报告。
-
保存原输入和不可变结果快照,记录转换链和来源;对计划改动必须重算受影响的结果,不能手工修改报表来“配平”。
-
数值和领域代码优先确定性测试;LLM 测试使用假的接口或固定响应,不让普通测试依赖外网、真实密钥或模型随机输出。
-
对高风险计算写有独立预期的测试,覆盖工资/开产费/在制品、贷款/贴现、取整边界、跨季进度、员工年限、折旧、碳与得分。用手算小案例验证,不仅复述实现。
-
覆盖库存守恒、资产负债平衡、同季现金不足、重叠排产、研发未完成、未到货、订单违约和经营终点负债等关键边界。
-
文档测试覆盖拆表、合并格、多种名称、单位和缺失字段;模板测试覆盖年份冲突、实体数量不同、共享公式、保护和不可映射字段。
-
集成测试走通上传 -> 读题/澄清 -> 协作求解 -> 方案/填表 -> 对话引用,验证重试、取消、版本隔离、无
sample/启动以及更换解析/模型/求解/模板适配器。 -
建立带人工预期的小型评估集,记录关键字段正确率与遗漏、规则能力覆盖、可行方案比例、相对基线收益、映射准确性、数字/引用一致性,以及时间和模型用量。覆盖修改题目、缺失规则和不同模板,模型或提示词更新时比较回归结果;阈值依据首次基线确定。
-
再次请求 LLM 不保证返回相同内容;保存结构化模型结果与已核对快照用于追溯,确定性仿真按同一输入重放。
-
检查导出 DOCX、Excel 和对话所述的相同指标一致。每阶段完成时运行该阶段必要的检查,避免为了低影响改动编写只模仿实现的无效测试。
13. 分阶段实现与验收
| 阶段 | 实现内容 | 完成标准 |
|---|---|---|
| 1. 数据契约与读题闭环 | 领域模型、来源索引、DOCX/DOC 适配器、结构化读题、规则疑点、最小上传与复核界面 | 两类题目正确重建拆表与合并分组;每个关键字段可追溯;缺失/冲突可修正,且不依赖 sample/ |
| 2. 规则与确定性内核 | 明确一套经确认的规则,建立事件、账本、评分和手工计划仿真 | 独立手算案例正确,全部期间覆盖,现金/存货/账目守恒;非法计划有可定位原因 |
| 3. 协作规划 | 产销资源、资金风险、模板预算与总协调,统一校验及后台任务 | 角色引用可校验,全周期/模板预算一致,结果明确标注仿真能力 |
| 4. 解答与通用填表 | DOCX 渲染、模板理解、映射复核、Excel 写入/重算和产物校验 | 至少两种不同布局及不同实体数量可映射;无法映射的项明确报告;文档、表格、轨迹数值一致 |
| 5. 对话与滚动规划 | 方案检索、计算查询、引用、反事实分析、修正状态与方案版本 | 答疑绑定正确版本,引用可定位;修改触发重算,历史方案可查看,未验证建议不会污染原结果 |
| 6. 运行完善 | 权限隔离、存储、失败恢复、日志、配置、部署与端到端体验 | 不含样例也可部署;供应商密钥仅在服务端;后台任务可取消/恢复;替换关键模块不改核心业务代码 |
后续实施优先确认评分与执行时序的关键缺口,并完成最小可验证业务闭环,再完善协作规划、填表与答疑。外观完整、文字流畅或 Excel 格子填满,都不能替代规则正确、计划可行、数值一致和来源可查。
14. 开工边界
架构以三个业务角色、确定性计算内核、流程编排和独立质量复核为基线,足以开始开发。实际解题质量需要由规则完整度、仿真测试和评估集验证,不能在规划阶段保证。
第一个开发里程碑对应阶段 1:提供可运行的 Web 上传与复核页面,实现来源保留的 DOCX 结构解析、可替换 DOC 转换、服务端结构化 LLM 读题、关键字段校验、规则能力/缺口清单和修正后版本保存;交付启动说明与离线测试。真实模型接入通过服务端配置完成,未配置时明确提示状态,不能用固定样例结果冒充 AI 读题。
现有赛题不足以直接确认全部平台规则,但不妨碍先完成数据契约、文档解析和复核界面。进入真实赛题的精确仿真前,再集中解决该题实际需要的评分、执行时序和分配规则缺口;不要求用户开工前一次补齐所有可能规则。
第一阶段完成后,再实现手算可验证的仿真案例,逐步扩展为完整的读题、求解、解答闭环。初版界面优先保证上传、证据查看、修正、进度、结果和答疑清晰易用;界面技术、模型供应商及后台执行器保留替换边界。
15. 当前实现状态
-
2026-10-16:再次逐段核对赛道2平台规则与案例讲解,升级
solver-21。明确平台开关/不变参数、可迁移操作机制、案例数值/页面状态三层边界;不套用案例初始资金和人员,也不丢弃案例讲解的设计收费、特性研发、工资生效、分单与交付机制。公共指引与产销/资金/逐期机制分开装配,路线明确共享资源、图纸/特性、工资生效和付款交接。维修的周年进入与折旧的周年结束分别记录,真正冲突和正式覆盖分开处理。新增feature_researchDecimal 工具(erp-formulas-2),只按当前值至目标值差额计费,拒绝降级退款及不符单位,支持批次、来源、行动绑定及历史计算读取。详见docs/track2-rules.md。136项后端定向检查(含4项新回归)及修改模块Ruff检查通过;未调用真实模型、未改运行数据或预设、未部署/重启服务,完整仿真仍未实现,用户暂存规程保持。 -
2026-10-16:按失效工资引用反馈升级
solver-20。PlanningValidationError保留期间、行动说明、对象及字段等结构化诊断,分段不再把所有引用错误压成通用失败码。人工窗口用经营操作解释来源关联问题,明确无需查找/填写 fact 编号、无需补充文字即可选择“重新核对题目依据并修正”;受影响操作按真实年季列出,原始编号和候选只在诊断详情展开。已有一次定位修正按行动真实对象/名称有界补传最多12项当前事实,人工重试同样附实际记录,不从拼接或近似 ID 自动替换,也不因目录存在就标记已读;正常流程不新增请求。读取用户提供的赛道2规程后,增加打包的planning_platform.txt核对指引与各职责专项提示,覆盖关闭数智化/碳、竞单30%申报与报价区间、资格、招聘/季度工资、采购收货应付时点、预算基线和自动费用;区分通用条款、变动案例及内部冲突,未进入冻结来源的适用口径作为情景,不自动改题目。运行不依赖 sample 或原DOCX,不套用案例企业/初始资金/工资/报价。238项后端定向检查、17项前端交互检查、类型检查/构建及修改模块Ruff/格式检查通过,静态产物同步;未调用真实模型、未改运行数据/预设、未部署或重启服务。用户原先暂存的规程DOCX保持原文件和暂存状态,不纳入代码提交。 -
2026-10-16:按用户反馈升级
solver-19,统一现金单位与人工问题处理。新增纯 Pythondomain/money.py,用 Decimal 精确比较元/万元及明确人民币别名,保留原始金额/单位;费率、缺币种倍率及不同币种不猜换算,换算后仍检查限额,现金折叠不再漏掉可换算付款。公共/路线/分段提示词明确金额总额、单价和月费的单位边界。保留用户新增的project_handoff分批资料交接。规划/格式/额度等可处理错误在有界自动修正后,通过needs_input+ intervention 保存问题及具体行动/金额,Web 自动弹出选项与修正说明;可确认未计算且非共享行动的单位、仅重试问题任务,或取消;额度不足可显式开始新任务。暂停释放后台线程,当前任务响应仅在私有运行缓存中复用,不把未验证结果写成功缓存;人工等待不占执行时限,恢复不重置调用额度。答复校验问题 ID、选项、题目版本和输入修订,拒绝重复/过期答复;确认单位写入方案假设,仍完整校验来源、时序、现金和限额。关闭弹窗不答复,可在任务记录重开;服务重启后内存继续点不可用,明确标记需重试,避免孤立待答问题。234项后端定向检查、16项前端交互检查、类型检查/构建、修改模块 Ruff及前端格式检查通过,静态产物同步。未调用真实模型、未改运行数据/预设、未重启或部署服务,完整经营仿真仍未实现。 -
2026-10-15:分段资料交接修复:路线选中资料超过22000字符初始投影时先补入有界完整资料包,剩余目录由原生工具分批查询,不再因初始未装入直接失败。已读登记只含真实发送资料,未知/跨题和无法完整传输的单条记录仍失败。新增5项回归,73项相关后端检查及修改模块 Ruff 通过,覆盖16期生成、缓存、隔离SQLite和Word重开;未调用真实模型、未修改运行数据、未部署/重启服务。结果仍为未经完整经营仿真的草稿。
-
2026-10-15:系统审查方案生成并升级
solver-18。公共资料/工具契约与产销、资金、路线、分段提示词分开;planning_handoff.py统一实际发送来源、资料选择与计算交接。路线windows.references仅选择下游所需当前题目资料,由程序装入分段;共享行动仍要求实际读取来源,未知/跨题 ID 不放行。各段不继承上游或其它段的裸已读标记,修正只带本任务来源与计算。空表改为去重参数目录,详情可按工作表查询;待查 ID 清单纳入上下文容量,保留初始资金/费用,完整记录不截断。工具提交引用枚举随已读/待查目录刷新,计算结果和来源显式交接,可按 ID 查询,批次来源去重;multiply 支持显式月数×每月费用,不隐式换季/月;工具 Schema 直接给精确公式签名,错误列出缺少/多余参数,不再要求额外查询签名。新增 scenario 执行条件,空 gap 引用且有明确说明时保留为情景,不补造缺口或改 always;情景写入方案假设,情景融资/收款不能填平确定现金支出。行动条件可空字段在编译边界补 null;明确 payment 动作的 cost 标注归为 payment 纳入现金检查,历史快照不变。行动诊断汇总同轮各对象错误并给期间/key;已校验职责分析独立缓存,下游失败可复用。原生工具对话在同次有限接口重试内保留,不重查已完成资料或重置五轮/额度/截止时间。220项后端定向检查通过,包含隔离 HTTP、SQLite/Word、批量计算、分段并行、缓存与故障恢复;真实 API 联调与最终结果见docs/solver-review.md。未修改运行数据库/预设,未重启或部署服务,完整经营仿真仍未实现。 -
2026-10-15:修复“路线分段约束引用未读取资料”的上下文交接缺口。职责投影先装入显式引用的完整事实/规则/缺口及初始条件,再有界补充实体关联,避免大型实体整组省略时连带丢失所需字段;原值/单位/状态/来源不截断、不提升。路线引用诊断定位 windows.<段>.references 或共享行动并列出具体 ID;在已有一次修正中由
PlanningKnowledge.reference_batch按 ID 补入当前目录真实记录(最多24项/12000字符),只将实际发送记录登记为已读,不增加正常请求或修正轮数。未知/跨题/超大无法传输的引用仍失败,不因目录存在就视为已读。路线成功缓存累计保存前次工具及修正补取的真实访问记录,重放不再丢失依据。新增10项回归,164项后端定向检查和修改模块 Ruff 通过,含隔离应用原生工具上传→读题→修订→16期求解,引用补取后在八次求解请求内保存完成;未调用真实模型、未改运行数据或重启/部署服务,不保证所有现场语义问题均已消除。 -
2026-10-15:修复分段后沿用整流程 8 次额度导致第 5–8 期等分段被其它阶段耗尽调用的问题。新增
planning_budget.py:按已知分析/路线/分段/预算任务提前公平分配独立子额度,合计不超过求解总额度;子任务不可挤占兄弟额度,工具阶段预留最终提交及一次修正空间。新增ERP_SOLVER_MAX_MODEL_CALLS=32(1–256)控制整次求解,已有ERP_TASK_MAX_MODEL_CALLS=8保持读题等普通任务上限,同时作为规划子额度最大值;显式求解总额 8 仍严格遵守,低于必需提交数在模型调用前给出配置诊断。父子额度原子扣减,嵌套包装与工具往返只扣一次,总截止时间默认 900 秒不因分段重置;子额度耗尽显示子任务及总额度计数,调度记录同步。模型池快照冻结预算配置,不改用户模型预设或运行数据。新增 10 项回归,178 项后端定向检查及修改模块 Ruff 通过;复现两段修正需 9 次、四段批量计算/查询加两段修正需 17 次均成功,严格 8 次配置的隔离应用回归及调度/预设/恢复兼容通过。均为受控模型,未进行付费联调、未部署或重启现有服务,不能承诺真实任务不再触及有界额度。 -
2026-10-15:按用户要求将统筹明细拆为有界并行任务,升级
solver-17。超过 4 期先生成精简路线、跨段共享行动和分段支出约束,再按真实周期均衡拆成最多 4 段并行编制;16 期为四段、每段四期,最多四项并发,仍受模型职责/容量/共享端点额度限制。各段仅接所分配期间的 Schema、冻结路线和有界事实投影,不重复全周期明细或原职责分析;Python 合并,不再调用模型重抄全计划。跨段依赖只引用冻结 shared- 行动,局部 key 自动隔离;全局依赖/时序/经营期覆盖/现金及已配置分段支出限额整体校验。仅修正错误段的相关经营期一次,不能改其它期或共享承诺,仍受原任务调用/截止时间上限。payment/borrow/repay的 Schema 绑定 FinanceDetails;缺少可空 obligation_action_id 时补 null,错误业务字段仍定位修正,不猜 finance_entity_id。新增 15 项回归,144 项后端定向检查与修改模块 Ruff 通过;受控两个模型的四段实际并行,隔离 HTTP 的 16 期生成及 fee02 修正八次求解请求完成,SQLite/Word 重开兼容通过。未调用真实模型、未改运行数据、未重启或部署服务;完整经营仿真仍未实现,不保证真实提速或经营可行。 -
2026-10-15:修复职责分析有限修正丢失工具依据的问题,并支持连续分批计算。新增
erp_calculate_batch,每批最多 24 项、同一工具循环最多 96 项尝试;按数组顺序执行,可引用本批前项或前批计算,逐项返回结果/字段诊断,一项失败不取消其它成功项。完整成功批次可复用,部分失败批次允许重试;相同 ID/相同计算可复用,换参数覆盖仍拒绝。职责修正继承已读取引用及计算记录,计算 ID 归入calculation_ids并保留来源链;一次收集多字段诊断,仍失败显示职责、字段及具体引用,不静默丢弃约束。保持单次修正、五次模型往返、共享调用/截止时间、题目绑定与逐项取消检查。新增 16 项回归,129 项定向检查通过;隔离应用上传→读题→求解以受控原生工具响应完成两批计算及职责修正,总计六次求解模型请求,验证真实计算值进入保存行动。未调用真实模型、未修改运行数据、未部署或重启现有服务,不能据此保证现场成功率或实测提速。 -
2026-10-15:修复
solver-16工具绑定与循环退出缺口。原工具要求模型逐次抄写长 context_hash,漏填被误报为其它题目;现在工具/原生最终提交的模型 Schema 不再要求该字段,由服务端当前请求附加。显式错误绑定仍拒绝执行,只反馈字段修正,不切换目录或采纳错误题目结果。工具最多五次模型请求,最后一次仅开放最终提交;共享预算将尽、重复查询或混合提交时提前收束,并为其它职责、统筹与空表来源匹配预留调用。相同请求复用当前循环结果,参数错误给具体字段诊断;完整纯 JSON 仍经绑定及原有业务校验,未完成结果不能当成功。思考开启时不强制 named tool_choice、不改用户思考配置。新增 14 项回归,113 项定向检查及修改模块 Ruff 通过,包含原生 OpenAI SDK 受控请求和隔离应用 HTTP 上传→读题→求解,在既有 8 次预算内复现并恢复绑定误填/持续查询;未进行真实付费联调,未改运行数据、未重启或部署现有服务。 -
2026-10-15:按本轮明确要求重构新 Web 方案生成为
solver-16,入口application/planning_pipeline.py。产销资源/资金约束并行分析,统筹编制唯一逐期行动账本;Python 分配稳定 ID、期间和引用类别,一次修正只开放诊断相关经营期,修正后整体校验。planning_context.py冻结题目/规则版本、源文件哈希和规范内容,职责投影最多 22000 字符,完整查询目录只保存在服务端;按 ID/实体/类别/关键词分页补取,响应/工具/计算/缓存绑定 context_hash,不再自动注入 Solver 记忆文本。domain/calculations.py用 Decimal 实现第 6 节候选公式,LangChain 原生planning_lookup/erp_calculate工具支持按需查询/计算,最多五轮且每次往返计入共享调用与截止时间。公式的事实/前次计算/决策来源、单位、期间、情景及结果留痕,未知不补零,候选不自动变成正式规则。预算来源匹配和文档提纲在生成阶段冻结到Plan.preparation;后续预算阶段仅发布,Word/空表映射直接读取,无需模型配置。预算失败保留有效行动和明确失败工作表;历史方案及原 Solver 类保留兼容。完整仿真仍未实现,派生报表仍留空,真实质量/速度未经验证。已通过 158 项后端定向检查(新流程 22 项)、4 项前端任务检查、类型检查/构建和修改业务模块 Ruff,静态产物同步。详见docs/solver-review.md。工作区开工时已有多项用户修改及暂存样例,均保留;不修改运行数据、不付费联调、不部署/重启服务。 -
2026-10-15:新增确定性引用容错层修复类别误填。
normalize_plan/normalize_action把 fact/rule/gap ID 按题目目录归位(LLM 把 fact ID 写进 rule_ids/gap_ids 不再使整方案失败),空missing_reason补通用说明;未知引用保留原字段继续走校验/修复,不静默丢弃。总协调最终方案(解码与修复后)与decode_specialist候选行动(解码前)均调用,减少一次 LLM 修复往返。工具化计算(把公式作为可调用工具交 LLM 求解)尚未实现,仍以提示词约束 + 确定性校验为主。 -
2026-10-15:按根本性缺陷分析修正方案生成与数据输出的软校验缺口。
review不再计入经营期覆盖,每期至少一个非 review 业务动作;DraftPlanEvaluator新增简单现金流折叠,按期累计现金收付后任一期余额为负即plan.cash_flow失败;协作分析记录引用失效在补丁后仍不通过时直接失败,移除静默隔离;预算阶段按工作表名/标签拒绝利润表、资产负债表、现金流量表等派生报表写值,只保留输入参数。analysis_limits恒为空保留任务展示兼容。完整产能/库存/得分仿真仍未实现,现金流折叠只是局部确定性检查。 -
2026-10-15:Solver 升级为
solver-15,修复正式缺口引用与模型自由生成 ID 的契约矛盾。solver_references.py将职责相关事实、规则、实体和题目已有缺口目录用于协作、统筹及受限补丁,按引用类型约束条件;枚举复用并删除补丁未用定义,Schema 只经请求边界传递一次。新发现的规划风险写说明与应对,不自建 gap ID、不改配无关缺口。一次修复后仍只有分析记录引用无效时,整条记录隔离为明确未验证的文字风险线索,保留有效行动交资金/统筹重新判断;隔离的角色结果不写成功缓存,任务记录分析限制。候选/最终行动的金额、来源、依赖、实体、结构和真实时序仍严格校验,传输/取消及调用预算保持,不额外增加正常请求。资金同时接有效产销风险与依赖分析,避免只见行动而丢失风险。84 项后端定向检查及修改 Solver 模块 Ruff 通过,含用户同类错误修复后重复、16 期统筹、独立 SQLite 保存与 Word 重开。仅受控模型响应,未进行真实模型联调、未部署/重启服务、未修改用户数据,不能承诺实际生成必定成功、真实提速或财务可行性。 -
2026-10-15:Solver 升级为
solver-14,生成阶段改为自主规划:总协调使用完整规范事实、订单池、空表参数需求及经营基调,自主选择产品/资源/时点/资金路线,不被局部候选限制。partial/missing_input 仅作内部分析限制,角色完成后继续统筹,不进入 needs_input、不向用户追加确认;已校验的分析可缓存,角色原始确认文字不再追加到正式方案。未知真实事实仍为未知,可用明确情景假设、仅使用拟新增资源及条件分支表达;不能补零或改为已发生事实。最终方案中显式请求用户确认/补充的文本进入一次有界改写,持续不合契约仍失败,不伪装成功。 -
2026-10-15:总输出新增按真实周期必填的 period_actions 分组,复用共享 Action 定义避免按期复制大 Schema;每一期至少有行动,Python 按期赋值并展开为原持久化契约,再校验依赖、实体、金额、期间及来源。检查 review 是当期操作,没有建设完成期/支付期,本次生成中规范为 null;业务动作的真实提前期/支付期继续严格校验,不更改历史快照。旧平面输出仍经原有有界修复,不能以未覆盖结果冒充成功。Vue 显示“已完成职责分析,统筹自主规划”,不把规划分析限制变成待补步骤。72 项后端定向检查(含四种基调、漏期/空期、真实业务时间/来源及确认文字改写)、1 项前端任务展示检查、TypeScript/构建和修改 Solver 模块 Ruff 检查通过,静态产物同步。未进行真实模型联调、未部署/重启服务,不能承诺真实模型质量或经营可行性。
-
2026-10-15:Solver 专项修复升级为
solver-13。协作与总协调的定位补丁 Schema 只返回开放字段,Python 与原对象合并后整体校验;旧完整 replacement 仍可读取,但不允许改变未开放 condition、来源、金额、ID 或依赖。修复同一风险/建议只报告首个错误,以及某个行动结构错误导致其他行动语义校验全部跳过的问题;结构失败对象仍检查条件/来源,诊断保持原数组索引,动作类型修复同时开放专属 details。资金新增行动及其事实进入总协调正式上下文。修复/重试次数、原模型粘性、共享额度和截止时间保持,未增加正常流程请求。 -
2026-10-15:规划空表只传已核对的参数标签、单位、期间、说明及显式工作表依赖,重复范围合并;同一需求直接传入产销/资金/模板需求/统筹,不携带原格、公式或填表坐标。行动提交容量检查也只检查参数需求,预算阶段仍使用原模板/范围并保护公式和既有值。提示词补齐采购 details 和 condition 完整契约,按战略取舍、关键时点、逐期四线操作和收官组织,参考 DOCX 只用于组织方式,不引用其中的订单、价格或融资结论。66 项后端定向检查及修改的 Solver/契约模块 Ruff 检查通过。用隔离临时数据、临时本地端口和受控模型响应测试用户给出的
0915赛题.docx/0915浙江日赛最新详单.xls:上传→读取→求解→Word 下载通过,70 行仍为待竞订单池、16 期覆盖、一次字段补丁保留条件、DOCX 21 张表,测试服务已关闭。未调用付费接口、未部署或干扰原服务,不代表真实策略质量、提速或财务/履约可行性已验证。 -
2026-10-15:读题升级为
reader-17,修复订单整行detail与表头序列的来源误报。联合提取新增table_mappings,模型只映射逐行 BOM/需求/订单表的类别、范围、列含义与表头,Python 从原格展开规范字段,保留编号文本、逐行实体及证据,仅执行已声明的有限单位转换;空格保持未知,显式纵向合并只继承真实锚点,复杂布局继续逐字段提取。拒绝越界、错误表头、漏列、重叠与重复提取。历史拼接文字仅在引用同表同行、实际列序及逐格原值完全对应时支持;表头序列允许省略有限单位后缀,不改金额/数量校验。已有工作流仅恢复与原提取一致且无其他争议的字段,用户修改和快照保持。只读回放本地题目,72 项来源错误降至 1 项,剩余output_bonus把“无”写成 0,需核对,未修改运行数据。 -
2026-10-15:减少读题尾部等待。较大章节/整表先开始,拆分片段及最终合并保持原文顺序;关联复核按实体组织,消除逐字段重复关联,仅对实际跨任务关系或争议请求,独立范围复用现有 Reader 并发(最多 4)和共享模型额度,修复/异常拆分共享调用边界。只读记录显示本地仍为三个 general 预设,terra 优先级 90、flash 85;没有自动修改档位或优先级,轻量分配需用户显式保存。77 项后端定向检查(含两个隔离 HTTP 兼容检查)及修改读题模块 Ruff 检查通过;未调用真实模型,不能承诺真实提速或下一次语义提取质量。
-
2026-10-15:完成
solver-12的周期修复边界。此前替换补丁无法补期,或移动时期后丢失原期覆盖,仍被整体校验拒绝。现总协调一次受限补丁可补充替换后仍缺失期间的新行动,替换/补充合计上限 24,原行动 ID、受保护字段及相对顺序保持;新增结果仍按事实引用、单位、依赖和全周期整体校验,不自动补零/生成检查卡,不新增整题生成请求。诊断显示具体漏期/越界行动,评估器复用领域覆盖检查。68 项后端定向检查通过,覆盖四年末两期遗漏、时间修复腾空原期、范围/ID/来源/额度边界,以及行动保存/依赖/调度回归;修改模块 Ruff 与差异检查通过。未改前端源码、未调用真实模型、未开启真实任务、未改预设或业务数据、未重启/部署;静态产物无需重建,用户暂存样例保留。 -
2026-10-15:完成
solver-11/dispatcher-7-role-scope专项审查修复。用户反馈中的模板需求误分复杂总协调、研发未完成先竞单的修复缺少上下文、连续未知实体只修首项,均有受控复现与修复覆盖。补丁一次收集定位对象及下游时间字段(最多 24),提供前置完成期与来源,防止删依赖、清空日期、改无关金额、改 ID 或越界;最终整体复核,仍无效则失败。规范实体目录/Schema 枚举区分模板/输入组,模板需求不生成行动;资金/总协调保留显式订单引用。协作风险条件结构校验补齐,旧周期/乱序测试改为当前 schema 2。81 项后端定向用例通过,修改核心模块 Ruff 及差异检查通过;未改前端源码,不重复构建。未调用真实模型、未开启真实任务、未改用户预设/数据库、未重启或部署,用户暂存样例保留;不宣称任意规则、真实财务或实际接口质量已验证。 -
2026-10-15:修复经营草稿被误要求“唯一可执行路线”的失败处理。
solver-10统一产销/总协调的经营基调与候选决策策略,未指定竞单目标或未赢单不再被提示词作为全局规划前提。新增受校验的 partial 协作结果,资金/统筹可继续,真实未知数值仍为 null;部分缺口由 Python 固定进入最终方案风险及任务详情,不缓存为完整成功。missing_input 在原模型/原任务内复核一次,仍无依据则失败;引用、动作、全周期校验及预算/报告独立边界保留。52 项后端定向检查、17 项前端交互检查、类型/构建及修改核心模块 Ruff 检查通过,静态产物同步。仅只读核对本地失败记录及题目字段分类,未改运行数据库/预设、未开启真实任务、未调用付费模型、未重启或部署;受控检查不保证真实模型下一次输出质量,真实初始状态/用料/时间缺口仍须按影响处理。 -
2026-10-14:完成交接待办的轻重模型分配。
dispatcher-6-suitability默认本地分级,简单整理/来源映射/报告优先轻量,跨期产销/资金/统筹及结构化冲突优先复杂档位,大输入和关联/工作表依赖合理升级。预设 schema 4 增加任务档位/职责,Vue 可保存;旧 schema 3 加载保留原文件与通用默认,不修改用户已有预设,实际使用轻量优先需要用户显式配置档位及参与开关。适配排序结合用户优先级、字符/Token 容量及共享端点额度;无适用档位/职责报配置诊断,格式修复保持原模型。任务显示本地分级、排除原因和等待/分配时额度,可选 agent 目录也遵守候选约束。51 项后端定向检查、17 项前端交互检查、类型检查/构建、修改业务模块 Ruff 校验通过,静态产物已同步。未付费联调、未开启真实任务、未部署或干扰服务,用户暂存样例保持;尚未证明实际接口提速或消除超时。
2026-10-14 本轮已实施职责本地调度、共享端点额度与任务级调用/截止时间、schema 2 结构化行动、产销后资金依赖协作、局部对象补丁、来源驱动预算 Decimal 展开及工作表 DAG 并行、行动优先保存与独立预算/报告状态、方案/模板/内容哈希绑定、精确 ID 和有界 BM25 缓存。Vue 展示真实独立阶段、去重预算缺口及结构化操作,轮询保留历史选择和修改文本。仅本地代码、受控检查及静态构建,不部署、不改用户模型配置或业务数据、不新增评估/基准平台。本轮 89 项后端定向检查、19 项前端交互检查及 TypeScript/静态构建通过。真实 ERP 仿真、任意计算规则和多进程额度仍未实现。
-
2026-10-14:完成方案答题逻辑及协作输出优化。
solver-9从已确认参数关联订单窗口、资格/研发/安装/材料/人员的关键时点,按实际年度阶段与营销/生产/人力/财务安排操作;共享calendar明确真实经营终点,不复制参考 DOCX 的订单数字、融资断言、未到材料即开产或漏掉最后两季。行动乱序/周期遗漏进入一次有限修复,不自动重排破坏预算索引。answerer-2两个角色整理战略时点及执行风险,统一plan_output按难度、优先级和共享并发额度分配;非空章节、引用、具体数值文字和周期经校验后渲染,完成项按模型配置/方案/提示词缓存,失败可继续。DOCX 渲染独立为docx_reports.py,完整逐期四线操作卡、参数/预算/规则值直接引用当前结果,产物保存绑定的结构化报告说明。mapper-5使用已核对空表与方案预算,已明确值零模型请求;未定项只给来源角色适用候选,拒绝派生报表冒用动作金额及类型/单位/期间不符。主 Mapper、协作执行、来源校验和历史兼容分开维护。任务侧栏新增输出/填写协作进度与元信息。51 项定向后端检查、1 项定向 HTTP 输出/确认/下载隔离流程、4 项前端进度检查通过;前端类型/构建、修改前端格式及新增/修改业务模块 Ruff 校验通过。使用受控模型响应,未调用付费模型,未部署;尚无真实经营仿真,不宣称财务数值或策略最优已验证。 -
2026-10-14:按用户明确授权部署应用代码
7ab4d73,并同步本地测试服务数据。发布目录/opt/erp-sandbox-agent/releases/7ab4d73-20261013T232502Z,current已切换;每版独立虚拟环境,依赖安装与pip check通过,运行用户可导入服务及模型/记忆适配器。SQLite backup API 制作的erp.sqlite3、access.sqlite3及model-settings.json安全传输至云端,保留云端环境配置和访问密钥;同步 1 个项目、2 份题目文件、2 个题目快照、2 条模板记录(含项目导入副本,空表库显示 1 份)、15 条任务及 4 个模型预设。除任务重启状态和登录会话外,题目、原件、模板与共享记忆逐表内容摘要一致;数据库完整性及私有权限通过。旧数据、配置、服务单元和版本记录保存在/var/backups/erp-sandbox-agent/7ab4d73-20261013T232502Z,保留旧发布版本便于回退。systemd 服务运行并保持开机自启,监听0.0.0.0:8000;登录、项目、原文、空表库、任务、模型目录、题目快照及前端资源 HTTP 检查通过。未上传样例或 SSH 凭据,未修改转发、未调用付费模型;此部署检查不代表完整经营方案已通过仿真验证。 -
2026-10-14:修复 Solver 总输出预算过小导致思考占满并截断。
solver-7/dispatcher-4为协作建议、预算、总协调及分配请求分别预留回答与思考空间,不改模型预设;截断可扩容一次,仍遵守预设上限,任务保存实际总预算、输出/思考用量及接口耗时。Solver/调度使用 LangChain SDK 原生流式生成,聚合完整结果后才校验与缓存;引用错误定位具体 ID 和相近候选,只供修复提示,不自动换 ID。重复实体以完整关联行表传输;预算职责省去完整订单池明细,完整事实仍交产销/总协调,分段阈值只看当前模板结构,避免共同背景导致过度拆分。85 项定向后端检查通过,前端类型/构建及格式通过,新增/修改应用模块 Ruff 检查通过。用户授权下共 5 次真实单任务请求:产销约 22.8 秒完成但有一处引用错误;预算两次非流式约 61 秒返回 504,一次连接失败;修正后的原生流式预算约 67.8 秒完成 12 条建议,全部引用通过校验,报告输出 3828 Token、其中思考 65 Token,请求总预算 12192 Token。未运行整套求解或验证财务/经营可行性,不能由此保证所有网关都支持流式或所有任务成功;付费测试已停止。使用隔离临时记忆与当前模型配置,不修改用户项目/预设,不部署服务器。 -
2026-10-14:方案生成升级为
solver-6。拆出协作编排、紧凑上下文、预算安排和有界接口恢复模块;主 Agent 一次分配未缓存产销/资金/整模板建议,最多两项并行且共用全局模型额度。总协调只生成完整行动,预算按当前工作表顺序安排;超限或临时故障/截断仅拆失败模板/工作表,分段保留表头及输入范围,不重写公式或原值。成功建议、行动、预算片段和拆分决定使用 SQLite 共享记忆恢复,缓存绑定题目、来源、要求、模型配置及提示词;旧行动预算从协作输入移除以避免调整时重复大表。Tenacity 退避最多两次临时调用,SDK 重试关闭;引用/格式/行动错误另修一次,取消及持续故障不发布半成品。任务侧栏展示输入规模、请求输出预算、恢复及拆分子任务,协作进度计数包含嵌套预算任务。72 项定向后端和 17 项前端检查通过,类型检查/构建、前端格式及修改的 Solver/调度模块 Ruff 校验通过;覆盖失败角色不重做成功角色、预算拆行及重启续跑、一次统筹和额度释放。真实接口成功率、财务准确性和经营可行性仍需联调及后续仿真验证。本地修改,不部署。 -
2026-10-14:空表疑点改为逐条回答与确认。
TemplateIssueCard显示具体问题、独立回答框、确认处理及原表入口;状态/待确认数量按各条保存及未保存修改计算,其他疑点的编辑草稿不会因保存某一项被覆盖。TemplateReading.issue_reviews绑定完整问题及答复,服务端拒绝空答复/已变更问题,全部非信息项已答复才允许整表确认;修改单条会撤销整表已确认标记。旧整体说明仅作补充,不自动替代逐条答复;旧快照缺少新字段仍可读取。导入/迁移同步重定位问题及答复,Solver/Mapper 结构上下文及共享记忆纳入逐条记录。46 项定向后端、12 项前端检查通过,类型检查、构建、前端格式与模板库模块 Ruff 检查完成;本地提交,不调用真实模型、不部署。 -
2026-10-14:空表库与题目文件共用
FileUploadZone、FileEntry,统一拖拽上传、文件信息、解析状态和预览/删除按钮;保留独立库及应用级任务。解析后可单文件或勾选批量解读,失败/取消继续未完成内容;文件行同步任务状态,取消仍按任务自身范围执行。解读结果由TemplateReadingReview在列表下方展示,沿用题目核对的摘要、待确认/数据标签、整行搜索、筛选及分组表格,显示工作表用途、期间、输入位置、单位和说明;真实疑点须填写处理说明,公式与已有数据不作为待填项。原表预览沿用合并、布局和公式缓存展示,不请求模型。定向 17 项前端检查通过,覆盖状态同步、批量提交、取消、失败继续入口、预览、搜索、疑点确认及删除;前端类型/构建和格式检查完成。未调用真实模型、未部署,保留用户已暂存的样例文件。 -
2026-10-14:修复空表 read/cancel POST 未消费 JSON 请求体导致 HTTP 持久连接残留
{}、后续返回 HTML 的问题;同连接连续请求验证解读/取消及后续接口均返回 JSON。前端统一解析响应,非 JSON/网关错误转换为明确的接口诊断;401 即使返回 HTML 也触发会话失效,不展示 HTML 或原始错误页。 -
任务改为应用级:鉴权
/api/jobs聚合全部存续项目及空表库任务,详情/取消/重试使用任务自身归属,不信任浏览器传入项目范围;保留旧项目及库接口兼容。ApplicationJobs提供聚合及定位,重试复用原业务用例并继续检查题目版本、文件删除及模板绑定。项目删除后其任务退出聚合,空表库不受影响。 -
前端
useApplicationJobs统一全应用任务轮询及终态 toast;任务按钮在项目列表、空表库、项目步骤页均可见,任务卡显示所属项目/空表库及子角色详情。切换页面不清空任务或关闭侧栏,初次加载历史不通知,状态转移只通知一次;退出清空,旧在途请求不得回写。项目进度从应用任务按当前项目筛选,其他项目或空表任务不会阻塞当前读题/求解;空表页复用相同状态和详情,不再单独轮询或重复通知。 -
本轮检查:38 项定向后端检查、16 项前端检查通过,前端类型检查/构建及格式检查完成;覆盖持久连接请求体、全局聚合及归属取消/重试、项目删除、跨页面侧栏、状态通知与退出隔离、HTML 错误处理。不调用真实模型,不部署服务器。
-
当前空表入口:上传、结构解读、核对、确认、继续失败任务和删除全部位于独立“空表库”页面。项目步骤一二只处理题目;经营方案页导入已确认空表,复制原件和解读为项目独立快照,不调用模型。首次读题自动纳入提前导入的解读;重新读题不会重读空表。旧项目模板在访问空表库时迁移为库记录,历史方案及项目副本保留;未确认旧表在库核对后重新导入。旧项目上传/读取/确认接口明确提示使用空表库。
-
template-reader-3:每张普通工作表一任务,默认职责本地分配。输入只保留已有标签、合并格和按连续区域合并的空白输入候选,省略公式及依赖、重复空白和数据验证表达式;无可写输入表无需模型。输出预算按输入分组数有界调整(2400–6000 Token),不强制改变用户思考配置。板栗样例各表输入约 3.1–3.6K 字符,仅为开发观察,不依赖样例。504/临时故障/截断/超限只拆失败工作表;超过 12K 的结构先有界拆小。持久化拆分位置及成功片段,重试不重复已失败整表;分段继承职责候选、任务级调用/截止时间及全局额度,格式修复沿用原模型。范围按真实空白候选裁剪,公式和已有格不进入输入分组。持续上游故障明确失败,不伪装解读成功。 -
预览
budget-3保留列宽、行高、水平/垂直对齐及原文件公式缓存展示值,兼容旧结构;库旧原件自动补充解析布局,无模型调用。预览横向滚动、固定行列标尺及合并单元格;长公式使用缓存展示值或 ƒx 标记,悬停可看原公式,缓存不作为新预算事实。导出仅写已规划空白输入,公式和已有数据保持原样,默认不运行 LibreOffice 重算,设置自动计算并说明由 Excel 打开后计算;原有重算适配器仍可显式注入。 -
本轮 2026-10-13 验证:59 项定向后端检查、13 项前端检查、前端构建及格式检查通过;以离线受控请求和现有导出检查为主,覆盖 504 分段恢复、跨项目无模型导入、首次读题自动纳入空表、原值/公式保护、布局序列化、项目入口限制、预览与前端构建。不调用真实模型承诺消除上游 504;日常修改不部署。
-
本轮完成:移除蒙特卡罗及 UI 模式切换;
solver-5使用产销资源、资金风险、选表时的模板预算角色并行提出有引用的建议,总协调输出完整逐期方案,复用模型调度/并发配额与有限格式修复。步骤一上传/单文件读取题目,步骤二核对题目;独立空表库按工作表输出用途、期间和输入分组并确认,服务端求解及 Mapper 均检查已读、已核对、方案绑定,求解、映射、确认及导出均校验模板哈希。增量读题通过 append 与选定文件/模板 ID 只提取新增内容,合并保留既有字段 ID、确认说明与历史快照,新冲突保留双方证据,必要时追加关联复核。已修改旧文字/说明或删除旧来源时要求完整重读;输入修订与题目版本继续隔离。Reader/Solver/Mapper 共用 LangGraph SQLite 记忆服务:固定版本/规则/周期/模板哈希与复核状态锚点、BM25 相关事实/规则/模板解读、任务要求,以及按题目版本和 solution_id 隔离的结构化方案;原始模型响应不入记忆。模板删除保留已引用历史记录,迟到写入受删除标记约束;追加任务登记全部旧来源便于删除时取消。Reader 的空表任务和 Solver 全部协作角色提前入队,侧栏按真实子任务状态汇总进度,单次模型推理不虚构百分比。Mapper 显式沿用已核对空表解读。78 项定向后端检查通过,Mapper/追加/共享记忆改动后复验 42 项通过;12 项前端检查、类型检查/构建与格式检查通过,新增模块 Ruff 检查通过,未做真实模型全量联调。未实现真实经营仿真,输入超过模型容量会明确报错;超大空表目前需精简工作表。日常修改不部署。 -
reader-16修正读题误报:提示词按行对象、列标题、数据格与关联规则理解数据,附名称/班次短示例;名称中的数字和季/时制不作单位。共享文本规范化兼容中文与数字间排版空格,保留数字/英文分隔及边界,不将 14 季匹配为 4 季。模型数值字段中的显式%(含全角)用 Decimal 一次转比例并登记转换,仍须原文支持;已为比例的数值不再次除以 100。损失与加成明确方向和对象,已有值不询问,未给时点不猜测。具体错误不再叠加通用冲突/缺值提醒;解析失败不触发重复语义复核。正常 XLS 浮点尾差规范化仅为信息记录,不列待确认或发送模型,OCR/解析能力限制仍提示。旧名称误报通过已有工作流核对未修改的原始提取后恢复,用户修改与真实争议保持;旧百分数提取失败需重新读题。前端新增章节/表格已处理总数、完成、执行、等待、待核对与失败/取消汇总,初次统筹前登记子任务,排除主 Agent、复核及已拆分父任务计数,不虚构单次模型推理进度。提示词与缓存版本同步升级;61 项定向后端检查、11 项前端检查、前端类型检查/构建及修改代码 Ruff 校验通过。此次使用受控模型响应,未做真实模型全量读题,未部署。 -
读题升级为
reader-16:默认按大章节/完整工作表组织任务,编号子项不在已有大章节下另拆;同章节多表保留关联,一张普通大表整体交给子 Agent。默认输入上限 100000 字符(包含提示词/Schema),并发 4,由ERP_READER_MAX_REQUEST_CHARS/ERP_READER_CONCURRENCY(1–4)配置,仍受模型实际输入容量限制;ERP_READER_MAX_BATCH_UNITS仅用于超长单段及可替换的旧分批流程,不限制完整表格行数。仅实际输入超限、截断或调用失败时按完整行拆小;超长单段复用 LangChain 切分,不丢原文或说明。普通任务联合整理参数/规则;请求中长来源 ID 使用短编号,Python 严格解码并还原原始证据 ID,持久化契约不变。独立参数/规则提取器可注入替换。跨任务同实体属性/规则或争议才追加 LLM 复核,确定性来源、重复、冲突、周期和数值行覆盖检查始终执行。不能保证模型语义完整或所有新规则已支持。 -
504 单独识别为上游网关超时,502/503 识别暂不可用。读题请求关闭 SDK 内部重试,格式错误只修当前批一次,输入超限/截断/超时/502–504 自动递归拆小;最小批的瞬时故障最多再试一次,仍失败停止,未完成不发布快照。默认联合提取输出预算按来源条目数量估计,8000–64000 Token,可替换参数提取同样按规模估计,规则提取最多 4000,复核最多 2000,均不超过模型预设;显式 Anthropic 思考为预算保留空间,不能静默关闭用户思考设置。已复用 LangChain 提示词模板、批量调度、供应商 SDK 与模型实例缓存,不另造 HTTP、切分器、检索评分或 Agent 图。
-
新增共享
MemoryService/RoleMemory:LangGraphSqliteSaver检查点使用现有项目 SQLite 数据库,短期按完整输入、解析器、提示词、模型预设版本、批次和职责指纹保存已成功提取与拆分决定,重试/重启可复用;短期命名线索标为 provisional,不传未校验数值。长期按项目及题目版本保存可用事实、默认/假设、规则及已处理说明,BM25 本地检索有界相关条目,不依赖 Embedding 或额外模型。Reader 重新读题不采用旧版本事实;Solver/Mapper 使用各自绑定的同版本长期记忆与任务要求,现有规范数据/完整计划仍是权威,记忆不得另编数值或覆盖当前输入。不含原始模型响应、内部思维或供应商密钥;批次内存只对齐名称/字段,不能当已确认事实。项目删除清除全部检查点,删除文件/项目的数据库标记阻止迟到批次写入,旧方案的版本记忆不会用于新输入。答疑尚未实现,端口可供后续接入;没有跨项目学习或自动继承历史偏好。 -
已完成章节/整表组织、联合提取与紧凑输出、长来源 ID 还原、长段原文完整性、重复表头免复核、跨任务关联、一次主 Agent 统筹和协作模型执行、共享并发额度、504 拆分、缓存/项目/版本隔离与 SDK 兼容的定向离线检查;前端类型检查及构建、关键交互和定向 HTTP 流程已核查。样例仅用于开发结构检查;真实完整读题质量和耗时需本地验证,日常不部署。
-
本轮 review 修正大章节内编号子项误拆、超长单段回退的原文/文件说明保留及缺失来源字段的规范错误处理。真实主 Agent 使用原预设 90 秒超时完成 15 章节与 1 整表的一次分配,首选为 deepseek-flash 9 个、gpt-5.6-luna 3 个、gpt-6.1-sol 4 个;此为当前目录的一次分配观察,不硬编码模型及比例。先前 45 秒核验超时明确进入保守回退;不由此宣称完整读题速度或准确性已验证。短任务编号仅用于统筹请求,返回后还原应用任务 ID。定向后端检查、前端关键交互及构建通过;mypy 当前未安装,未声称全仓类型检查通过。
-
题目上传增加 XLSX:
XLSXDocumentParser复用 openpyxl,按工作表保留原行列、合并锚点/续行、百分比及公式原文,记录来源并执行输入资源限制;公式不重算、不作为数值事实。题目 XLSX 与求解预算空表保持独立用途和存储,解析文件不改原件。前端格式选择和服务器上传均支持 XLSX,普通单工作表整体交给读题子任务。 -
题目文件与预算空表均支持删除:已解析条目及解析中/失败/取消的上传条目提供统一删除按钮和确认弹窗,使用鉴权 DELETE documents/templates 接口,按项目隔离。删除停止引用文件的在途解析/读题/生成任务,并以数据库删除标记阻止迟到解析结果、新题目快照及方案写回;已删除上传的解析任务不能重试。题目文件删除同步去除文件说明、递增输入修订,需重新读题;前端清除文件/模板选择、保留其他未保存输入,拒绝删除前发起的旧刷新结果。未关联历史结果的原件与解析记录实际删除,已被题目/方案引用的原件及解析结构保留内部归档并从上传列表隐藏,历史方案及导出继续有效;已删空表不参与新生成,切换历史方案不恢复其当前选择。已用定向 HTTP 验证权限隔离、解析中删除、输入清理、历史 Word/Excel 导出与防重试,Vue 验证删除弹窗、选择清理和未保存补充保留;未部署。
-
填表流程与经营方案绑定:步骤三、四移除上传入口,仅显示当前方案选定空表;无绑定或无预算安排时引导回第 3 步。条目由
MappingReview按工作表/待处理/可填写分组,默认待处理,每页 20 项,错误与缺失说明跟随条目,避免密集长表和重复提示;可一键确认,必要时编辑来源与说明。预览在原表网格标出拟填数据和未确定输入,保留原公式和已有数据;经营方案内完整预算明细默认折叠。已用定向 HTTP 验证未规划模板拦截、预算变动拒绝及导出,Vue 验证绑定过滤、原表预览和直接确认;未调用真实模型、未部署服务器。 -
方案与表格已开放:
answerer-2使用战略与关键时点、执行与风险两个输出角色协作,主 Agent 结合能力、优先级及并发额度统一分配,LangChain Runnable 最多两项并行。角色只返回带当前行动/事实/规则/预算引用的说明,不另编数值;Python 校验角色非空、引用、期间及数字文字,确定性合并并插入当前方案中的金额、数量、规则与预算。DOCX 按参数速查、战略路线、关键时点、逐期四线操作卡、预算、风险、收官和证据附录组织,覆盖实际全周期;无订单也保留末期费用、回款与终局核对。渲染器可独立替换,报告解释与产物一起绑定 solution_id/problem_version,结构化协作结果按模型配置和提示词缓存;失败可继续未完成角色。新格式不复制样例数字、融资优劣或错误终点,仍保持草稿标记。 -
mapper-5只消费方案已绑定预算与 Reader 已核对空表,默认流程不调用解析器、不重发原表/公式或整题。已明确值直接映射 budget:i,不调用模型;仅未确定且存在语义、期间、类型与单位相符的已有候选时,按工作表组织填写来源角色,统一输出调度、最多两项并行。超限或异常只按完整行缩小当前核对范围,保留原单元格和动作索引,已完成结果缓存。无依据的余额、利润、权益或得分不得用动作金额凑出,空白保留具体原因。Python 核对位置、已有值/公式/隐藏/
Truncated - read the full file at https://github.com/mikoto2464/erp-sandbox-agent/blob/08b2e5e9f3cf549b2034b700f72cfc91ea47dd15/AGENTS.md.
