背景
Anthropic provider adapter 当前在请求中将 max_tokens 固定为 4096。不同模型、不同任务对输出长度的需求差异很大:较短的交互可能希望限制输出成本,长文档生成或代码修改说明则可能需要更高上限。固定值也让 provider 能力无法通过 Pixelle 的统一配置表达。
OpenAI-compatible 与 Anthropic provider 在字段命名和能力上存在差异,因此这个能力需要在 provider-neutral 层设计,而不是只在某个 adapter 内部临时改值。
目标
在 LLM 配置和请求层暴露输出 token 上限配置,移除 Anthropic adapter 中的硬编码,同时保持未配置时的现有默认行为兼容。
改动方向
新增 maxOutputTokens 之类的 provider-neutral 配置字段,并在 LLMGenerateInput / stream 请求中按需传递。Anthropic adapter 应把该值映射为 max_tokens;OpenAI-compatible adapter 需要评估当前 SDK 与目标模型应使用的字段,并在可支持时进行映射。
需要注意配置校验、默认值、文档和测试,避免把 provider 特定字段泄漏到公共 API 的过多位置。
可能涉及模块
src/config/schema.ts
src/config/types.ts
src/config/loader.ts
src/llm/types.ts
src/llm/provider/anthropic-compatible-client.ts
src/llm/provider/openai-compatible-client.ts
src/agent/agent.ts
docs/provider-adapter.md
tests/config 和 provider adapter 测试
任务清单
验收标准
建议标签
feature、llm、config
背景
Anthropic provider adapter 当前在请求中将
max_tokens固定为 4096。不同模型、不同任务对输出长度的需求差异很大:较短的交互可能希望限制输出成本,长文档生成或代码修改说明则可能需要更高上限。固定值也让 provider 能力无法通过 Pixelle 的统一配置表达。OpenAI-compatible 与 Anthropic provider 在字段命名和能力上存在差异,因此这个能力需要在 provider-neutral 层设计,而不是只在某个 adapter 内部临时改值。
目标
在 LLM 配置和请求层暴露输出 token 上限配置,移除 Anthropic adapter 中的硬编码,同时保持未配置时的现有默认行为兼容。
改动方向
新增
maxOutputTokens之类的 provider-neutral 配置字段,并在LLMGenerateInput/ stream 请求中按需传递。Anthropic adapter 应把该值映射为max_tokens;OpenAI-compatible adapter 需要评估当前 SDK 与目标模型应使用的字段,并在可支持时进行映射。需要注意配置校验、默认值、文档和测试,避免把 provider 特定字段泄漏到公共 API 的过多位置。
可能涉及模块
src/config/schema.tssrc/config/types.tssrc/config/loader.tssrc/llm/types.tssrc/llm/provider/anthropic-compatible-client.tssrc/llm/provider/openai-compatible-client.tssrc/agent/agent.tsdocs/provider-adapter.mdtests/config和 provider adapter 测试任务清单
maxOutputTokensmax_tokens改为读取请求或配置值验收标准
maxOutputTokens时保持当前默认行为max_tokens建议标签
feature、llm、config