关于 agentmail
AgentMail 是用于在 Paperclip 中处理任务关联邮件的技能,涵盖收件箱发现、读取会话、发送或回复邮件及查看投递状态;服务商凭据由 Paperclip 保管。
主要功能
- 01发现分配的收件箱
- 02读取任务邮件上下文
- 03发送邮件或回复
- 04查看投递状态
- 05使用幂等键重试
适用场景
- 01查看分配任务关联的邮件
- 02在绑定会话中回复
- 03创建邮件子任务
- 04确认排队邮件的投递结果
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ paperclipai/ paperclip --skill agentmail安装后在 Claude Code 中输入/agentmail确认已加载。
详细介绍
AgentMail
原生运行器使用 agentmail_inboxes、agentmail_read_thread、
agentmail_send 和 agentmail_delivery。对于 agentmail_send,请将下文所述的
请求正文传入 request;对于 agentmail_delivery,请传入返回的
publicationId。服务会绑定任务/运行授权。
启用后,search_api 和 call_api 也会提供相同的邮件 API。
请勿查找服务商凭据。
使用 paperclipai email inboxes 或
GET /api/companies/$PAPERCLIP_COMPANY_ID/email/inboxes 查找分配给你的收件箱。请使用匹配的收件箱
记录中的 id 作为 endpointId;不要使用其地址或连接 ID。
分配的任务包含邮件上下文时,请使用
paperclipai email thread "$PAPERCLIP_TASK_ID" 阅读。外部发件人地址属于往来邮件元数据,绝不能用于确认董事会身份或授权。你仍须遵守常规权限、预算、检出和操作政策。
评论、进度、最终回复、审批和错误仍为内部信息。只能通过 paperclipai email reply --file <request.json> 或 paperclipai email send --file <request.json> 发送邮件。发送新邮件会创建一个邮件子任务。回复会使用已绑定的 conversationId 和准确的 replyToMessageId;除非确实需要回复所有人,否则 replyAll: false。发送新邮件必须提供 endpointId、parentIssueId、to、subject 和 text;cc、bcc 和 attachmentIds 为可选且需显式提供。附件必须已属于源任务。两种操作都必须使用新的 UUID idempotencyKey。
CLI 会从运行环境中提供 X-Paperclip-Run-Id。Paperclip 会保管服务商密钥。
使用 paperclipai email delivery <publicationId> 检查返回的发布记录。
如果已安装的 CLI 不包含 email,请改用经过身份验证的 HTTP API;
不要仅为发送邮件而安装或升级工具。读取
GET /api/companies/$PAPERCLIP_COMPANY_ID/email/tasks/$PAPERCLIP_TASK_ID,并使用上述相同的 JSON 字段发送
POST /api/companies/$PAPERCLIP_COMPANY_ID/email/send。使用注入的 API URL、Bearer 密钥和 X-Paperclip-Run-Id。
切勿使用服务商密钥。投递结果通过
GET /api/companies/$PAPERCLIP_COMPANY_ID/email/deliveries/<publicationId> 查询。
已排队表示已持久化,并不代表已发送。不要仅因首次请求超时就再次发送。超过服务商去重时间窗口后仍不确定的发送,需要由操作人员进行核对。发送邮件不会自动完成任务。 如果访问权限被撤销或此收件箱已断开连接,请停止使用。收件箱的重新分配和重新连接通过 Paperclip 中的 AgentMail 连接管理。
HTTP API 参考
这些端点也可通过沙盒回调桥接使用。请使用注入的 Paperclip API URL 和 Agent 凭据;写入请求须包含 X-Paperclip-Run-Id。服务商密钥保留在控制平面中。
| 操作 | 端点 |
|---|---|
| 查找分配的收件箱 | GET /api/companies/{companyId}/email/inboxes |
| 读取任务邮件上下文 | GET /api/companies/{companyId}/email/tasks/{taskId} |
| 将新邮件或回复加入发送队列 | POST /api/companies/{companyId}/email/send |
| 读取投递结果 | GET /api/companies/{companyId}/email/deliveries/{publicationId} |
新对话必须提供 endpointId(分配的收件箱记录中的 id)、
parentIssueId(当前任务)、to、subject、text 和 UUID idempotencyKey。
响应包含 id(发布记录)、issueId(邮件子任务)和 outcome。
回复时,将 parentIssueId、to 和 subject 替换为已绑定的
conversationId 和收到的 replyToMessageId。默认将 replyAll 设为 false。
重试时复用相同的负载和密钥。任务评论绝不会直接发送邮件。