/** * Agnes AI Provider Adapter * * OpenAI 兼容 API,免费使用。 * 支持 Tool Calling、Thinking 模式、512K 上下文、多模态(图片 base64)。 * * 差异于 DeepSeek: * - Thinking 模式使用 chat_template_kwargs(非 thinking 字段) * - 图片使用 base64 格式(与 Ollama 一致,通过 images 字段传递) * - 512K 上下文,65.5K 最大输出 * * @see apis/agnes-ai-api-docs-20260625.html */ import { DeepSeekAdapter } from './deepseek.adapter'; import type { MetonaRequest } from '../types'; export class AgnesAdapter extends DeepSeekAdapter { override readonly provider: string = 'agnes'; readonly supportedModels = ['agnes-2.0-flash']; readonly supportsToolCalling = true; readonly supportsThinking = true; /** * 覆盖原生请求构建 * * 差异: * 1. Thinking 模式使用 chat_template_kwargs * 2. 图片处理由基类 DeepSeekAdapter.toNativeRequest 完成(OpenAI 多模态格式) */ protected override toNativeRequest(request: MetonaRequest): Record { const base = super.toNativeRequest(request) as Record; // Agnes Thinking 模式:使用 chat_template_kwargs if (request.params?.thinkingEnabled) { delete base.thinking; delete base.reasoning_effort; base.chat_template_kwargs = { enable_thinking: true }; } // Agnes 默认 max_tokens 更大 if (!request.params.maxTokens) { base.max_tokens = 65536; } return base; } }