error.e0001: "AI Agent not found"
error.e0002: "AI Agent 不存在"
error.e0003: "AI Agent 不存在或已停用"
error.e0004: "AI Agent 不存在或未启用"
error.e0005: "AI Agent 名称不能为空"
error.e0006: "AI Agent 名称已存在"
error.e0007: "AI Agent不存在或未启用"
error.e0008: "AI Agent关联的AI配置不存在"
error.e0009: "AI 配置不存在"
error.e0010: "AI 配置不能为空"
error.e0011: "AI 配置未启用"
error.e0012: "AI配置不存在"
error.e0013: "Agent 运行日志不存在"
error.e0014: "CheckPoint 不存在"
error.e0015: "CheckPoint 与 AI Agent 不匹配"
error.e0016: "Direct Tool 的 toolCode 与 serverCode 不一致"
error.e0017: "Direct Tool 的 toolCode 与 toolName 不一致"
error.e0018: "Direct Tool 的 toolCode 格式不合法"
error.e0019: "Direct Tool 的 toolCode、serverCode 和 toolName 不能为空"
error.e0020: "Direct Tools 仅允许配置 MCP 工具"
error.e0021: "Direct Tools 配置格式不合法"
error.e0022: "Excel文件为空"
error.e0023: "Excel文件解析失败"
error.e0024: "Excel文件读取失败"
error.e0025: "FAQ不存在"
error.e0026: "FAQ知识库不支持文档"
error.e0027: "Graph Tools 仅允许配置 Graph Tool"
error.e0028: "Graph Tools 配置格式不合法"
error.e0029: "HTML 消息内容为空"
error.e0030: "HTML消息中的图片必须使用已上传文件"
error.e0031: "JSON 数组格式不合法"
error.e0032: "MCP endpoint不能为空"
error.e0033: "MCP服务未启用"
error.e0034: "MCP服务配置不存在"
error.e0035: "MCP未启用"
error.e0036: "OIDC clientId 未配置"
error.e0037: "OIDC clientSecret 未配置"
error.e0038: "OIDC id_token 不存在"
error.e0039: "OIDC issuer 未配置"
error.e0040: "OIDC redirectUrl 未配置"
error.e0041: "OIDC 授权 code 不能为空"
error.e0042: "OIDC 用户信息不存在"
error.e0043: "OIDC 用户标识不存在"
error.e0044: "OIDC 登录密钥未配置"
error.e0045: "OIDC 登录未启用"
error.e0046: "OIDC 登录状态无效或已过期"
error.e0047: "OIDC 账号绑定的系统用户不存在"
error.e0048: "OSS accessKeyId 未配置"
error.e0049: "OSS accessKeySecret 未配置"
error.e0050: "OSS bucket 未配置"
error.e0051: "OSS endpoint 未配置"
error.e0052: "Skill ID 不合法"
error.e0053: "Skill 不存在"
error.e0054: "Skill 不存在或未启用"
error.e0055: "Skill 名称不能为空"
error.e0056: "Skill 未启用"
error.e0057: "Skill 编码不能为空"
error.e0058: "Skill 编码已存在"
error.e0059: "Web渠道配置 position 只能为 left 或 right"
error.e0060: "Web渠道配置不合法"
error.e0061: "aiAgentId不能为空"
error.e0062: "channel not found"
error.e0063: "checkPointId不能为空"
error.e0064: "conversationId不能为空"
error.e0065: "customerId 必填"
error.e0066: "documentId或faqId不能为空"
error.e0067: "indexStatus参数不合法"
error.e0068: "openKfID不能为空"
error.e0069: "openKfId 已被其他渠道使用"
error.e0070: "serverCode不能为空"
error.e0071: "skillCode不能为空"
error.e0072: "ticket 不能为空"
error.e0073: "toolCode 绑定的 MCP 服务不存在或未启用"
error.e0074: "toolCode不能为空"
error.e0075: "toolCode格式不合法"
error.e0076: "toolName不能为空"
error.e0077: "tool_search 只支持调用 MCP toolCode"
error.e0078: "userMessage不能为空"
error.e0079: "上传文件超过大小限制"
error.e0080: "不支持的发送人类型"
error.e0081: "不支持的已读操作类型"
error.e0082: "不支持的文件存储类型"
error.e0083: "不能将标签设为自己的子标签"
error.e0084: "不能将目录设为自己的子目录"
error.e0085: "不能添加或修改历史日期的排班"
error.e0086: "事务上下文不能为空"
error.e0087: "仅允许撤回自己发送的消息"
error.e0088: "仅已删除的 Skill 支持恢复"
error.e0089: "仅支持.xlsx文件"
error.e0090: "仅支持上传图片文件"
error.e0091: "仅支持撤回客服消息"
error.e0092: "仅能指定一条主联系方式"
error.e0093: "企业微信 AgentID 未配置"
error.e0094: "企业微信 openKfID 不能为空"
error.e0095: "企业微信媒体ID不能为空"
error.e0096: "企业微信客户ID不能为空"
error.e0097: "企业微信手机号已被系统用户占用"
error.e0098: "企业微信接入渠道未绑定AI Agent"
error.e0099: "企业微信接入渠道绑定的AI Agent不存在或已禁用"
error.e0100: "企业微信未启用或配置不完整"
error.e0101: "企业微信消息ID不能为空"
error.e0102: "企业微信渠道配置不合法"
error.e0103: "企业微信渠道配置缺少 openKfId"
error.e0104: "企业微信用户ID已被系统用户名占用"
error.e0105: "企业微信用户ID获取失败"
error.e0106: "企业微信用户信息不存在"
error.e0107: "企业微信登录回调地址未配置"
error.e0108: "企业微信登录密钥未配置"
error.e0109: "企业微信登录未启用"
error.e0110: "企业微信登录状态无效"
error.e0111: "企业微信登录状态无效或已过期"
error.e0112: "企业微信账号绑定的系统用户不存在"
error.e0113: "企业微信返回的图片 media_id 为空"
error.e0114: "企业微信返回的消息ID为空"
error.e0115: "企业微信邮箱已被系统用户占用"
error.e0116: "会话不存在"
error.e0117: "会话与 AI Agent 不匹配"
error.e0118: "会话与客户不匹配"
error.e0119: "会话已关闭"
error.e0120: "会话未分配客服，暂不允许发送消息"
error.e0121: "会话筛选项不合法"
error.e0122: "供应商不能为空"
error.e0123: "兜底策略不合法"
error.e0124: "公司不存在"
error.e0125: "公司名称不能为空"
error.e0126: "公司名称已存在"
error.e0127: "关联用户不存在"
error.e0128: "关闭原因不能为空"
error.e0129: "内容类型不支持"
error.e0130: "分块策略不支持"
error.e0131: "创建会话失败"
error.e0132: "单条排班记录不能跨天"
error.e0133: "参数不合法"
error.e0134: "只有处理中会话允许转接"
error.e0135: "只有待接入会话允许分配"
error.e0136: "只有待接入会话允许自动分配"
error.e0137: "只有待接入未分配会话允许自动分配"
error.e0138: "只能移动当前知识库下的FAQ"
error.e0139: "只能移动当前知识库下的文档"
error.e0140: "只能调整同知识库同级目录排序"
error.e0141: "同级下已存在相同名称的标签"
error.e0142: "同级下已存在相同名称的目录"
error.e0143: "启用中的AI配置不允许删除"
error.e0144: "回复超时秒数不能小于 0"
error.e0145: "图片消息缺少 assetId"
error.e0146: "图片资源不存在"
error.e0147: "基础地址不能为空"
error.e0148: "处理进展不能为空"
error.e0149: "外部用户标识不能为空"
error.e0150: "外部身份未初始化"
error.e0151: "存在冲突排班，请先处理冲突"
error.e0152: "存在子目录的目录不能移动到二级目录"
error.e0153: "存在无效工单标签"
error.e0154: "存在未启用的工单标签"
error.e0155: "客户不存在"
error.e0156: "客户名称不能为空"
error.e0157: "客服会话不能为空"
error.e0158: "客服会话参数不完整"
error.e0159: "客服会话密钥未配置"
error.e0160: "客服会话已过期"
error.e0161: "客服会话校验失败"
error.e0162: "客服工号和展示名不能为空"
error.e0163: "客服工号已存在"
error.e0164: "客服档案不存在"
error.e0165: "客服状态不合法"
error.e0166: "客服组下仍有关联 AI Agent，无法删除"
error.e0167: "客服组下仍有关联客服档案，无法删除"
error.e0168: "客服组下仍有关联组排班，无法删除"
error.e0169: "客服组不存在"
error.e0170: "客服组名称不能为空"
error.e0171: "客服组名称已存在"
error.e0172: "客服组排班不存在"
error.e0173: "客服组未启用"
error.e0174: "客服组状态不合法"
error.e0175: "密码长度不合法"
error.e0176: "导入文件读取失败"
error.e0177: "导入模式不合法"
error.e0178: "工单不存在"
error.e0179: "工单描述不能为空"
error.e0180: "工单来源不合法"
error.e0181: "工单标题不能为空"
error.e0182: "工单状态不合法"
error.e0183: "已关闭的会话无法关联客户"
error.e0184: "已删除的 Skill 不能直接修改状态，请先恢复"
error.e0185: "已有接入渠道绑定该 AI Agent，无法删除"
error.e0186: "平台消息不存在"
error.e0187: "当前 OIDC 绑定已停用"
error.e0188: "当前企业微信绑定已停用"
error.e0189: "当前会话不处于 AI 接待状态"
error.e0190: "当前会话已分配客服"
error.e0191: "当前会话已分配给其他客服"
error.e0192: "当前会话已由人工客服接管"
error.e0193: "当前会话未分配客服"
error.e0194: "当前暂不在人工客服服务时间内"
error.e0195: "当前暂不支持该存储类型的文件读取"
error.e0196: "当前渠道不支持用户 JWT Secret"
error.e0197: "当前状态不允许关闭会话"
error.e0198: "当前登录身份不是企业内部成员"
error.e0199: "当前知识库不是FAQ知识库"
error.e0200: "当前系统账号已被禁用"
error.e0201: "微信公众号渠道配置不合法"
error.e0202: "微信授权 code 不能为空"
error.e0203: "快捷回复不存在"
error.e0204: "所属公司不存在"
error.e0205: "所属客服组不存在"
error.e0206: "手机号已存在"
error.e0207: "技能说明不能为空"
error.e0208: "接入渠道不存在"
error.e0209: "接入渠道不存在或已停用"
error.e0210: "接入渠道异常"
error.e0211: "接入渠道未初始化"
error.e0212: "接收人不能为空"
error.e0213: "文件不可访问"
error.e0214: "文件不存在"
error.e0215: "文本内容不能为空"
error.e0216: "文本列表不能为空"
error.e0217: "文本消息内容为空"
error.e0218: "文档不存在"
error.e0219: "文档知识库不能使用FAQ分块策略"
error.e0220: "新密码不能为空"
error.e0221: "无权关闭该会话"
error.e0222: "无权访问该会话"
error.e0223: "无权转接该会话"
error.e0224: "无权限关联该会话"
error.e0225: "无权限执行该操作"
error.e0226: "无权限操作"
error.e0227: "时间格式错误"
error.e0228: "星期必须在 1 到 7 之间"
error.e0229: "最大并发接待数不能小于 0"
error.e0230: "服务模式不合法"
error.e0231: "未找到匹配的企业微信接入渠道"
error.e0232: "未生成任何排班"
error.auth.expired: "未登录或登录已过期"
error.e0234: "未配置可用的 AI 配置"
error.e0235: "未配置可用的 Embedding 模型"
error.e0236: "权限不存在"
error.e0237: "标准问题已存在，已跳过"
error.e0238: "标签不存在"
error.e0239: "标签名称不能为空"
error.e0240: "标题和内容不能为空"
error.e0241: "检索日志不存在"
error.e0242: "模型名称不能为空"
error.e0243: "模型类型不能为空"
error.e0244: "消息不存在"
error.e0245: "消息内容不能为空"
error.e0246: "消息已撤回"
error.e0247: "渠道名称不能为空"
error.e0248: "渠道标识已存在"
error.e0249: "渠道状态不合法"
error.e0250: "渠道类型不合法"
error.e0251: "父标签不存在"
error.e0252: "父目录不存在"
error.e0253: "父目录不属于当前知识库"
error.e0254: "状态值不合法"
error.e0255: "用户不存在"
error.e0256: "用户不存在或已被禁用"
error.e0257: "用户名不能为空"
error.e0258: "用户名和密码不能为空"
error.e0259: "用户名已存在"
error.e0260: "用户名或密码错误"
error.e0261: "用户名称不能为空"
error.e0262: "用户标识不能为空"
error.e0263: "用户身份不能为空"
error.e0264: "用户身份已过期"
error.e0265: "用户身份校验失败"
error.e0266: "用户身份校验未配置"
error.e0267: "登录凭证已失效"
error.e0268: "登录凭证已过期"
error.e0269: "登录凭证无效"
error.e0270: "登录失败次数过多，请稍后再试"
error.e0271: "登录票据无效或已过期"
error.e0272: "登录结果不能为空"
error.e0273: "目录不存在"
error.e0274: "目录不能移动到其他知识库"
error.e0275: "目录名称不能为空"
error.e0276: "目标客服不存在"
error.e0277: "目标客服不能与当前指派人相同"
error.e0278: "目标客服不能为空"
error.e0279: "目标工具未被当前会话授权"
error.e0280: "相似问格式不合法"
error.e0281: "知识库下存在FAQ，无法删除"
error.e0282: "知识库下存在文档，无法删除"
error.e0283: "知识库不存在"
error.e0284: "知识库不能为空"
error.e0285: "知识库未启用"
error.e0286: "知识库目录不可用"
error.e0287: "知识库目录不存在"
error.e0288: "知识库目录不属于当前知识库"
error.e0289: "知识库目录最多支持二级"
error.e0290: "知识库类型不支持"
error.e0291: "禁用角色不允许分配"
error.e0292: "答案不能为空"
error.e0293: "系统内置角色不允许删除"
error.e0294: "组长用户不存在"
error.e0295: "结束日期必须晚于或等于开始日期"
error.e0296: "结束时间必须晚于开始时间"
error.e0297: "缺少标准问题列"
error.e0298: "缺少答案列"
error.e0299: "联系方式不存在"
error.e0300: "联系方式不能为空"
error.e0301: "联系方式类型不合法"
error.e0302: "视图不存在"
error.e0303: "视图名称不能为空"
error.e0304: "视图筛选条件格式不正确"
error.e0305: "角色不存在"
error.e0306: "角色名称和编码不能为空"
error.e0307: "角色已被用户使用，无法删除"
error.e0308: "角色编码已存在"
error.e0309: "该客服组在所选时间段已存在排班"
error.e0310: "该标签下存在子标签，无法删除"
error.e0311: "该标签已关联会话，无法删除"
error.e0312: "该标签已关联工单，无法删除"
error.e0313: "该渠道不支持开放客服配置"
error.e0314: "该用户已存在客服档案"
error.e0315: "该目录下存在FAQ，无法删除"
error.e0316: "该目录下存在子目录，无法删除"
error.e0317: "该目录下存在文档，无法删除"
error.e0318: "该联系方式已存在"
error.e0319: "请使用删除接口处理删除状态"
error.e0320: "请至少选择一个知识库"
error.e0321: "请选择 AI Agent"
error.e0322: "请选择上传图片"
error.e0323: "请选择上传文件"
error.e0324: "请选择上传附件"
error.e0325: "请选择关联用户"
error.e0326: "请选择客服组"
error.e0327: "请选择导入文件"
error.e0328: "请选择所属客服组"
error.e0329: "请选择星期"
error.e0330: "请选择要删除的FAQ"
error.e0331: "请选择要删除的文档"
error.e0332: "请选择要移动的FAQ"
error.e0333: "请选择要移动的文档"
error.e0334: "负责人不存在"
error.path.invalid: "路径参数错误"
error.e0336: "转人工模式不合法"
error.e0337: "通知不存在"
error.e0338: "邮箱已存在"
error.e0339: "配置名称不能为空"
error.e0340: "问题不能为空"
error.e0341: "问题不能超过500字"
error.e0342: "附件不存在"
error.e0343: "附件尚未上传完成"
error.e0344: "附件消息 payload 格式错误"
error.e0345: "附件消息缺少 assetId"
error.e0346: "附件消息缺少 payload"
error.e0347: "默认客服组待接入池模式必须至少选择一个客服组"
error.notFound: "数据不存在"
error.knowledgeBase.referencedByAgent: "知识库已被 AI Agent「%s」引用，请先解除绑定"
error.knowledgeBase.referencedByAgents: "知识库已被 %d 个 AI Agent 引用，请先解除绑定"
error.agentTeamSchedule.batchLimit: "单次最多生成 %d 条排班"
error.agentTeamSchedule.conflictRange: "该客服组在 %s 至 %s 已存在排班"
error.knowledgeFAQImport.duplicateQuestionInFile: "同一文件中标准问题重复，首次出现于第%d行"
error.mcp.listToolsFailed: "列出 MCP 工具失败: %v"
error.mcp.callToolFailed: "调用 MCP 工具失败: %v"
error.mcp.connectServerFailed: "连接 MCP Server 失败: %v"
error.wxwork.unsupportedOutboundMessageType: "不支持的企业微信下行消息类型: %s"
error.wxwork.currentUnsupportedOutboundMessageType: "当前暂不支持企业微信下行消息类型: %s"
error.param.required: "参数：%s不能为空"
error.oidc.loginDisabled: "OIDC 登录未启用"
error.oidc.stateSecretMissing: "OIDC 登录密钥未配置"
error.oidc.profileMissing: "OIDC 用户信息不存在"
error.oidc.bindingDisabled: "当前 OIDC 绑定已停用"
error.oidc.boundUserMissing: "OIDC 账号绑定的系统用户不存在"
error.wxwork.loginDisabled: "企业微信登录未启用"
error.wxwork.loginSecretMissing: "企业微信登录密钥未配置"
error.wxwork.profileMissing: "企业微信用户信息不存在"
error.wxwork.bindingDisabled: "当前企业微信绑定已停用"
error.wxwork.boundUserMissing: "企业微信账号绑定的系统用户不存在"
error.wxwork.userIDMissing: "企业微信用户ID获取失败"
error.wxwork.userIDTaken: "企业微信用户ID已被系统用户名占用"
error.wxwork.mobileTaken: "企业微信手机号已被系统用户占用"
error.wxwork.emailTaken: "企业微信邮箱已被系统用户占用"
error.wxwork.configIncomplete: "企业微信未启用或配置不完整"
error.customerSession.secretMissing: "客服会话密钥未配置"
error.conversation.createFailed: "创建会话失败"
error.conversation.tagNotFound: "标签不存在"
error.aiConfig.noneEnabled: "未配置可用的 AI 配置"
error.embeddingModel.noneEnabled: "未配置可用的 Embedding 模型"
error.agentTeamSchedule.startAtInvalid: "开始时间格式错误"
error.agentTeamSchedule.startAtInvalidWithFormat: "开始时间格式错误，请使用 yyyy-MM-dd HH:mm:ss 或 RFC3339"
error.agentTeamSchedule.endAtInvalid: "结束时间格式错误"
error.agentTeamSchedule.endAtInvalidWithFormat: "结束时间格式错误，请使用 yyyy-MM-dd HH:mm:ss 或 RFC3339"
error.agentTeamSchedule.startDateInvalid: "开始日期格式错误"
error.agentTeamSchedule.startDateInvalidWithFormat: "开始日期格式错误，请使用 yyyy-MM-dd"
error.agentTeamSchedule.endDateInvalid: "结束日期格式错误"
error.agentTeamSchedule.endDateInvalidWithFormat: "结束日期格式错误，请使用 yyyy-MM-dd"
error.agentTeamSchedule.startTimeInvalid: "开始时间格式错误"
error.agentTeamSchedule.startTimeInvalidWithFormat: "开始时间格式错误，请使用 HH:mm 或 HH:mm:ss"
error.agentTeamSchedule.endTimeInvalid: "结束时间格式错误"
error.agentTeamSchedule.endTimeInvalidWithFormat: "结束时间格式错误，请使用 HH:mm 或 HH:mm:ss"
tool.builtin.toolSearch.title: "搜索并调用动态工具"
tool.builtin.toolSearch.description: "用于搜索当前允许使用的 MCP 工具，并在确认目标 toolCode 后动态调用该工具。适合处理长尾工具，不应替代固定内置流程工具。"
tool.builtin.toolSearch.appendix: |-
  当你需要使用长尾 MCP 能力时，优先使用 tool_search 工具，并遵守以下规则：
  1. 先调用 tool_search 搜索需要的动态工具，再继续使用已选中的真实工具。
  2. 不要假设所有长尾工具一开始就可见；只有被 tool_search 选中的工具，后续模型调用才会暴露出来。
  3. 如果当前已有固定内置工具可以完成任务，优先使用固定工具，不要滥用 tool_search。
