|
|
@@ -25,12 +25,7 @@ pnpm --filter @actalk/inkos-core build # 改了 core 后必须重建(或
|
|
|
- **不要推测错误** — 遇到报错先读完整错误信息,定位根因后再修,不凭猜测改代码
|
|
|
- **原子化提交** — 每个 commit 只做一件事,功能和修复分开提交;不要把不相关的改动塞进同一个 commit
|
|
|
- **每步都跑测试** — 每个 task 完成后必须 `pnpm test` 全量通过,不能攒到最后才跑
|
|
|
-- **防止 maxTokens 回归** — 替换 LLM provider / 改 `createLLMClient` 时必须遵守以下设计,违反了会让 agent per-call 指定的大 maxTokens 被意外裁剪、基础设定/章节输出被截断:
|
|
|
- - `LLMConfig.maxTokens` 的语义是 **per-call fallback**(agent 调 chat() 没指定 maxTokens 时用这个),**不是硬上限**
|
|
|
- - `LLMConfig.maxTokensCap` 的语义才是 **硬上限**——只有用户确实想封顶 per-call 最大输出时才显式 set,默认 undefined → `client.defaults.maxTokensCap = null` = 不封顶
|
|
|
- - 两个字段在 `createLLMClient` 里的赋值**禁止合并**:`maxTokens: config.maxTokens ?? 8192`、`maxTokensCap: config.maxTokensCap ?? null`;**严禁**写成 `maxTokensCap: config.maxTokens ?? null`(历史 bug,会让 architect 的 per-call 16384 被 config.maxTokens=8192 裁到 8192)
|
|
|
- - 任何改动必须让 `packages/core/src/__tests__/provider.test.ts` 里 "createLLMClient maxTokensCap regression" 那组回归测试继续通过
|
|
|
- - agent 内部调 `this.chat(..., { maxTokens: N })` 时 N 要反映该 agent 实际产出长度需求;**不要硬编码到 defaults**、**不要在 stub 测试里写具体数字误导后人**(stub 用 `as unknown as LLMClient` cast 即可)
|
|
|
+- **防止 maxTokens 回归** — 替换 LLM provider 时必须确认 maxTokens 参数正确传递,不能丢失或硬编码;写测试验证
|
|
|
- **禁止简写/比喻式表达** — 不用"记账""接住""一等公民""跑全仓""闭环""抓手""赋能""落""落盘""落地""打(接口)"这类简写、借喻或商务黑话。一律用完整、直白的中文句子说清楚到底在做什么。示例:
|
|
|
- "打 OpenAI 的 /models" → "向 OpenAI 的 /models 接口**发送请求**"(所有"打 XX 接口 / 打 API"都改为"向 XX 发送请求"或"调用 XX 接口")
|
|
|
- "接住错误" → "catch 住异常并写日志"
|