皮克语
连接 毕 给一个QQ私人聊天。 从QQ发送文本,语音,图像,或文件;pi在你的机器上工作,并将结果发回.
所需资源
- 节点.js 22.19或更新,相匹配的pi.
- 一个带有 C2C 私人信件的QQ机器人应用程序启用.
- 一个工作设备.
安装
pi install npm:@chen_hu_hu/pi-qq
关于地方发展:
pi --extension /path/to/pi-qq
登录
- 开始吧.
- 运行
/qq-login。 。 。 . - 用移动QQ扫描QR代码.
全权证书不写给 pi-qq.json恢复派需要再次扫描. /qq-logout 立即清除证书.
使用量
向机器人发送私人信息以启动任务.
- 文本: 普通聊天消息.
- 语音:QQ内置ASR文本发至pi. 音频没有下载或保存 。 如果 ASR 不返回文本, 机器人会要求您重新发送或输入它 .
- 图像和文件: 保存在下面
.pi/pi-qq/<sessionId>/uploads/。如果信件没有指令, pi 将等待您的下一个文本或语音消息.
QQ客户端在混合消息支持上存在差异. 移动QQ通常一次发送一个消息类型;桌面QQ可以发送带有图像的文本. 当客户端包含文本或语音以及附件时,pi-qq会在同一快取中处理.
附录
只有附件信件才会 没有 启动 pi。文件和图像被保存, pi 等待下一个文本或语音指令 .
- 发送一个或多个文件或图像,然后发送文字或语音信息,描述要做什么.
- 下一个指令包括已保存的附件路径 .
- 指令前上传的多个附件合并为一个快取.
- 图片通过Pi读取
read因此,当前模型必须支持图像输入才能看到它们. /new清除等待指示的附件.- 上传范围为当前 pi 会话 。 相同的文件名和相同的内容重复使用现有文件; 内容不同的相同的文件名将变成
name-1.ext;内容相同的不同文件名单独保存.
Pi 所看到的例子 :
# Attachments:
- .pi/pi-qq/<sessionId>/uploads/report.pdf
# User message:
Summarize this file.
发送媒体返回QQ
QQ 登录后, pi-qq 激活 qq_send_media 工具。 它在启动时和之后被注册为不活动 /qq-logout;重新连接不会禁用它.
比如说明确问派 send me the screenshot 或者说 把截图发给我. 模型从工具描述中决定;应首先澄清模棱两可的请求。 没有关键字匹配或额外确认步骤 .
- 图像 :
.jpg, (中文(简体) ),.jpeg, (中文(简体) ),.png, (中文(简体) ),.gif, (中文(简体) ),.webp, (中文(简体) ),.bmp;最高可达30 MB. - 视频 :
.mp4, (中文(简体) ),.mov, (中文(简体) ),.avi, (中文(简体) ),.mkv, (中文(简体) ),.webm, (中文(简体) ),.flv, (中文(简体) ),.wmv; 最多100 MB. - 其他文件:最多100 MB;音频作为文件发送.
- 允许任何可读的正则文件 。 共通链接、目录和设备被拒绝.
- 每条媒体信息都包含一个被动的回复;在限制后,pi-qq回复到主动的信息.
- 工具泡与任何其他工具相同:
## 📤 qq_send_media。 。 。 .
语音信息
语音信息使用QQ内置ASR(asr_refer_text) (中文(简体) ). 笔录作为普通用户文本发送给 pi; pi 从未收到音频文件.
- 语音附件不下载或保存为
.amr编号 :.silk。 。 。 . - 不使用本地或外部语音对文本服务.
- 如果QQ ASR 不返回文本, 机器人会回复
Could not transcribe this voice message; please resend or type it.而不启动 pi 运行. - 语音和文本是分开的QQ消息;需要时互相发送.
- 如果客户端将文件或图像连同语音信息一起发送,则会用笔录处理.
除错日志包括原始 asr_refer_text 和附件元数据 logLevel 设置为 debug。 。 。 .
答复格式
- 思考:它自己的泡沫,纯文本,从
## 💭 思考。长时间的思维可能在新的泡沫中继续,并重复标题. - 工具: 每个呼叫一个泡泡:
## <icon> <name>· ;bash命令使用一个bash代码块、 其他参数使用内行代码和结果使用text, (中文(简体) ),markdown, (中文(简体) ),python, (中文(简体) ),json等,取决于工具和文件类型. - 常规消息:没有标题的原始文本.
- 工具图标:qq bash,qq读取,qq写出,qq编辑,qq grep,qq搜索,qq find,qq is,qq列表,qq网络,qq取取取,qq删除,xq去除,qq待办,qq测试;未配置工具使用qq.
- 错误恢复:在模型出错后,60秒内自动重试运行,不断向原来的QQ聊天.
/stop等待活动工具和流在回复前完成 .
图标
在 Pi 终端运行 :
| 命令 | 说明 |
|---|---|
/qq-login | 登录 QR 代码并绑定扫描 QQ 用户 |
/qq-status | 显示登录、连接、模型、上下文和绑定用户 |
/qq-logout | 清除和清空全权证书 |
/qq-new | 重置本届会议(由QQ使用) /new(中文(简体) ) |
QQ侧命令 :
| 命令 | 说明 |
|---|---|
/new | 开始一个新的 pi 会话 |
/stop | 中止当前运行 |
/compact | 压缩当前背景 |
/status | 显示会话和上下文状态 |
/last | 按下最后一个已完成的回覆为流, 或重新启动当前输出 |
/help | 显示命令帮助 |
诊断
这些终端命令用于排除故障:
| 命令 | 说明 |
|---|---|
/qq-test-budget | 显示被动预算和流泡诊断 |
/qq-test-md [text] | 发送 Markdown 测试消息 |
/qq-test-stream | 运行流时段诊断( R)resume (用于探测) |
与 logLevel: "debug",日志仅在登录后QQ触发运行活动时写入;本地运行,登录,和闲置时段不登录. scope: "media" 覆盖这些运行过程中的媒体工具步骤,QQ中继日志只出现在QQ触发运行中.
设置
创建 ~/.pi/agent/pi-qq.json 以覆盖默认值。 它只存储设置; 证书永远不会写给它 .
{
"thinkingRelay": true,
"replyType": "full",
"deliverAs": "steer",
"fileMaxSize": 52428800,
"language": "zh-cn",
"logLevel": "silent"
}
| 密钥 | 默认 | 说明 |
|---|---|---|
thinkingRelay | true | 以本地化方式将文字中继 ## 💭 标题 |
replyType | "full" | 多少跑步被推入QQ: full, (中文(简体) ), simple, (中文(简体) ), last |
deliverAs | "steer" | 忙碌时排队新消息 : steer 或者说 followUp |
fileMaxSize | 52428800 | QQ附件下载限制, 以字节( 50MB) 为单位 |
language | "zh-cn" | 用户界面和日志语言 : zh-cn 或者说 en-us |
logLevel | "silent" | 日志阈值 : silent, (中文(简体) ), error, (中文(简体) ), warn, (中文(简体) ), info,或 debug |
设置在 pi 会话开始时被读取; 文件编辑后重新启动 pi 。 未知的密钥被忽略,无效的值会回落到带有警告的默认值.
replyType
多少代理运行被推入QQ.
| 数值 | QQ接收 |
|---|---|
full | 思考块、 工具呼叫、 工具结果以及每个助理消息( 默认) |
simple | 仅限助理留言,每个泡泡一个 |
last | 只有运行中最后一个助理消息, 当运行结束时发送 |
full是默认并保持 pi-qq 1.5.x 的行为;这是唯一的模式thinkingRelay适用.simple串流每个助理消息直播,每个消息一个QQ泡.last任务执行时不发送任何信息;/last在运行中任务回复时,任务仍在运行.- 模型错误总是作为普通消息立即传送,在每个模式中.
- 工具输出没有在
simple或者说last,但文件随qq_send_media仍在交付.
thinkingRelay
该模型的思维是否被转发给QQ作为自己的泡沫.
true(默认):思维在本地化下作为纯文本被转发## 💭标题.false:思维被放弃.- 仅适用于
replyType: "full"· ;simple财务报告和审定财务报表last永远不要思考.
deliverAs
当任务已经运行时,QQ消息是如何到达 pi 的 .
steer(默认):消息被注入到下一个安全点的运行任务中.followUp:消息在运行任务完成后排入队列并处理.
fileMaxSize
输入附件的最大大小, 以字节计( 默认) 5242880050MB) (中文(简体) ). 较大文件被以通知方式拒绝,而不是被下载,这使得本地磁盘和下载配额受到控制.
language
用户界面通知和日志消息的语言.
zh-cn(默认):简化中文.en-us: 英语.
logLevel
逻辑阈值。 记录只在QQ触发运行活动时写入 <cwd>/.pi/pi-qq/logs/pi-qq-YYYY-MM-DD.log· ; PI_QQ_LOG_DIR 覆盖目录.
silent(默认):完全没有日志文件.error:只有失败.warn:失败和可收回的问题.info:也运行元数据——消息id,内容长度,代理开始和结束.debug:一切,包括工具参数和结果,附件元数据,提示和原始语音记录.
发展
npm ci
npm run lint
npm run typecheck
npm test
npm run format:check
扩展切入点是 index.ts源模块按职责分类:
| 目录 | 责任 |
|---|---|
src/qq/ | QQ 机器人生命周期、登录、入境处理、答复 |
src/relay/ | 流式思维/工具/文本中继器 |
src/attachments/ | 附件下载、储存和语音记录 |
src/quota/ | 被动答复预算 |
src/infra/ | 设置、记录和显示格式 |
页:1
- 只支持C2C(QQ私人聊天).
- 由入境QQ消息所触发的运行被转发至QQ. 不相干的任务直接从 pi 本地开始 .
- 图像保存为文件并通过 pi 读取
read工具;当前模型必须支持图像输入才能看到它们. - 保存的附件为工作空间- 本地
.pi/; 添加.pi/切换到您自己的项目.gitignore如果需要的话. - QQ限制每个输入消息的被动回复. 使用
/qq-test-budget检查地方预算. - 读取a
SKILL.md显示为## 🧩 Skill有技能名的块; 文件内容不转发给QQ.
许可证
麻省理工学院