feat: Agnes上下文512K→1M + Ollama支持配置num_ctx

Agnes AI:
- adapter注释和API文档更新: 上下文512K→1M (官方已升级)

Ollama num_ctx 支持:
- MetonaGenerationParams 新增 contextLength 字段
- OllamaAdapter.toNativeRequest 发送 options.num_ctx
- AgentLoopEngine 从 config 读取并传递到请求参数
- database.service 新增 ollama.numCtx 默认配置(null=由模型决定)
- SettingsModal LLM设置: Ollama 选中时显示上下文长度输入框
- main.ts 启动时从 configService 读取 ollama.numCtx

数据流:
Settings → configService → main.ts → AgentLoopEngine.config
→ MetonaRequest.params → OllamaAdapter → options.num_ctx
This commit is contained in:
thzxx
2026-06-27 21:57:05 +08:00
parent 8b3dc4298d
commit e4c0259afc
9 changed files with 32 additions and 4 deletions
@@ -100,7 +100,7 @@ export class AgnesAdapter extends BaseAdapter {
* Agnes AI 特有参数:
* - 多模态图片:user 消息的 images[] → OpenAI content 数组 [{type:"text"}, {type:"image_url"}]
* - chat_template_kwargs: { enable_thinking: true } — 启用思考模式(非 thinking 字段)
* - 默认 max_tokens: 65536512K 上下文
* - 默认 max_tokens: 655361M 上下文,65.5K 最大输出
*/
private toNativeRequest(request: MetonaRequest, stream: boolean): Record<string, unknown> {
const messages = buildOpenAICompatibleMessages(request);
@@ -388,6 +388,7 @@ export class OllamaAdapter extends BaseAdapter {
num_predict: request.params.maxTokens,
top_p: request.params.topP,
stop: request.params.stopSequences,
num_ctx: request.params.contextLength,
},
};
+1
View File
@@ -147,6 +147,7 @@ export class AgentLoopEngine extends EventEmitter {
stream: true,
thinkingEnabled: true,
thinkingEffort: 'high',
contextLength: this.config.contextLength,
},
};
+2
View File
@@ -63,6 +63,8 @@ export interface AgentLoopConfig {
contextWindow: number;
retryCount: number;
temperature: number;
/** Ollama 上下文窗口大小(num_ctx),其他 Provider 忽略 */
contextLength?: number;
}
// ===== Agent Loop 输出 =====
+2
View File
@@ -53,6 +53,8 @@ export interface MetonaGenerationParams {
thinkingEnabled?: boolean;
/** 思考强度(替代 thinkingBudget,各 Provider 映射见 Adapter 规范) */
thinkingEffort?: 'low' | 'medium' | 'high' | 'max';
/** 上下文窗口大小(仅 Ollama 支持 num_ctx */
contextLength?: number;
}
// ===== 安全约束 =====