mirror of
https://github.com/openclaw/openclaw.git
synced 2026-04-09 08:11:09 +00:00
* feat(agents): support `thinkingDefault: "adaptive"` for Anthropic models Anthropic's Opus 4.6 and Sonnet 4.6 support adaptive thinking where the model dynamically decides when and how much to think. This is now Anthropic's recommended mode and `budget_tokens` is deprecated on these models. Add "adaptive" as a valid thinking level: - Config: `agents.defaults.thinkingDefault: "adaptive"` - CLI: `/think adaptive` or `/think auto` - Pi SDK mapping: "adaptive" → "medium" effort at the pi-agent-core layer, which the Anthropic provider translates to `thinking.type: "adaptive"` with `output_config.effort: "medium"` - Provider fallbacks: OpenRouter and Google map "adaptive" to their respective "medium" equivalents Closes #30880 Made-with: Cursor * style(changelog): format changelog with oxfmt * test(types): fix strict typing in runtime/plugin-context tests --------- Co-authored-by: Peter Steinberger <steipete@gmail.com>
35 lines
1014 B
TypeScript
35 lines
1014 B
TypeScript
import type { ThinkingLevel } from "@mariozechner/pi-agent-core";
|
|
import type { ReasoningLevel, ThinkLevel } from "../../auto-reply/thinking.js";
|
|
|
|
export function mapThinkingLevel(level?: ThinkLevel): ThinkingLevel {
|
|
// pi-agent-core supports "xhigh"; OpenClaw enables it for specific models.
|
|
if (!level) {
|
|
return "off";
|
|
}
|
|
// "adaptive" maps to "medium" at the pi-agent-core layer. The Pi SDK
|
|
// provider then translates this to `thinking.type: "adaptive"` with
|
|
// `output_config.effort: "medium"` for models that support it (Opus 4.6,
|
|
// Sonnet 4.6).
|
|
if (level === "adaptive") {
|
|
return "medium";
|
|
}
|
|
return level;
|
|
}
|
|
|
|
export function describeUnknownError(error: unknown): string {
|
|
if (error instanceof Error) {
|
|
return error.message;
|
|
}
|
|
if (typeof error === "string") {
|
|
return error;
|
|
}
|
|
try {
|
|
const serialized = JSON.stringify(error);
|
|
return serialized ?? "Unknown error";
|
|
} catch {
|
|
return "Unknown error";
|
|
}
|
|
}
|
|
|
|
export type { ReasoningLevel, ThinkLevel };
|