FoloToy 角色配置
安全地配置 FoloToy 角色,并在真实设备上验证结果。
在进行 API 调用前,请先阅读 references/api-workflow.md。当用户需要帮助设计人设或开场白时,请阅读 references/examples.md。
支持的任务
- 使用手机号和一次性短信验证码登录。
- 检查已授权的设备是否已配对。
- 使用序列号和配对密钥配对未配对的设备。
- 读取当前设备、活跃角色和可用的语音模型。
- 更改角色人设、开场白和语音。
- 回读已保存的角色并指导物理设备测试。
请勿使用此技能来取消配对设备、擦除记忆、重置网络、删除账户、购买服务,或控制用户不拥有或未经明确授权管理的设备。
安全模型
秘密信息标识一个账户或物理设备。请将其远离提示词、源文件、屏幕截图、URL、持久化日志和最终报告。
- 仅在需要每个值时才询问手机号、短信验证码、序列号和配对密钥。
- 不要回显完整的手机号、短信验证码、配对密钥或访问令牌。
- 仅将访问令牌保留在当前任务中。优先使用内存变量或受保护的临时会话,并在完成后移除。
- 当所有权不明确或设备已与其他账户配对时停止操作。
- 在更新请求前显示人类可读的差异并获得明确的确认。
- 仅更改已批准的字段。保留当前模型ID和其他所有必填字段。
- 保存后回读角色。仅凭成功的写入响应不足以作为验证。
工作流程
1. 确认区域与用户同意
询问账户使用的是中国大陆服务还是国际服务:
- 中国大陆:
https://webapp.folotoy.cn - 国际版:
https://webapp.folotoy.com
解释工作流程会发送一条短信并更改物理设备配置。确认用户拥有此设备或已获授权管理它。
2. 登录
询问包含国家代码的手机号。使用API参考文档中记录的请求发送验证码。
暂停并询问六位数验证码。不要猜测它,也不要从其他来源获取,在用户提供之前不要继续。
登录并仅为本任务保留返回的 Bearer 令牌。如果身份验证失败,请检查国家代码和验证码是否过期。不要重复发送短信。
3. 解析目标设备
询问设备序列号并检查其配对状态。
- 如果已经配对该账户,继续执行。
- 如果未配对,询问配对密钥,并在配对前获得确认。
- 如果已与其他账户配对,停止操作并说明当前所有者必须通过支持的产品流程解除配对。
读取账户的设备列表并根据序列号识别确切的目标设备。切勿仅因为其显示名称看起来熟悉就选择某个设备。
4. 设计前先读取
读取设备详情、在线状态、产品ID、活跃角色以及完整的当前角色对象。获取该产品可用的 TTS 模型,并将 ID 映射为可读的语音名称。
询问目标受众、场景、个性、语气、回复长度、行为规则、安全边界和语音偏好。如果用户只有粗略的想法,可以提出简洁的草稿,而不是阻止流程。
5. 预览变更
显示如下紧凑预览:
设备:[脱敏的序列号和显示名称]
角色:[名称]
人设: 当前 -> 提议
开场白: 当前 -> 提议
语音: 当前名称 -> 提议名称
未变更:STT 模型、LLM 模型、记忆、网络、配对及所有其他字段
询问:是否将此更改应用于所列的 FoloToy 设备?
仅在获得明确确认后继续。
6. 安全应用
从服务返回的完整角色对象开始。仅合并已批准的人设、开场白和语音ID。保留现有的必填值,例如 speech_to_text_id、language_model_id 以及所有其他产品特定字段。
将完整的合并后对象发送到角色更新端点。当服务期望完整配置时,不要发送猜测的最小负载。
7. 验证与测试
再次读取角色列表,并将返回的 custom_ability、start_text 和 text_to_speech_id 与已批准的提议进行比较。将语音 ID 映射回可读的名称。
检查设备是否在线。要求用户开始一次新的对话并进行测试:
- 开场白。
- 一个正常的角色内场景。
- 一个安全或不确定性边界场景。
如果保存的配置正确但行为未改变,请验证活跃角色并开始一次新的对话,然后再更改更多字段。
8. 报告与清理
报告角色名称、最终开场白、最终语音名称、回读状态、物理测试状态以及一个建议的下一次迭代。对设备身份进行脱敏处理,并清除临时授权数据。
失败处理
- 未收到短信:检查国家代码,等待重发计时器,避免重复发送。
401或403:将会话视为过期并重新登录。不要重复使用旧令牌。- 配对被拒绝:检查序列号和配对密钥;如果设备属于其他账户则停止。
- 未找到语音路由:使用产品模型端点并设置
mod_type=tts;不要依赖旧的/v1/voices路由。 - 内容审核错误如
10500:缩短并简化人设或开场白。在新草案获得批准前保持当前配置不变。 - 已保存但听不到:验证活跃角色、设备在线状态以及新开始的对话。
完成标准
仅当满足以下所有条件时,任务才算完成:
- 目标设备已获得授权并通过序列号解析。
- 没有秘密信息被嵌入或未脱敏显示。
- 用户明确批准了显示的差异。
- 仅更改了批准的字段。
- API 回读与提议相匹配。
- 用户收到了物理测试脚本,即使设备暂时离线。