tool.builtin.skill.title: "加载专项技能说明"
tool.builtin.skill.description: "用于按需加载当前 Agent 可用的专项技能说明文档，适合在需要专项处理规则时再注入上下文。"
tool.graph.triageServiceRequest.title: "服务请求分流"
tool.graph.triageServiceRequest.description: "Graph Tool。分析当前会话，判断应继续回答、准备工单草稿还是转人工；当适合创建工单时，也会准备工单草稿。"
tool.graph.triageServiceRequest.appendix: |-
  当你需要在继续回答、创建工单、转人工之间做判断时，优先调用 triage_service_request，并遵守以下规则：
  1. 工具会返回 recommendedAction，并在需要创建工单时包含 ticketDraft。
  2. 如果 recommendedAction=continue_answering，继续澄清或回答，不要直接升级。
  3. 如果 recommendedAction=prepare_ticket，使用 ticketDraft 或补充缺失字段后，再考虑调用 create_ticket_with_confirmation。
  4. 如果 recommendedAction=handoff_to_human，先确认转人工原因足够明确，再调用 handoff_to_human。
  5. 当升级路径不明确时，使用此工具，而不是只依赖主提示词做复杂路由判断。
tool.graph.analyzeConversation.title: "分析会话风险和摘要"
tool.graph.analyzeConversation.description: "Graph Tool。总结当前会话，识别风险信号，并建议继续回答、创建工单或转人工。"
tool.graph.analyzeConversation.appendix: |-
  当会话可能涉及升级、退款、赔偿、明显负面情绪、创建工单或转人工时，优先调用 analyze_conversation，并遵守以下规则：
  1. 此工具返回结构化摘要、风险信号和下一步建议；它不会创建工单或执行转人工。
  2. 如果工具建议 handoff_to_human，先确认转人工条件，再调用 handoff_to_human。
  3. 如果工具建议 prepare_ticket，调用 prepare_ticket_draft 或继续收集信息后再创建工单。
  4. 如果工具建议 continue_answering，继续澄清和回答，不要过早升级。
