在微信聊天页右上角留一个小按钮,点开才是候选回复卡片:读最近几条消息 → 调 LLM → 给 3 条风格不同的候选回复 → 点一下填入输入框。默认收起、不挡消息。本模块不会自动发送。
- 军师按钮 / 候选回复卡片 —— 聊天页右上角一个小按钮;点开才是卡片(风险判断 + 3 条策略不同的候选:稳妥 / 幽默 / 推进),点一下填入输入框,长按复制。敏感内容拦截和报错会自己摊开,不用你去找。
- 多套 skill —— 内置「原版狗头军师」「狗头军师·满血版」「程序员搭子」;也能粘一个 GitHub 上
SKILL.md的地址导入,导入时自动补 JSON 输出契约。skill 列表默认收起,标题上直接写着现在用的是哪个。 - 角色档案 —— 按微信名归档平时聊到的内容(同一内容 1 小时内只留一条),给每个人写「TA 是你什么人」和「平时的关系」;生成时会连同攒下的聊天记录一起拼进提示词,直接影响输出。两个角色其实是同一个人时,可以在角色详情里把另一个合并进来 —— 记录按时间合到一起,名字和档案以你点进去的那条为准。
- 「本人」+ 说话风格 skill —— 角色列表第一条永远是「本人」(改微信昵称也不会多出一栏)。打开开关后只采集你自己发出去的话,每天在你设定的时间用你填的接口提炼成一份说话风格档案,生成候选回复时按你的语气和口头禅来写。
- 液态玻璃界面 —— 面板背后是真实背景的模糊 + 边缘折射(Android 13+),内置一张默认背景图;玻璃不透明度、模糊半径可调,也能换成你自己的图。
- 自检与排查 —— 心跳检测(确认在微信进程里真的生效)、接口自检、敏感内容自检;抓取微信界面结构、查看「最近一次调用真正发出去的那一份」,都在 设置 → 诊断 里。
- 接口自检 + 网络信息 —— 自检只测连通性与延迟(DNS 解析 / 裸 TCP 握手 / 一次完整往返分开报),不再拿模型回没回 JSON 当「接口不通」;同时列出本机内网 IP、本机公网出口及归属地、接口服务器的 IP 及归属地(取不到显示
null)。 - 设置分三层 —— 首页只放外观这类日常项;接口地址 / 微信内自动分析 / 备份迁移在「高级设置」里;诊断再往下一层。配一次就不动的东西不占首页。
- 备份 / 迁移 —— 设置页可把配置与角色档案导出成一个 json,换机或重装后导入。
- Android 12 及以上(API 31+)。液态玻璃面板背后的真实背景模糊用的是
Modifier.blur(底层RenderEffect),这个能力从 Android 12 才有。 - 需要框架提供 libxposed API 102:LSPosed / Vector,或免 root 的 NPatch 都可以。本模块使用 libxposed Modern API(
io.github.libxposed:api:102.0.0,minApiVersion=102);框架版本不够时模块会显示为不兼容、不会加载。 - 不支持原版 LSPatch:它 2023-12 已停止维护,只认 legacy 模块,请改用它的继任者 NPatch。
- 微信 8.0.78 上验证通过。
- 装 APK → LSPosed「模块」里启用「TalkTact」→ 作用域勾选微信 → 强杀微信重开。
- 打开本应用:「设置」填接口地址(OpenAI 兼容,写到
/v1)、API Key、模型。 - 回首页点「接口自检」——真发一次最小请求,确认地址 / Key / 模型都对。
- 到微信里打开一个聊天,右上角会出现「军师」按钮 —— 点一下展开候选回复卡片。
改配置不需要重启微信:配置改动会由框架实时推送到微信进程,模块每次识别前都读到最新的一份。 只有「作用域」这类 LSPosed 层面的改动才需要强杀微信。
- 开启后,聊天页最近几条消息会发送到你填写的接口地址,请自行确认该服务可信。
- API Key 以明文存放在本应用私有目录(不能加密:注入微信进程的代码需要跨进程读取,Keystore 密钥按 UID 隔离读不到)。
- 只读消息、只把候选回复填进输入框,不会自动发送;但仍属于修改微信客户端行为,有风控风险,建议先用小号。
- 只对单聊可靠;群聊会尽量带出昵称,但微信的群聊行结构在版本间变化较大。
- 依赖微信当前的消息列表控件类型,微信改了就得跟着改。
- 「角色」页的记录是部分历史:模块只在聊天页可见时读得到屏幕上的那几行,所以你不在场时发生的对话不会被记下来。