# ============================================
# Silicon Rider Bench - 环境配置文件
# ============================================
# --------------------------------------------
# API 配置(必需)
# --------------------------------------------
# API Key - 支持 OpenRouter、OpenAI 等兼容服务
# OpenRouter: 从 https://openrouter.ai/ 获取
# OpenAI: 从 https://platform.openai.com/ 获取
API_KEY=
# --------------------------------------------
# AI 模型配置
# --------------------------------------------
# 指定要使用的 AI 模型
# 支持所有 OpenRouter 上的模型,例如:
# - anthropic/claude-3.5-sonnet (推荐,性能优秀)
# - anthropic/claude-3-opus (最强性能,成本较高)
# - anthropic/claude-3-haiku (快速,成本低)
# - openai/gpt-4-turbo (OpenAI 最新模型)
# - openai/gpt-4 (稳定可靠)
# - openai/gpt-3.5-turbo (快速,成本低)
# - google/gemini-pro (Google 模型)
MODEL_NAME="default"
# --------------------------------------------
# Tool Call 格式配置
# --------------------------------------------
# 指定 AI 模型使用的 Tool Call 格式
# 不同模型可能需要不同的格式才能正确调用工具
#
# 可选值:
# - openai : OpenAI 标准格式(默认)
# 使用 OpenAI SDK 原生的 tool_calls 结构
# 适用于:Claude、GPT-4、Gemini 等主流模型
#
# - sglang : SGLang XML 格式
# 使用 ... 和 {JSON} 标签
# 适用于:通过 SGLang 部署的模型
#
# - mcp : MCP (Model Context Protocol) 格式
# 使用 ......{JSON}
# 适用于:使用 MCP 协议的模型(如 MiroThinker)
#
# 默认值:openai
TOOL_CALL_FORMAT=mcp
# --------------------------------------------
# API 基础 URL
# --------------------------------------------
# OpenRouter API 端点
# 如果使用其他兼容 OpenAI SDK 的服务,可以修改此 URL
BASE_URL=https://openrouter.ai/api/v1
# --------------------------------------------
# OpenRouter 可选配置
# --------------------------------------------
# 你的网站 URL(用于 OpenRouter 排名和统计)
# 留空则不参与排名
SITE_URL=
# 你的应用名称(用于 OpenRouter 统计)
APP_NAME=Silicon Rider Bench
# --------------------------------------------
# 高级配置(可选)
# --------------------------------------------
# 最大迭代次数(AI 模型的最大对话轮数)
# 默认值:300
# Level 0.1 通常需要 5-10 次迭代
# Level 1 可能需要 100-300 次迭代
# 如果达到最大迭代次数,模拟会自动终止
MAX_ITERATIONS=100
# --------------------------------------------
# 采样参数配置
# --------------------------------------------
# Temperature - 控制输出的随机性
# 范围:0.0-2.0,较高值使输出更随机,较低值使输出更确定
# 默认值:1.0
TEMPERATURE=1.0
# Top-P (Nucleus Sampling) - 控制采样的多样性
# 范围:0.0-1.0,较低值使输出更聚焦于高概率选项
# 默认值:0.95
TOP_P=0.95
# Repetition Penalty - 控制重复内容的惩罚
# 范围:1.0+,1.0 表示无惩罚,较高值减少重复
# 默认值:1.05
REPETITION_PENALTY=1.05
# --------------------------------------------
# V2 多模态配置
# --------------------------------------------
# 图片传输模式 - 用于 Level 2 (V2) 多模态测试
# 当 AI 调用 get_receipts 工具时,如何传输小票图片数据
#
# 可选值:
# - base64 : 将图片编码为 base64 数据内嵌在响应中(默认)
# 格式:data:image/png;base64,
# 优点:无需文件系统访问
# 缺点:增加响应体积
#
# - file_path : 返回图片的本地文件路径
# 格式:file:///path/to/image.png
# 优点:响应体积小
# 缺点:需要 AI 模型支持读取本地文件
#
# 默认值:base64
IMAGE_TRANSPORT_MODE=base64
# 多模态消息格式 - 用于 Level 2 (V2) 多模态测试
# 指定发送给 AI 的多模态消息使用的格式
#
# 可选值:
# - openai : OpenAI 标准格式(默认)
# 使用 { type: "image_url", image_url: { url: "..." } }
# 适用于:OpenAI、Claude、大多数兼容 API
#
# - volcengine : 火山引擎/豆包格式
# 使用 { type: "input_image", image_url: "..." }
# 适用于:豆包(Doubao)、火山引擎 API
#
# 默认值:openai
MULTIMODAL_FORMAT=openai
# --------------------------------------------
# 其他可选配置
# --------------------------------------------
# API 请求超时时间(毫秒)
# API_TIMEOUT=60000
# 最大重试次数
# MAX_RETRIES=3
# 是否启用调试日志(显示完整的请求和响应 JSON)
# 设置为 true 可以看到详细的 AI 请求和响应内容
DEBUG=true
# 上下文历史限制
# 限制每次发送给 AI 服务器的历史消息数量(不包含 system 消息)
# 默认值:不限制(空或 0)
# 设置为正整数 n 后,只保留最近的 n 条消息
# 这可以减少 token 消耗,但会降低 AI 的上下文记忆能力
CONTEXT_HISTORY_LIMIT=20