tool.graph.prepareTicketDraft.title: "准备工单草稿"
tool.graph.prepareTicketDraft.description: "Graph Tool。基于当前会话和已收集信息准备工单草稿，包括建议标题、描述、缺失字段和追问问题。"
tool.graph.prepareTicketDraft.appendix: |-
  当用户要求创建工单、投诉、报障或售后处理，但标题或描述仍不清晰时，优先调用 prepare_ticket_draft，并遵守以下规则：
  1. 此工具会准备工单草稿，并返回建议标题、建议描述、缺失字段和追问问题。
  2. 如果 ready=false，根据 missingFields 和 followUpQuestions 继续追问，不要直接创建工单。
  3. 如果 ready=true，使用结果考虑调用 create_ticket_with_confirmation。
  4. 此工具只准备草稿，不会创建工单。
tool.graph.createTicketConfirm.title: "创建工单确认流程"
tool.graph.createTicketConfirm.description: "Graph Tool。处理工单参数准备、用户确认、实际创建工单和结果返回。"
tool.graph.createTicketConfirm.appendix: |-
  收集到足够信息后，可以调用 create_ticket_with_confirmation，但必须遵守以下规则：
  1. 只有当用户明确想提交工单、投诉、问题报告或售后请求时，才考虑使用此工具。
  2. 调用前准备清晰的工单标题和问题描述；如果信息仍然分散，先调用 prepare_ticket_draft 或继续追问。
  3. 一旦准备创建工单，必须调用 create_ticket_with_confirmation，不要只用文本声称工单已创建。
  4. 此 Graph Tool 会先请求用户确认；只有用户确认后才会创建工单，用户取消则流程结束。
  5. 如果用户只是提问、泛泛抱怨或表达不满但没有明确要求创建工单，应继续澄清，而不是主动创建。
