feat: add inventory-aware market making benchmark#93
Conversation
🤖 AI Code Review (gemini-3-flash-preview)🇬🇧 English Analysis1. Executive Summary
2. AI Content Analysis
3. Engineering & Economic Assessment
4. Quality Assurance
5. Security & Privacy Check
🇨🇳 中文分析1. 摘要
2. AI 成分分析
3. 工程与经济评估
4. Quality Assurance
5. 安全与隐私检查
|
wrh-human
left a comment
There was a problem hiding this comment.
感谢贡献inventory_aware_quoting。 MarketMaking领域填补了Frontier-Eng的一个空白,simulator设计干净,双语文档完整,candidate isolation的process boundary做得很到位,测试覆盖也在线。
在合并前,建议关注以下两个与评测设计相关的问题:
1.Task维度可以进一步丰富,避免被纯数值搜索绕过
当前action space只有4个数值(bid/ask offset + bid/ask size)× 3 assets,observation是纯数值序列。这意味着一个agent完全可以用grid search或random search逼近最优策略,而不需要真正理解做市的工程判断(比如如何处理adverse selection、为何inventory skew要做均值回复、不同regime下liquidity的差异意味着什么)。当agent能力超过一个不高阈值后,再多"工程推理"也无法转化为更高的分数——task的区分度上限可能偏低。
建议丰富task的信息维度,让candidate需要做的不仅仅是纯数值回归。例如在observation中加入需要语义理解的内容,或者增加需要写出结构上有意义的代码才能满足的约束,使纯参数搜索无法达到可行解。
2.step_quotes中的异常处理过于宽泛,可能掩盖候选行为的真实问题
当前实现中,step_quotes用try/except包裹所有symbol的处理。这意味着缺失key、类型错误、数值越界都会走同一条路径(violation + fallback默认值),evaluator和developer无法区分"candidate的结构是错的"和"数值稍微越界了"。
建议至少加一层前置schema校验,先验证action dict的结构完整性(所有symbol存在、所有key存在、类型正确),再检查数值范围。这样错误路径更清晰,agent的debug反馈也更有用。
非阻塞建议
以下内容不会阻止合入,但后续可以顺手完善:
-
任务目录命名 — 现有benchmark统一使用PascalCase(如
BatteryFastChargingProfile、CarAerodynamicsSensing),建议将inventory_aware_quoting改为InventoryAwareQuoting,保持风格一致。 -
确认是否缺少 run config — 当前没有看到
frontier_eval/conf/task/下的task config,建议确认运行时框架是否能自动发现这个task,否则需要补充 yaml 配置。
整体方向没有问题。 核心是确保task不会轻易被纯数值搜索trivialize,以及evaluator的错误路径足够清晰;解决这两个问题后即可继续审核。
🤖 AI Code Review (gemini-3-flash-preview)🇬🇧 English Analysis1. Executive Summary
2. AI Content Analysis
3. Engineering & Economic Assessment
4. Quality Assurance
5. Security & Privacy Check
🇨🇳 中文分析1. 摘要
2. AI 成分分析
3. 工程与经济评估
4. 质量保证
5. 安全与隐私检查
|
感谢详细的 review!已根据建议完成修改:
本地回归测试 27/27 通过,基线策略在 20/20 个评测场景中均保持可行。再次感谢建议! |
wrh-human
left a comment
There was a problem hiding this comment.
感谢对 feedback 的及时响应和修改。我对最新commit中的改动逐项进行了核查,结果如下:
1. Desk Mandate 实现
_desk_mandate() 根据当前 regime 和 inventory 状态动态生成自然语言指令,_enforce_desk_mandate() 在 step_quotes 中对其进行强制校验。Quiet 和 toxic regime 下的约束互斥(分别要求 >= 2 lots 和 <= 1 lot),组合上 inventory recovery 指令后,静态数值策略无法同时满足所有场景。新增的 test_unconditional_numeric_quotes_violate_compositional_mandates 对此提供了覆盖。已通过。
2. Action 校验分层与错误分类
校验流程已重构为三级结构:schema 完整性 → 数值范围 → constraint 及 desk mandate 合规性。错误分类粒度适当(如 schema_missing_field、range_offset、mandate_toxic_size、risk_position_limit),能够为 agent 调试提供有价值的反馈。test_schema_violation_feedback_is_actionable 覆盖了缺失字段的异常路径。已通过。
3. 目录命名
任务目录已从 inventory_aware_quoting 改为 InventoryAwareQuoting,与项目中其他 benchmark 的命名风格保持一致,旧目录已清理。已通过。
4. Task run config
frontier_eval/conf/task/inventory_aware_quoting.yaml 已补充,运行时框架可直接发现该任务。已通过。
以上四项确认无误。
有一个额外的建议:建议补充 baseline/result_log.txt,记录 python verification/evaluator.py scripts/init.py 的运行输出,以便 reviewer 直接确认 baseline 在 20/20 个场景中均保持可行。
上述内容补充完毕后,我没有其他问题,建议可以合并。
🤖 AI Code Review (gemini-3-flash-preview)🇬🇧 English Analysis1. Executive Summary
2. AI Content Analysis
3. Engineering & Economic Assessment
4. Quality Assurance
5. Security & Privacy Check
🇨🇳 中文分析1. 摘要
2. AI 成分分析
3. 工程与经济评估
4. 质量保证
5. 安全与隐私检查
|
已补充 baseline/result_log.txt,记录了 python verification/evaluator.py scripts/init.py 的 baseline 运行输出。 本地验证结果:
感谢 review! |
|
Thank you for the prompt response and thorough revisions! All issues raised in the previous review have been verified as resolved: 1. Desk Mandate (Natural Language Instructions) Natural-language desk mandates are injected into the observation and enforced by 2. Action Validation (Schema → Range → Constraint) Validation is now structured in three stages: a schema pre-check (symbol completeness, field completeness, type checking, bool-vs-int distinction), followed by numeric range checks (offset/size), and finally constraint and desk-mandate compliance. Violations carry stable, distinguishable categories (e.g., 3. Directory Naming The directory has been renamed from 4. Task Run Config
5. Test Coverage 27 tests total (evaluator: 9, simulator: 11, policy_runtime: 7), all passing as recorded in 6. Baseline Results
All six items above have been verified. No further issues identified. The PR is ready to merge. |
🤖 AI Code Review (gemini-3-flash-preview)🇬🇧 English Analysis1. Executive Summary
2. AI Content Analysis
3. Engineering & Economic Assessment
4. Quality Assurance
5. Security & Privacy Check
🇨🇳 中文分析1. 摘要
2. AI 成分分析
3. 工程与经济评估
4. 质量保证
5. 安全与隐私检查
|
7022f7d to
7fc76b7
Compare
🤖 AI Code Review (gemini-3-flash-preview)🇬🇧 English Analysis1. Executive Summary
2. AI Content Analysis
3. Engineering & Economic Assessment
4. Quality Assurance
5. Security & Privacy Check
🇨🇳 中文分析1. 摘要
2. AI 成分分析
3. 工程与经济评估
4. 质量保证
5. 安全与隐私检查
|
中文说明
本 PR 新增
MarketMaking/InventoryAwareQuoting,作为 Frontier-Engineering 中 MarketMaking 方向的库存感知报价任务。该任务模拟一个做市台在多资产环境下进行双边报价:候选策略需要根据库存、市场体制、流动性状态和自然语言 desk mandate,动态决定 bid/ask offset 与 size,并在收益、库存风险、流动性供给和逆向选择防御之间取得平衡。
核心设计
desk_mandate,覆盖流动性支持、adverse-selection 防御和库存回收等目标。English Summary
This PR adds
MarketMaking/InventoryAwareQuoting, an inventory-aware quoting benchmark for the MarketMaking domain in Frontier-Engineering.The task evaluates whether an agent can design a feasible market-making policy that adapts bid/ask offsets and sizes under inventory pressure, market regimes, liquidity requirements, adverse-selection risk, and natural-language desk mandates.
Key Features
desk_mandateinstructions are injected into the observation and enforced by the verifier.Quality Assurance
20/20feasible scenarios.baseline/result_log.txt.baseline/result_log.txt.