basic_config (基础配置)

// 系统提示词，支持使用占位符
// 通过/api/ai/prompt-template/config接口返回的system_prompts字段
public String        system_prompt;

// 上下文模板（仅 quick-answer 模式使用）
// 通过/api/ai/prompt-template/config接口返回的context_templates字段
public String        context_template;
2.
model_config (模型设置)

// 对话模型 ID
// 选择智能体使用的大语言模型
@VerifyRequired
public String    model_id;

// 重排序模型 ID
@VerifyRequired
public String    rerank_model_id;

// 温度
// 控制输出的随机性，0 最确定，1 最随机
// 温度参数（0-1）
// 默认：0.7
@VerifyRange(min_value = 0.00, max_value = 1.00)
public Float     temperature;

// 最大生成 token 数
// 模型生成回复的最大Token数量
// 默认：2048
public Integer   max_completion_tokens;

// 是否启用思考模式（适用于支持扩展思考的模型）
public boolean   thinking;
3.
setting_config (Agent模式设置)

// ReAct 最大迭代次数
// Agent 执行任务时的最大推理步骤数
// 默认：10
@VerifyRange(min_value = 1, max_value = 50)
public Integer       max_iterations;

// LLM 调用超时
// 单次 LLM 调用的最大等待时间（秒），超过此时间后调用将被中止
// 0 表示无限等待（不推荐）
// 默认：120
@VerifyRange(min_value = 0)
public Integer       llm_call_timeout;

// 允许使用的工具列表
// 通过使用/api/ai/agent/tools返回列表中项中的name字段
public List<String>  allowed_tools;

// MCP 服务选择模式：all/selected/none
@VerifyEnum(items = {WeknoraConst.SELECT_MODE_ALL, WeknoraConst.SELECT_MODE_SELECTED, WeknoraConst.SELECT_MODE_NONE})
public String        mcp_selection_mode;

// 选中的 MCP 服务 ID 列表
public List<String>  mcp_services;

// Skills 选择模式：all/selected/none
@VerifyEnum(items = {WeknoraConst.SELECT_MODE_ALL, WeknoraConst.SELECT_MODE_SELECTED, WeknoraConst.SELECT_MODE_NONE})
public String        skills_selection_mode;

// 选中的 Skill 名称列表（mode 为 selected 时）
// 通过访问/api/ai/skills/list接口，获取返回列表中项的name字段
public List<String>  selected_skills;
4.
kb_config (知识库设置)

// 知识库选择模式：all/selected/none
@VerifyEnum(items = {WeknoraConst.SELECT_MODE_ALL, WeknoraConst.SELECT_MODE_SELECTED, WeknoraConst.SELECT_MODE_NONE})
public String        kb_selection_mode;

// 关联的知识库 ID 列表
public List<String>  knowledge_bases;

// 仅在用户通过 @ 显式提及时才检索知识库
public boolean       retrieve_kb_only_when_mentioned;

// 支持的文件类型（["pdf", "docx", "txt", "md", "csv", "xlsx", "jpg"]）
// 限制可选择的文件类型，留空表示支持所有类型
@VerifyEnum(items = {
        WeknoraConst.FILE_TYPE_PDF,
        WeknoraConst.FILE_TYPE_DOCX,
        WeknoraConst.FILE_TYPE_TXT,
        WeknoraConst.FILE_TYPE_MD,
        WeknoraConst.FILE_TYPE_CSV,
        WeknoraConst.FILE_TYPE_XLSX,
        WeknoraConst.FILE_TYPE_JPG
})
public List<String>  supported_file_types;
5.
img_vlm_config (图片上传/多模态设置)

// 是否允许上传图片
// 默认：false
public boolean   image_upload_enabled;

// 图片分析所用的 VLM 模型 ID
public String    vlm_model_id;

// 图片存储提供者：local/minio/cos/tos/s3/oss，为空使用全局默认
@VerifyEnum(items = {
        WeknoraConst.STORAGE_PROVIDER_TYPE_LOCAL,
        WeknoraConst.STORAGE_PROVIDER_TYPE_MINIO,
        WeknoraConst.STORAGE_PROVIDER_TYPE_COS,
        WeknoraConst.STORAGE_PROVIDER_TYPE_TOS, 
        WeknoraConst.STORAGE_PROVIDER_TYPE_S3,
        WeknoraConst.STORAGE_PROVIDER_TYPE_OSS
})
public String    image_storage_provider;
6.
faq_config (FAQ策略设置)