tool.graph.handoffConversation.title: "转人工确认流程"
tool.graph.handoffConversation.description: "Graph Tool。处理转人工原因准备、用户确认、实际转人工和结果返回。"
tool.graph.handoffConversation.appendix: |-
  确认需要人工帮助后，可以调用 handoff_to_human，但必须遵守以下规则：
  1. 只有当用户明确要求人工客服，或你判断该问题必须由人工处理时才调用此工具。
  2. 调用前清晰总结转人工原因；如果原因模糊，先追问。
  3. 一旦决定转人工，必须调用 handoff_to_human，不要只用文本声称已接入人工。
  4. 此 Graph Tool 会先请求用户确认；只有用户确认后才会转人工，用户取消则流程结束。
  5. 如果问题仍可在当前会话解决，继续帮助用户，不要过早升级。
  6. 如果工具返回 terminal=true 且 shouldRetry=false，说明转人工流程已结束，不要重复调用。
conversation.handoff.waiting: "正在为你接入人工客服，请稍候。"
conversation.handoff.offHours: "当前不在人工客服服务时间内。你可以继续描述问题，我会尽力协助；也可以在服务时间恢复后再次申请人工客服。"
notification.ticketAssigned.title: "工单指派提醒"
notification.ticketAssigned.line: "工单 %s 已指派给你"
notification.ticketAssigned.reason: "指派原因: %s"
notification.conversationTransferred.title: "会话转接提醒"
notification.conversationAutoAssigned.title: "会话自动分配提醒"
notification.conversationAssigned.title: "会话分配提醒"
notification.conversationAssigned.line: "会话 #%s 已分配给你"
notification.conversationAssigned.reason: "分配原因: %s"
notification.conversationTransferred.reason: "转接原因: %s"
notification.ticketAssigned.wxwork.no: "工单号: %s"
notification.ticketAssigned.wxwork.title: "工单标题: %s"
notification.ticketAssigned.wxwork.status: "当前状态: %s"
notification.assignee: "处理人: %s"
notification.conversationAssigned.wxwork.id: "会话ID: #%d"
notification.conversationAssigned.wxwork.summary: "摘要: %s"
notification.conversationAssigned.wxwork.channel: "渠道: %s"
notification.conversationAssigned.wxwork.status: "状态: %s"
notification.time: "时间: %s"
graph.confirmOrCancel: "请回复“确认”或“取消”。"
graph.needExplicitConfirmation: "需要你明确确认。请回复“确认”或“取消”。"
graph.confirmationExpired: "本次确认已过期，请重新发起。"
graph.cancelCreateTicket: "已取消本次工单创建。"
graph.cancelHandoff: "已取消本次转人工。"
graph.ticketCreated: "工单已创建。工单号：%s。标题：%s。"
graph.createTicketConfirmPrompt: |-
  我已准备好为你创建工单。
  标题：%s
  描述：%s
  请回复“确认”或“取消”。
