Skip to content

feat: support reasoningEffort and fix WriterAgent model override issues#79

Open
Misaka09982 wants to merge 7 commits intoNarcooo:masterfrom
Misaka09982:master
Open

feat: support reasoningEffort and fix WriterAgent model override issues#79
Misaka09982 wants to merge 7 commits intoNarcooo:masterfrom
Misaka09982:master

Conversation

@Misaka09982
Copy link

Summary

<!-- 1-3 bullet points: what changed and why -->
  • 正式支持 reasoningEffort 推理强度配置:作为一等配置字段,支持在 .envinkos.json  modelOverrides 中设置,并自动映射到 OpenAI Chat (reasoning_effort) 和 Responses (reasoning: { effort }) API。
  • 修复 WriterAgent 覆盖参数失效 Bug:移除了 WriterAgent 第一阶段写作中硬编码的 0.7 温度,使其能够正确响应用户在 modelOverrides.writer.temperature 中的自定义设置。
  • 优化配置合并链路:改进了 PipelineRunner 的逻辑,确保当用户仅覆盖 temperaturemaxTokens  reasoningEffort 时,这些参数能正确下沉到实际的 API 请求中。

Motivation (optional)

<!-- Why this change is needed. Link issues if applicable. -->

目前的 InkOS 在使用 OpenAI o1/o3 等具备推理能力的模型时,无法通过配置控制推理强度(reasoning_effort)。此外,由于部分 Agent(如 WriterAgent)内部存在参数硬编码,导致用户即便在配置文件中设置了覆盖参数也无法生效。

Changes

<!-- File-level change list: what each file does --> File | Change -- | -- packages/core/src/models/project.ts | 在 Schema 中新增 reasoningEffort 字段,并补全 AgentLLMOverrideSchema 中的可选覆盖项。 packages/core/src/utils/config-loader.ts | 增加对环境变量 INKOS_LLM_REASONING_EFFORT 的读取支持。 packages/core/src/llm/provider.ts | 实现 reasoningEffort 在不同协议(Chat/Responses)下的请求参数映射。 packages/core/src/pipeline/runner.ts | 修正 resolveOverride 逻辑,确保非 baseUrl 变化的覆盖配置也能创建正确携带默认值的客户端。 packages/core/src/agents/writer.ts | 将创意写作阶段的 temperature 从硬编码 0.7 改为读取 client.defaults.temperature。 packages/cli/src/commands/config.ts | KNOWN_KEYS 增加推理强度支持,并在 set-global 中添加 --reasoning-effort 参数。 packages/cli/src/commands/init.ts | 在项目初始化的 .env 模板中加入推理强度的配置示例和注释。

Usage (optional)

<!-- Code snippets, CLI examples, or config samples showing how to use the new feature -->

命令行设置全局推理强度:

inkos config set-global --reasoning-effort high --provider openai --model o3-mini ...

inkos.json 中针对特定模型配置:

"modelOverrides": {
  "writer": {
    "model": "o3-mini",
    "reasoningEffort": "high",
    "temperature": 1.0
  }
}

Test plan

  •  pnpm typecheck passes
  •  pnpm test passes (all existing + new tests)
  •  Manual verification:
    •   .env 中设置 INKOS_LLM_REASONING_EFFORT=high,通过抓包工具确认 OpenAI 请求体中包含了正确的 reasoning_effort  reasoning: { effort }
    •   writer agent 设置特定的 temperature: 0.9,确认实际 API 请求参数不再是默认的 0.7
    •  验证修改后的代码在非 OpenAI 渠道下不会产生多余的请求参数干扰。

Breaking changes (optional)

<!-- List any breaking changes to public API, CLI flags, config format, etc. -->

无破坏性变更。reasoningEffort 为可选字段,未设置时不会影响现有逻辑。


🤖 Generated with Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant