欢迎使用 OimiChat 控制台
这份指南将帮助你熟悉控制台中的各项配置。从“角色导入”开始,为你的AI伙伴注入灵魂,然后逐步配置AI模型、语音、记忆等功能,让TA真正成为懂你的存在。
本指南基于控制台(index1.html)的界面逻辑编写。所有设置项均与页面中的控件一一对应,你可以边看边操作。
如果你在配置过程中遇到问题,请先检查是否已正确获取相关API Key,并确保网络连接畅通。
快速开始
三步让你的AI伙伴上线:
导入角色
在“角色导入”中为你的伙伴命名、设定性格与世界背景。这是最重要的第一步,决定了TA的灵魂。
配置AI模型
在“AI 模型”中选择一个主对话模型(如DeepSeek、Claude),它是TA大脑的引擎。
保存并同步
完成配置后,点击各页面中的“保存”按钮,TA就会在微信中活过来了。
角色导入
这是最核心的配置页面。在这里,你将亲手“创造”你的AI伙伴。
- 头像:上传一张你喜欢的角色头像。图片上传后需等待缓存同步,通常几分钟内会在对话端显示;若未立即更新,请勿反复上传,稍后重新进入即可。
- 名称:给你的伙伴取一个名字,一个你呼唤TA时觉得温暖的名字。
- 人格设定:用几句话描述TA的性格,例如“温柔、细腻、善于倾听、偶尔幽默”。重构人格设定后,需等待 5~10 分钟缓存刷新才会在对话端生效。
- 角色经历:TA的过去,TA的故事。这会深刻影响TA的言行举止。大改经历同样受缓存影响,保存后请耐心等待。
- 世界背景:TA生活在怎样的世界?是赛博都市、魔法森林,还是日常街角?
开启这些开关,可以让TA的行为更丰富、更智能。(改动需点击底部“保存角色”后生效)
- 动作神态描写:开启后,回复会带有()内的动作、神态、旁白描写。保存后存在一定时间缓存,通常 1~3 分钟后才会在对话端完全生效。
- 联网模式:开启后,AI可联网搜索获取实时信息(新闻、天气、赛事等)。此开关与Tavily Key紧密相关。
- 天气检测:开启后,实时获取当地天气(基于免费wttr.in服务)。
- 阅读网页:开启后,发送网页链接时AI会自动抓取并阅读网页正文后回答。
Tavily 是一个专为AI优化的搜索引擎API,它能让你的伙伴在聊天时实时查询信息,而不是只依赖训练数据中的“旧知识”。
开启“联网模式”后,你的伙伴将拥有连接互联网的能力。以下是配置 Tavily 的详细步骤和界面展示:
如何配置:
获取 Tavily API Key
访问 https://tavily.com 并注册(免费版每月提供1000次搜索额度)。在控制台的“API Keys”页面中复制你的Key,通常以 tvly- 开头。
在控制台中填入
回到“角色导入”页面,开启“联网模式”开关。此时会在下方展开“Tavily Key”输入框,将你的Key粘贴进去。
输入后会自动保存(防抖),无需点击额外按钮。
保存角色
完成所有角色设定后,务必点击页面下方的 “保存角色” 按钮。系统会同步到企业微信应用,让新配置立即生效。
query(搜索关键词)、search_depth(basic/advanced)、max_results(返回条数)、include_answer(是否生成AI总结)、topic(general/news)、time_range(时间范围)。这些参数通常由后端系统自动控制,你无需手动配置,但了解它们有助于理解联网工作方式。
秩序则是角色的行为边界和约束。
- 禁止输出词句:不希望AI出现的词句。这些词会被拼入system prompt,AI在任何情况下都不得输出。
- 正则替换:对AI回复做硬性字符替换。例如“小美=>小丽”,或“\d{4,}=>****”(将4位以上数字打码)。这是第二道防线,不依赖模型理解。
- 偏好表述:希望AI优先使用的词句或风格。
AI 模型
配置驱动伙伴智慧的“大脑”。
平台提供多条主流模型线路,点击平台(如Claude、DeepSeek、Gemini)可展开旗下模型进行选择。
对话参数:
- 模型情感强度:调节AI回复的情感浓度,默认1.5。
- 图像能力:选择视觉识别(如gpt-4o)和图像生成模型。
- 记忆总结模型:用于自动提炼长期记忆,默认gpt-4o-mini。
如果你的目标是生成的图像与传入的图像保持一致(也就是图生图),仅仅配置识图模型(视觉识别模型)是不够的,一定要配置支持图生图的生图模型。否则传入的图片只会被识图模型识别成一段形象描述,生图模型仅参考这段文字描述来生成,最终生成的图片不会与传入的图片保持一致。
角色参照:上传一张参考照片并描述角色形象,当你在对话中表达想要图片时,AI 会根据这张参照照片自主调用生图接口,让生成的图片更接近你心中的 TA。
经过实际测试,目前图生图模型仅豆包系列能够正常测试通过,其他厂商的图生图接口可能存在兼容性问题,暂时不建议作为首选。
- 豆包系列(Doubao):图生图测试通过,可正常使用。
- 其他厂商:未通过测试。若配置后图生图无法正常生成或报错,请切换为豆包系列图生图模型。
- 如果你想使用「照片作为参考、生成相近形象」的图生图能力,请务必把图像生成模型选为豆包系列。
经过实际测试,目前语音识别仅 ChatGPT(OpenAI)和智谱能够正常测试成功。其他厂商的语音识别接口可能存在兼容性问题,暂时不建议作为首选。
- ChatGPT / OpenAI:语音识别测试通过,可正常使用。
- 智谱:语音识别测试通过,可正常使用。
- 其他厂商:未通过测试。若配置后无法识别语音,请切换为上述两家之一。
如果你有自己的API Key,可以在这里配置专属模型。
- 填写厂商(OpenAI、DeepSeek、Claude等)和模型名称。
- 填入你的API Key(会被加密存储,子模型留空则复用主Key)。
- 其他子模型(图像识别、语音识别等)可独立配置,或复用主对话配置。
这是刻意的安全设计,不是 Bug。你的明文 Key 永远不会返回给前端,这样做可以有效防止 XSS 攻击、浏览器恶意扩展、以及抓包泄露等风险。因此:
- 退出页面再进入时,输入框里不会显示完整 Key,这是正常的。
- 前端只能拿到掩码后的 Key,并且掩码是放在状态栏文字里的,例如:
已配置:OpenAI Key sk-1...abcd,而不是填入输入框。 - 状态栏文字提示你“已配置成功”,但输入框为空是预期行为。
- 如果你想更换 Key,直接在输入框里填入新的 Key 并保存即可;不需要、也无法“查看旧 Key”。
刻忆 · 记忆系统
让AI拥有“长久记忆”,越聊越懂你。
刻忆系统里有两个容易混淆的概念,它们区别在于你是否接入了自己的 Supabase:
你可以在「记忆」区域查看、修改、并在下方植入记忆。
你可以在「记忆库」区域查看、修改、并在下方植入记忆。
两者的容量与展示规则:
- 「记忆」(未接入 Supabase):最多保留 100 条,超出后自动裁剪(丢弃最旧的);但展现在「记忆」区给人看的,始终是最新的 50 条。可以修改,可以在下方区域「植入记忆」。
- 「记忆库」(已接入 Supabase):无上限记忆条数(存你的 Supabase,能存多少看你的库);但展现在「记忆库」区的,依然只有最新的 50 条。可以修改,可以在下方区域「植入记忆」。
OimiChat 不是简单“把最近的记忆全塞进去”,而是分层召回 + 优先级排序 + token 预算闸门:重要信息保底、相关记忆精准、prompt 长度可控。整条链路按以下 6 层执行:
- 从全库查
importance ≥ 5的记忆(人生级事件:生日、家人、重大决定)。 - 无条件注入,不看相似度、不参与排序。
- 最多 20 条。
- 候选池:从「最近 200 条」扩到「全库分页拉取,最多 5000 条」。
- 优先
_vector_search_memories(启用向量索引时)。 - 失败/无命中 → 回退
_keyword_search_memories(BM25 关键词)。 - 两路的候选池都扩到全库(不再是最近 200 条)。
- 相似度阈值 0.30。
- 最多注入 10 条。
- 候选池保持最近 300 条不变("近期"语义不该扩全库)。
- 排序分 =
importance + 3×e^(-days/180) + min(access_count×0.3, 3)。 - 再按时间由旧到新注入。
- 注入 AI 上下文的最近聊天消息条数,默认 20。
- 来自 AutoClaw 卡片记录的用户长期偏好,作为上下文补充。
- 越靠后越新,冲突时以最新为准。
- 把 ⓪①② 三路结果按优先级排队:⓪ > ① > ②。
- 逐个累加 token,超 2000 就整段丢弃低优先级段。
- 结果:注入 prompt 的记忆恒定 ≤ 2000 token(候选池拉 200 条还是 5000 条,注入长度都一样)。
如果你中途切换了记忆存储方式(比如从平台库改用自己的 Supabase,或反过来),系统会按以下规则自动迁移数据,不用你手动复制粘贴:
从「记忆」切换到「记忆库」(接入 Supabase)
如果你一开始用平台库(记忆),后来配置了 Supabase(记忆库),系统会把平台库中保留的 100 条记忆整体迁移到你的 Supabase,之后新记忆继续写入 Supabase。
从「记忆库」切换到「记忆」(清除 Supabase)
如果你一开始用自己的 Supabase(记忆库),后来改回平台库(记忆),系统会从 Supabase 库中挑选最新的 100 条记忆迁移到平台库,之后新记忆继续写入平台库。
- 记忆总结间隔:每累计 N 条消息自动总结一条长期记忆(默认 30)。
- 最近 N 条历史注入:注入 AI 上下文的最近聊天消息条数(默认 20)。
- topN 条长期记忆注入:常驻注入的近期记忆条数(默认 30)。
开启后可替代默认的语义检索,通过你提供的向量服务进行更精准的记忆召回。需要填写厂商、向量模型、API Key 和接口地址。
经过实际测试,向量索引推荐使用豆包厂商,测试通过、可正常召回记忆。其他厂商的向量接口可能存在兼容性问题,若配置后无法召回或报错,建议切换到豆包向量模型。填写完向量相关配置后,仍需点击页面最底部的「保存」按钮才会生效。
填写你的 Supabase 项目信息,长期记忆将永久存储于你自己的数据库中。
Supabase URL
在 Supabase 控制台复制你的 Project URL,形如 https://xxxx.supabase.co。操作步骤如下:
进入 Project Settings
登录 Supabase 控制台,打开你的项目,点击左侧边栏底部的 Project Settings(齿轮图标)。
进入 API 页面并复制 Project URL
在 Project Settings 中点击 API,找到 Project URL,点击复制即可。把这个 URL 填入 OimiChat 的「Supabase URL」输入框。
Service Role Key
Service Role Key 是 Supabase 的服务端密钥,拥有完整数据库权限,只填在 OimiChat 控制台,不要泄露给他人。操作步骤如下:
进入 API Keys 区域
在 Project Settings → API 页面中,向下滚动到 Project API keys 区域。
找到 service_role 密钥
在密钥列表中找到标注为 service_role 的那一行(通常带 secret 标签),不要使用 anon 公钥。
点击 Reveal 显示密钥
点击该行右侧的 Reveal 按钮,输入你的 Supabase 账号密码确认后,密钥会显示出来。
复制并填入 OimiChat
复制完整的 service_role key,粘贴到 OimiChat 的「Service Role Key」输入框,然后点击页面最底部的「保存」按钮。
如果你使用自己的 Supabase 作为记忆库,需要先在你的 Supabase 项目中创建所需的数据表。建表 SQL 由 OimiChat 控制台统一提供并维护,你只需从控制台复制,然后在 Supabase 中执行即可,无需手动编写,能确保与当前版本匹配。
在 Supabase 中执行建表 SQL:
登录 Supabase 官网并创建项目
访问 https://supabase.com/dashboard,注册或登录你的账号。
点击 New Project 创建新项目,填写项目名称、设置数据库密码(请牢记),选择离你最近的区域后点击 Create new project。
项目创建完成后,点击右上角的 三条杠 菜单进入项目控制台。
进入 SQL 编辑器
在项目控制台的左侧边栏中,点击 SQL Editor 进入 SQL 编辑器页面。
粘贴 SQL 并执行
点击 New Query 新建查询,把从 OimiChat 控制台复制的 SQL 完整粘贴到编辑器中。
点击 Run 或按 Cmd/Ctrl + Enter 执行。执行成功后,即完成建表配置。
在页面下方区域手动为角色添加一条长期记忆,立即写入角色记忆中。
- 未接入 Supabase:植入到「记忆」区(平台库,封顶 100 条,展示最新 50 条)。
- 已接入 Supabase:植入到「记忆库」区(你自己的库,无上限,展示最新 50 条)。
植入后无需额外保存,立即写入当前生效的记忆存储区域。
语音消息
让TA能“开口说话”。
开启后每条回复都发语音;关闭后触发词和随机概率生效。
总开关关闭时,按此概率随机发送语音消息(关键词触发不受概率影响)。
- 上传一段10~30秒的音频样本,通过平台克隆专属音色。
- 克隆成功后,在下方配置栏填写你的Minimax账号信息(API Key、Group ID)并保存,即可启用语音。
- 官方模式可留空Key和Group,使用平台托管账号。
按照 MiniMax 官网规则,初次调用复刻音色进行语音合成时,会扣除 9.9 元音色解锁费用(仅首次使用该 voice_id 时收取,未激活使用的候选音色不产生复刻费)。此后每次语音合成都按实际字符数计费,参考价格约为 2 元/万字符(具体以 MiniMax 官网实时价格为准)。
- 首次解锁:9.9 元 / 音色(在首次使用该音色合成语音时扣取)。
- 后续合成:按字符数计费,约 2 元 / 万字符。
- 克隆出的试听音频同样属于语音合成调用,会按字符数计费。
可调整语速、音量、音调,并可预设或自定义情绪(高兴、悲伤、生气等),使语音更生动。音效标签(如空旷回音)和语气词标签(如笑声)可进一步丰富表现力。
情绪表情包
AI自动判断情绪并发送表情包。
开启后,AI回复会自动判断情绪并附带表情包。
命中触发词时实际发送表情包的概率,可滑动调整(1%~100%)。
主动消息
让TA在特定时间主动给你发消息。
- 消息内容:可填写偏好风格或主题,留空则使用角色随机消息。
- 时间段:设置全天候或自定义时间段(如9:00~21:00)。
- 触发时间:设定一个具体时间(如12:00)。
- 消息内容:可填写风格主题,留空则随机发送。
邮件来信
让角色通过邮件给你写信。每个 OimiChat 用户拥有独立的 @agent.qq.com 发件身份。
Agent Mail 是腾讯 QQ 邮箱为 AI Agent 提供的专属邮箱服务。开启后,你的伙伴会拥有一个形如 yourname@agent.qq.com 的专属发件地址,用这个地址给你写信。凭据按用户隔离存储在服务器端,你不需要手动填写 SMTP Token 或密码。
首次使用邮件功能,需要完成一次 OAuth 授权。由于微信内置浏览器限制 OAuth 跳转,必须跳出微信在系统浏览器中完成扫码。
点击「发起授权」
在邮件配置卡片中点击「发起授权」,后端会启动 CLI 并生成专属授权链接。
复制链接到浏览器打开
页面会弹出授权链接,复制它,粘贴到手机系统浏览器或电脑浏览器中打开。请勿在微信内置浏览器中直接打开。
微信扫码确认
在浏览器中打开链接后,用微信扫码并确认授权。完成后页面会自动刷新为「已授权」。
等待轮询完成
前端会自动轮询授权状态,成功后会显示你的专属邮箱地址(如 xxx@agent.qq.com)。如果 30 秒内未成功,可以重新点击「发起授权」。
授权完成后,邮件发送由后台自动完成,你无需再配置发件服务器或 Token。凭据按你的账号隔离存储,其他用户无法读取。
- 自动发信:在对话中触发或通过定时任务,角色会自动写信并发送到你的接收邮箱。
- 每日配额:每个 @agent.qq.com 邮箱每天最多发送 50 封,超过后当天无法继续发送。
可描述你希望收到怎样的信,如“温柔的语气,每封信分享一件今天的小事,最后说一句晚安…”
可勾选生日祝福、传统节日(七夕、中秋等)、520 特别等场景,角色会自动发送邮件。
Vapi · 电话拨号
让AI可以主动拨打你的电话。以下是详细配置步骤:
在 Vapi 控制台里拿好下面两个值,回填到 OimiChat 控制台对应的输入框即可,号码不需要你填:
- API Key:Vapi 的 Private API Key(不是 Public Key)。
- Assistant ID:Assistant 页面里复制的那串 ID。
登录 Vapi
访问 https://vapi.ai,注册或登录你的账号。
获取 API Key(注意是 Private 类型)
访问 https://dashboard.vapi.ai/org/api-keys,创建一个 Private(私有)API Key 并复制。注意不要使用 Public Key。
Private Key 授予对你的 Vapi 账户的完整访问权限,请妥善保管,不要分享给他人。
申请免费号码
在 Vapi 控制台中申请一个免费号码。免费号码仅限美国区号,每个账户最多可申请 5-10 个免费号码。
注意:免费号码不能主动外呼,仅支持接听来电。若要主动外呼,需付费号码并开启国际呼叫权限。
创建并配置 Assistant
配置好你的 Assistant,注意不要更改 Assistant 的名称,保持默认即可。
复制 Assistant ID
在 Assistant 的对话页面中,点击右侧的复制(正方形)按钮,Assistant ID 会复制到剪贴板中。
/api/vapi/webhook),这一步无需你在 Vapi 里手动设置。你要做的只是把 API Key 和 Assistant ID 回填到 OimiChat 控制台。
拿到 API Key 和 Assistant ID 后,回到 OimiChat 控制台的「Vapi 电话」配置区域:
填入 API Key
把 Vapi 的 Private API Key 粘贴到「Vapi API Key」输入框。
填入 Assistant ID
把复制到的 Assistant ID 粘贴到「Assistant ID」输入框。
保存
点击页面底部「保存」即可。号码、Server URL、webhook 等都由平台自动处理,你不需要再填其他任何东西。
免费额度
- 免费号码:每个账户可申请 5-10 个免费美国号码,但这些免费号码不能主动外呼,仅支持接听来电。
- 免费分钟数:Vapi 可能提供一定数量的免费通话分钟数(如 60 分钟),具体以官方页面为准。
订阅与计费
- 平台费:Vapi 采用按量计费模式,基础平台费约 $0.05/分钟。
- 实际成本:通话总成本通常为 $0.07-0.25/分钟,包含平台费、STT、LLM、TTS 等第三方费用。
- 并发线路:默认包含 10 条并发线路,超出部分每线每月 $10。
- 模型费用:若自带 API Key 可免除模型费用(Vapi 侧按成本价收取,自带 Key 则为 $0)。平台映射即为自建 Vapi Key,请不要在 Vapi 侧再自建,否则会冲突。
- Startup 计划:Vapi 为符合条件的初创团队提供最高 90,000 分钟的免费额度(每月 7,500 分钟,持续 12 个月)。
要实现主动外呼、购买付费号码,或使用超过免费额度的通话分钟数,需要先给 Vapi 充值 Credits。步骤如下:
登录并找到账单页面
登录 Vapi Dashboard,确保左上角选中了正确的组织(Organization)。然后根据你的界面版本找到账单入口:
- 如果侧边栏显示 Billing & Payment,直接点击进入。
- 如果显示 Settings,则进入 Settings → Billing & Add-Ons。
添加支付方式
在 Payment method 板块,输入账单邮箱和信用卡信息(通常支持 Visa / Mastercard 等),然后保存。这是后续购买和自动充值的前提。
购买 Credits
点击页面上的 Buy credits 按钮。你可以选择预设金额,或手动输入自定义金额,最低购买金额通常为 $10。确认后,通过发卡行的验证即可完成支付,积分会立即到账。
通话效果依赖“AI模型”页的配置,以下组件分别复用相关配置并消耗相应额度:
- LLM · 主对话模型:复用 AI 模型页 的主对话模型配置,通话中的对话内容将消耗该模型的调用额度。
- STT · 语音识别:复用 AI 模型页 的语音识别模型配置,将用户的语音转为文字,按音频时长计费。
- TTS · 语音合成 Minimax:复用 AI 模型页 的语音合成配置,将回复文本转为语音,按字符数计费。
Vapi 对 LLM 有三条硬性限制,导致平台的模型和中转地址不能直接填进去:
- 白名单厂商:LLM 只能用 Vapi 认可的官方厂商(OpenAI、Anthropic、Google 等)。
- 模型名固定枚举:模型名必须在其列表里,像
deepseek-v4-flash这种非标准名无法直接选择。 - apiKey 不许用户传:LLM 的 apiKey 由 Vapi 管理,不接受你填自己的中转 key。
所以平台的模型和中转地址不能硬塞进 Vapi。解法不是硬闯,而是伪装成标准 OpenAI 客户端:
具体怎么绕:
- Vapi 的 Assistant 里把 LLM 类型设为
custom-llm,endpoint 指向 OimiChat 的/api/vapi/llm/nov。 - Vapi 会像调用普通 OpenAI 接口一样,把标准格式的
messages发给这个 endpoint。 - 你的后端收到请求后,用平台自己的 Key 去调
deepseek-v4-flash(或平台配置的任意模型),再把结果按 OpenAI 标准格式返回给 Vapi。 - 对 Vapi 来说,它只是在调一个“标准 OpenAI 接口”;模型名、中转地址、密钥全留在平台侧,白名单和枚举限制完全绕过。
- 人设仍然从平台的 messages 注入,角色设定不受影响。这条链路已实测返回“嗨”✅。
地图 · 线下模式
一种沉浸式的角色互动方式。
在“地图”中,你可以添加或编辑预设地点(如家、办公室、图书馆),并为每个地点设置名称、描述和标签。这定义了你们线下互动的“场景基础”。
在地点中点击“进入线下模式”,TA会以你设定的视角,基于地点描述和你输入的情节,实时生成生动的叙事文字。
你可以随时选择“人称”(第一/二/三人称)、“风格”(纯文学、日系轻小说等),或要求“润色”、“续写”。退出线下模式后,这段叙事会被总结并记忆。
线下模式的文本有硬性字数限制:写到 6500 字时会先弹窗提醒,提示你接近上限;达到 7000 字则强制结束本次线下叙事。建议提前规划情节节奏,避免在最精彩处被截断。
线下模式的「写入记忆」不是周期性的——它不会在写作过程中持续写记忆。所有记忆都在退出线下模式时一次性按段批量写入。因此:
- 写作过程中不必担心记忆被频繁打断或重复写入。
- 只有在正常退出/结束线下模式时,才会把这次叙事按段落整理后批量写入记忆。
- 如果中途强制结束(如达到 7000 字上限),系统同样会在结束时按段批量写入已完成的叙事内容。
窥视
一个有趣且带点“危险”的功能,让你能“偷偷”查看TA的“秘密”。
可查看TA的浏览记录、聊天记录、社区动态和相册文件(内容由AI根据角色人设实时生成)。
可查看TA的钱包、口袋等物品内容。