graph.defaultHandoffReason: "用户需要人工客服支持。"
graph.handoffConfirmPrompt: |-
  我已准备好为你接入人工客服。
  原因：%s
  请回复“确认”或“取消”。
conversation.interrupt.defaultPrompt: "请补充更多信息后再试。"
ticket.defaultConversationTitle: "会话工单"
tool.graph.createTicketConfirm.info: "Graph Tool。处理工单参数准备、用户确认、实际创建工单和结果返回。仅当用户明确要求创建工单且标题、描述清晰时使用。"
tool.graph.createTicketConfirm.param.title: "工单标题。简洁概括问题。"
tool.graph.createTicketConfirm.param.description: "工单描述。清晰记录用户的问题、现象和诉求。"
tool.graph.handoffConversation.info: "Graph Tool。处理转人工原因准备、用户确认、实际转人工和结果返回。仅当用户明确要求人工客服，或你确认需要人工处理时使用。当结果 terminal=true 且 shouldRetry=false 时不要重复调用。"
tool.graph.handoffConversation.param.reason: "转人工原因。简要说明为什么需要人工，例如用户明确要求、需要人工核验或售后处理。"
tool.graph.triageServiceRequest.info: "Graph Tool。分析当前会话，判断应继续回答、准备工单草稿还是转人工。建议创建工单时，会返回结构化工单草稿建议。"
tool.graph.triageServiceRequest.param.goal: "分析目标，例如是否升级、创建工单或转人工。"
tool.graph.triageServiceRequest.param.observedIssue: "当前会话中观察到的主要问题或争议。"
tool.graph.triageServiceRequest.param.needTicket: "是否重点评估创建工单。"
tool.graph.triageServiceRequest.param.needHumanHandoff: "是否重点评估转人工。"
tool.graph.triageServiceRequest.param.additionalContext: "补充上下文，例如已经识别的风险信号或约束。"
tool.graph.analyzeConversation.info: "Graph Tool。总结当前会话，识别投诉、支付、情绪等风险信号，并建议继续回答、创建工单或转人工。"
tool.graph.analyzeConversation.param.goal: "分析目标，例如是否转人工、创建工单或执行风险复核。"
tool.graph.analyzeConversation.param.observedIssue: "当前会话中观察到的主要问题或请求。"
tool.graph.analyzeConversation.param.needQualityCheck: "是否重点进行风险或质量复核。"
tool.graph.analyzeConversation.param.additionalContext: "补充上下文，例如争议点、投诉点或已识别的业务约束。"
tool.graph.prepareTicketDraft.info: "Graph Tool。根据当前会话和已收集信息准备工单草稿。当工单内容需要整理时，应在 create_ticket_with_confirmation 之前使用。"
tool.graph.prepareTicketDraft.param.title: "准备好的工单标题，可选。"
tool.graph.prepareTicketDraft.param.description: "准备好的工单描述，可选。"
tool.graph.prepareTicketDraft.param.issue: "用户正在遇到的问题或报错信息。"
tool.graph.prepareTicketDraft.param.impact: "影响范围，例如无法登录、无法下单或业务中断。"
tool.graph.prepareTicketDraft.param.expectedOutcome: "用户期望的处理结果或诉求。"
tool.graph.prepareTicketDraft.param.currentAttempt: "当前已尝试过的处理步骤，可选。"