// 启用 FAQ 优先
// FAQ 答案将优先于普通文档被引用，提高回答准确性
// 默认：true
public boolean    faq_priority_enabled;

// FAQ 直接回答阈值
// 当问题与 FAQ 相似度超过此值时，直接使用 FAQ 答案 [0-1]
// 默认：0.9
@VerifyRange(min_value = 0.00, max_value = 1.00)
public Float      faq_direct_answer_threshold;

// FAQ 分数加成系数
// FAQ 结果的相关性分数乘以此系数，使其排序更靠前 [1-2]
// 默认：1.2
@VerifyRange(min_value = 1.00, max_value = 2.00)
public Float      faq_score_boost;
7.
web_search_config (网络搜索设置)

// 是否启用网络搜索
// 启用后智能体可以搜索互联网获取信息
// 默认：true
public boolean    web_search_enabled;

// 网络搜索最大结果数
// 每次搜索返回的最大结果数量 [1-10]
// 默认：5
@VerifyRange(min_value =1, max_value = 10)
public Integer    web_search_max_results;

// 网络搜索提供者 ID，为空使用租户默认提供者
public String     web_search_provider_id;

// 是否自动获取重排后的搜索结果页面全文
// 默认：false
public boolean    web_fetch_enabled;

// 重排后获取全文的最大页面数
// 默认：3
public Integer    web_fetch_top_n;
8.
multiple_config (多轮对话设置)

// 是否启用多轮对话
// 开启后将保留历史对话上下文
// 默认：true
public boolean   multi_turn_enabled;

// 保留的历史轮次数
// 保留最近几轮对话作为上下文 [1-20]
// 默认：5
@VerifyRange(min_value =1, max_value = 20)
public Integer   history_turns;
9.
search_config (检索策略设置)

// 向量检索 TopK
// 向量检索返回的最大结果数量 [1-50]
// 默认：10
@VerifyRange(min_value =1, max_value = 50)
public Integer   embedding_top_k;

// 关键词检索阈值
// 关键词检索的最低相关性分数 [0-1]
// 默认：0.3
@VerifyRange(min_value =0, max_value = 1)
public Float     keyword_threshold;

// 向量检索阈值
// 向量检索的最低相似度分数 [0-1]
// 默认：0.5
@VerifyRange(min_value =0, max_value = 1)
public Float     vector_threshold;

// 重排序 TopK
// 重排序后保留的最大结果数量 [1-20]
// 默认：5
@VerifyRange(min_value =1, max_value = 20)
public Integer   rerank_top_k;

// 重排序阈值
// 重排序的最低相关性分数 [-10-10]
// 默认：0.5
@VerifyRange(min_value = -10, max_value = 10)
public Float     rerank_threshold;
10.
advanced_config (高级设置)

// 是否启用查询扩展
// 自动扩展查询词以提高召回率
// 默认：true
public boolean   enable_query_expansion;

// 是否启用多轮对话查询改写
// 多轮对话时自动改写用户问题，消解指代和补全省略
// 默认：true
public boolean   enable_rewrite;

// 改写系统提示词
// 用于问题改写的系统提示词（留空使用默认）
// 通过访问/api/ai/prompt-template/config接口返回的rewrites列表项中的content字段
public String    rewrite_prompt_system;

// 改写用户提示词模板
// 用于问题改写的用户提示词模板（留空使用默认）
// 通过访问/api/ai/prompt-template/config接口返回的rewrites列表项中的user字段
public String    rewrite_prompt_user;

// 回退策略：fixed（固定回复）或 model（模型生成）；未设置时在服务端默认为 model
// 当无法从知识库找到相关内容时的处理方式
// 默认：model
@VerifyEnum(items = {WeknoraConst.FALLBACK_STRATEGY_FIXED, WeknoraConst.FALLBACK_STRATEGY_MODEL})
public String    fallback_strategy;

// 固定回退回复（fallback_strategy 为 fixed 时使用）
// 当无法回答时返回的固定文本
public String    fallback_response;

// 回退提示词（fallback_strategy 为 model 时使用）
// 当无法从知识库找到答案时，引导模型生成回复的提示词
// 通过访问/api/ai/prompt-template/config接口返回的fall_backs列表项中的content字段
public String    fallback_prompt;