You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

92 lines
7.3 KiB

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<string,string> 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 列表
}