syntax = "proto3"; option go_package = ".;pb"; import "user/user_msg_v2.proto"; import "db.proto"; // v3 客户端配置下发:一次拿全「环境变量 + agent + 产品 + 第三方服务 + 会议记录能力」。 // 与 v2 的差别(v1/v2 保持原样不动,老客户端不受影响): // - 不再单独下发 mcps:MCP 已并入第三方服务配置(svc_config 的 MCP 类别),在 thirdsvcs 里, // 按 categories 含 "10" 识别;url/type/tools 在 fields 里。 // - 新增 meet:会议记录支持的语言与可选总结大模型,来自后台「会议记录服务」编排。 // - agents 换成 AgentItemV3(与 user_getagents_v3 同一结构):带 type(chat|sts-chat) 与服务编排 // (stt/llm/tts/sts_svc_id)、MCP 绑定、变量、已补全的音色表。v2 下发的旧 DBAgent 结构没有这些, // 客户端拿到 agent 却不知道该走哪条链路、调哪个服务。 // 整体响应经网关 AES-CBC 加密(响应头 X-Encrypted:1),故 fields 里的凭据不再单独加密。 message UserGetAppConfigV3Req{ } //可选总结大模型项(与 echomeet_getsummaryservices 的同名字段口径一致) message MeetSummaryServiceItem{ string svc_id = 1; //@go_tags(`json:"svc_id"`) 服务id(starttask/summary 的 summary_svc_id 传它) string name = 2; //@go_tags(`json:"name"`) 服务显示名 bool is_default = 3; //@go_tags(`json:"is_default"`) 是否后台默认模型 } //会议记录能力:支持的语言 + 可选总结大模型 message MeetCapabilitiesItem{ repeated string transcribe_languages = 1; //@go_tags(`json:"transcribe_languages"`) 录音识别支持的语言(BCP-47) bool transcribe_any_language = 2; //@go_tags(`json:"transcribe_any_language"`) true=存在未限定语言的识别服务,不受上面列表约束 repeated string translate_languages = 3; //@go_tags(`json:"translate_languages"`) 翻译支持的目标语言(BCP-47) bool translate_any_language = 4; //@go_tags(`json:"translate_any_language"`) true=存在未限定语言的翻译服务 bool summary_client_choice = 5; //@go_tags(`json:"summary_client_choice"`) 后台是否允许客户端指定总结模型;false 时 summary_services 仅含默认项 repeated MeetSummaryServiceItem summary_services = 6; //@go_tags(`json:"summary_services"`) 可选总结大模型列表 } message UserGetAppConfigV3Resp{ map env = 1; //@go_tags(`json:"env"`) 应用环境变量(app_config + 本区域 global_config) repeated AgentItemV3 agents = 2; //@go_tags(`json:"agents"`) 智能体列表(结构同 user_getagents_v3,含 type 与服务编排) repeated DBProduct products = 3; //@go_tags(`json:"products"`) 产品列表 repeated ThirdSvcItem thirdsvcs = 4; //@go_tags(`json:"thirdsvcs"`) 第三方服务(含 MCP 类,按用户区域合并、凭据已解密为明文) MeetCapabilitiesItem meet = 5; //@go_tags(`json:"meet"`) 会议记录能力(语言 + 总结大模型) } // v3 agent 列表:相比 v2 多了「绑定的 MCP 服务 + 变量」,并且 voice_map 是**已补全**的—— // 服务端按内置音色表(comm/ttsvoice.go)把 agent 支持的每种语言都解析出最终音色, // 客户端不必自带音色表,切语言时按 language 直接取即可。 // 只下发 chat / sts-chat 两类(翻译类已下线),故服务槽位也只保留这两类用得到的。 message UserGetAgentsV3Req{ } //agent 变量项:提示词/开场白里的占位符,客户端替换后再用 message AgentVariableItem{ string key = 1; //@go_tags(`json:"key"`) 变量名;在提示词/开场白里用双大括号包住它作占位符 string label = 2; //@go_tags(`json:"label"`) 展示名 string def_value = 3; //@go_tags(`json:"def_value"`) 默认值(客户端没有对应上下文时用它) string description = 4; //@go_tags(`json:"description"`) 备注 } //agent 的 MCP 绑定项:绑了哪个 MCP 服务 + 这个 agent 允许它调用的工具。 //同一个 agent 挂多个 MCP 时工具会互相干扰(同名工具、用不上的工具挤占模型注意力), //故除服务自身的 tools 白名单外,再按 agent 收一次口。 message AgentMcpBindingItem{ string svc_id = 1; //@go_tags(`json:"svc_id"`) MCP 服务 id(详情在 getappconfig_v3 的 thirdsvcs 里) repeated string tools = 2; //@go_tags(`json:"tools"`) 允许调用的工具名;空=该服务的工具全放开(仍受服务自身 tools 白名单约束) } message AgentItemV3{ string id = 1; //@go_tags(`json:"id"`) agent id string name = 2; //@go_tags(`json:"name"`) 名称 string type = 3; //@go_tags(`json:"type"`) chat|sts-chat string description = 4; //@go_tags(`json:"description"`) 描述 string avatar_url = 5; //@go_tags(`json:"avatar_url"`) 头像 string stt_svc_id = 6; //@go_tags(`json:"stt_svc_id"`) 识别服务(chat) string llm_svc_id = 7; //@go_tags(`json:"llm_svc_id"`) 大模型服务(chat) string tts_svc_id = 8; //@go_tags(`json:"tts_svc_id"`) 合成服务(chat) string sts_svc_id = 9; //@go_tags(`json:"sts_svc_id"`) 端到端对话服务(sts-chat) string system_prompt = 10; //@go_tags(`json:"system_prompt"`) 系统提示词 int32 gender = 11; //@go_tags(`json:"gender"`) 0未定 1男 2女 bool greeting_enabled = 12; //@go_tags(`json:"greeting_enabled"`) 开场白开关 string greeting_text = 13; //@go_tags(`json:"greeting_text"`) 开场白 string support_langs = 14; //@go_tags(`json:"support_langs"`) 支持语言(逗号分隔 BCP-47) string default_lang = 15; //@go_tags(`json:"default_lang"`) 默认语言 repeated AgentVoiceItem voice_map = 16; //@go_tags(`json:"voice_map"`) 各语言最终音色(已按音色表补全) repeated string mcp_svc_ids = 17; //@go_tags(`json:"mcp_svc_ids"`) 绑定的 MCP 服务 id(详情在 getappconfig_v3 的 thirdsvcs 里) repeated AgentVariableItem variables = 18; //@go_tags(`json:"variables"`) 变量定义 int32 sort = 19; //@go_tags(`json:"sort"`) 排序 repeated AgentMcpBindingItem mcps = 20; //@go_tags(`json:"mcps"`) MCP 绑定(含每个服务允许的工具);mcp_svc_ids 是它的 id 平铺,保留给老客户端 } message UserGetAgentsV3Resp{ repeated AgentItemV3 agents = 1; //@go_tags(`json:"agents"`) agent 列表 }