feat(complexity): 新增 AUTO·由模型判断 复杂度档位 (tsk_zacmwH3chZpG)
新建任务时除手选 hard/medium/easy 外,新增 AUTO 档:先以 medium 落库 占位,建任务后异步用 sonnet 起一次轻量分类调用回填三档结果并记录理由, 不阻塞建任务返回;模型不可用/解析失败一律兜底 medium,绝不报错。 - web 看板:复杂度 seg 增加第四档 AUTO(默认选中,cyan 样式),提交 complexity='auto' - src/api/server.ts:POST tasks 接受 'auto' → medium 占位 + 异步 classify 回填(可注入 classify 测试) - src/executor/classify.ts(新增):buildClassifyPrompt/parseClassification/classifyComplexity 复用 cc.ts/models.ts,sonnet 省额度,无工具、限轮限时 - src/executor/models.ts:pickClassifierModel(复用 executor easy 档 + MAESTRO_MODEL_EASY 覆盖) - src/store/store.ts:applyAutoComplexity 回填复杂度+重置状态+理由入产出字段+广播 task.updated - test/classify.test.ts:解析映射/兜底、prompt、回填、建任务集成(13 例) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -45,6 +45,15 @@ export function resolvedExecutorModels(project: Project): Record<Complexity, str
|
||||
return out;
|
||||
}
|
||||
|
||||
/**
|
||||
* AUTO 复杂度分类器用的模型:复用 executor easy 档(claude-sonnet,省额度),
|
||||
* env MAESTRO_MODEL_EASY 可覆盖。单次轻量调用,不走 project.model。
|
||||
*/
|
||||
export function pickClassifierModel(): string {
|
||||
const [env, fallback] = MODEL_TABLE.executor.easy;
|
||||
return process.env[env]?.trim() || fallback;
|
||||
}
|
||||
|
||||
/** 错误信息是否像“模型不可用”(not_found / invalid / permission 等模式 + 提到 model) */
|
||||
export function isModelError(msg: string): boolean {
|
||||
if (!/model/i.test(msg)) return false;
|
||||
|
||||
Reference in New Issue
Block a user