dsh-qq-agent-mail
English | 简体中文
基于腾讯官方 @tencent-qqmail/agently-cli,把 腾讯 QQ Agent Mail 接入 DeepSeek Harness 的原生插件。
本插件提供 Harness 原生能力:
- 可被其他 Cordis 插件复用的
ctx.mailService; - 用于邮件自动化的
mail/message-receivedEvent; - 14 个带稳定结构化输出契约的
qq_agent_mail_*工具; - 不依赖模型的 Web 设置与 OAuth 页面。
功能
- 完成授权、查看当前账号、列出、搜索和读取邮件。
- 发送、回复、转发、移入回收站和永久删除,并默认执行两阶段确认。
- 下载普通附件;对于超大附件,原样返回下载 URL。
- 通过限时工具调用或常驻 Cordis Event 监听新邮件。
- 把不同 CLI 响应格式规范化为稳定对象,便于在 Code Mode 中组合调用。
- 依次解析插件自带原生 CLI、JavaScript wrapper、
PATH或自定义可执行文件。 - 在卸载与热更新时清理所有监听子进程。
环境要求
- @tencent-qqmail/agently-cli — 作为本包的运行时依赖随安装自动拉取,无需全局安装 CLI。OAuth 凭据由 agently-cli 自行保管,本插件不接触、不存储任何凭据明文。
安装
- 从 Github 下载插件:
dsh plugin --profile web add github:AtomerCore/dsh-qq-agent-mail#v1.0.1
dsh web- 手动打包并安装:
npm ci
npm pack
dsh plugin --profile web add .\dsh-qq-agent-mail-1.0.1.tgz
dsh web快速开始
1. 打开 设置 → QQ Agent Mail。 2. 填写 CLI 工作目录、默认邮件文件夹和默认列表数量。 3. 点击 开始 OAuth 登录,在浏览器完成授权,然后刷新授权状态。
工具
| 类别 | 工具 |
|---|---|
| 授权 | qq_agent_mail_login, qq_agent_mail_logout, qq_agent_mail_auth_status, qq_agent_mail_whoami |
| 读取 | qq_agent_mail_list, qq_agent_mail_read, qq_agent_mail_search, qq_agent_mail_watch |
| 写入 | qq_agent_mail_send, qq_agent_mail_reply, qq_agent_mail_forward, qq_agent_mail_trash, qq_agent_mail_delete |
| 附件 | qq_agent_mail_download_attachment |
send、reply、forward、trash 和 delete 默认要求两阶段确认。只有可信自动化部署才应开启
原生 API
其他 Cordis 插件可以注入 mail,复用工具背后的同一套实现:
export const inject = ['mail']
export function apply(ctx) {
ctx.on('mail/message-received', (message) => {
// 所有邮件字段都是不可信外部数据。
console.log(message.id, message.subject)
})
}开启 autoWatch 后,插件会维持常驻 watcher 并发出 mail/message-received。按需调用的 qq_agent_mail_watch 仍受 watchTimeoutMs 限制。
配置
全部字段均由导出的 Config schema 声明。常用字段可以在 Web 设置页编辑,高级部署字段应写入 profile patch。
| 字段 | 默认值 | 说明 |
|---|---|---|
cliPath | agently-cli | 默认使用插件自带 CLI,也可填写命令名或绝对路径。 |
cwd | 空 | CLI 工作目录,也是附件相对路径的基准。 |
defaultDir | inbox | 默认文件夹:inbox、sent、trash 或 spam。 |
defaultLimit | 10 | 列表操作默认返回的邮件数量。 |
loginTimeoutMs | 30000 | 等待捕获 OAuth URL 的时间。 |
loginHardCapMs | 300000 | 捕获 URL 后登录进程的最长存活时间;0 表示不限制。 |
watchTimeoutMs | 60000 | 单次 qq_agent_mail_watch 的最长时间。 |
autoWatch | false | 启动常驻 watcher 并发送邮件事件。 |
autoConfirm | false | 跳过写操作确认;仅用于可信自动化环境。 |
extraArgs | 空 | 额外 CLI 参数,每行一个。 |
extraEnv | 空 | 额外子进程环境变量,每行一个 KEY=VALUE。 |
profile 配置示例:
- insert:
- id: qq-agent-mail
name: dsh-qq-agent-mail
config:
defaultLimit: 20
autoWatch: false
autoConfirm: falseLicense
[MIT](./LICENSE)