ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

AutoGPT Platform AgentMail 消息块详解:邮件发送、接收、回复、转发与标签状态管理

AutoGPT Platform AgentMail 消息块详解:邮件发送、接收、回复、转发与标签状态管理 AutoGPT Platform AgentMail 消息块详解邮件发送、接收、回复、转发与标签状态管理【免费下载链接】AutoGPTAutoGPT is the vision of accessible AI for everyone, to use and to build on. Our mission is to provide the tools, so that you can focus on what matters.项目地址: https://gitcode.com/GitHub_Trending/au/AutoGPT本文以 AutoGPT Platform 的 AgentMail Messages 文档为主体完整讲解 6 个消息块发送、列表、获取、回复、转发、更新标签的输入输出参数、校验规则与典型用法并结合 messages.py 与 _config.py 源码揭示凭证管理、计费与错误处理的实际实现帮助你在 Agent 工作流中构建可轮询、可去重、可多轮对话的自动化邮件系统。1. 什么是 Message六块功能总览在 AgentMail 的数据模型中Thread线程是一次会话Message消息是线程内的一封独立邮件。Messages 文档覆盖的就是对这封单封邮件的全部操作能力块文档标题源码类块 ID敏感操作发送邮件Agent Mail Send MessageAgentMailSendMessageBlockb67469b2-7748-4d81-a223-4ebd332cca89是列出消息Agent Mail List MessagesAgentMailListMessagesBlock721234df-c7a2-4927-b205-744badbd5844否获取单条Agent Mail Get MessageAgentMailGetMessageBlock2788bdfa-1527-4603-a5e4-a455c05c032f否回复邮件Agent Mail Reply To MessageAgentMailReplyToMessageBlockb9fe53fa-5026-4547-9570-b54ccb487229是转发邮件Agent Mail Forward MessageAgentMailForwardMessageBlockb70c7e33-5d66-4f8e-897f-ac73a7bfce82是更新标签Agent Mail Update MessageAgentMailUpdateMessageBlock694ff816-4c89-4a5e-a552-8c31be187735否1.1 凭证与计费前提所有消息块都通过credentials输入引用一个AgentMail API Key提供方为agent_mail。从源码结构看凭证有两种获取路径手动凭证在凭证管理中自行创建AGENTMAIL_API_KEY。_config.py 中的ProviderBuilder(agent_mail).with_api_key(AGENTMAIL_API_KEY, AgentMail API Key)定义了该凭证字段运行时由_client()用密钥构造AsyncAgentMail异步客户端pyproject.toml 中依赖agentmail ^0.4.5。托管凭证当平台侧配置了组织级密钥settings.py 中的agentmail_api_key字段时agentmail.py 中的AgentMailManagedProvider会为每个用户自动创建一个 Pod 并签发 Pod 级 API Key标记为is_managedTrue后自动出现在块的凭证下拉框中无需用户手动配置。计费方面_config.py 中的注释说明了现状AgentMail 目前处于 beta 阶段且未公布正式计价因此平台为这批块设置了1 credit/次运行的保守底价with_base_cost(1, BlockCostType.RUN)避免 AgentMail 的工作量绕过计费体系。另外发送、回复、转发这三个会对外发出邮件的块在源码中均标记了is_sensitive_actionTrue意味着执行时会被平台当作敏感动作对待而列表、获取、更新标签属于只读或站内状态操作不做此标记。2. 发送新邮件Agent Mail Send Message2.1 功能与工作机制从指定邮箱Inbox发出一封新邮件自动创建一个新会话线程。支持纯文本 HTML 双正文、CC/BCC 收件人以及用于出站邮件追踪的标签。从源码看run()的执行顺序为收件人总量校验to cc bcc合计不得超过 50 人否则抛出ValueError: Max 50 combined recipients across to, cc, and bcc (got N)messages.py。按需组装参数html、cc、bcc、labels仅在非空时才加入请求参数避免向 API 传空字段。调用client.inboxes.messages.send(inbox_id, **params)随后输出message_id、thread_id为空时输出空串和完整的model_dump()结果对象。2.2 输入参数输入说明类型必填源码细节inbox_id发件邮箱 ID 或地址如 agentagentmail.tostr是—to收件人地址列表如 [userexample.com]List[str]是—subject邮件主题str是—text纯文本正文。始终提供作为不渲染 HTML 的邮件客户端的兜底str是—htmlHTML 富文本正文。兼容性最佳的做法是把 CSS 内嵌在style标签中str否默认空串标记为 advanced高级选项ccCC 收件人用于人类监督human-in-the-loopList[str]否默认空列表advancedbccBCC 收件人对其他收件人隐藏List[str]否默认空列表advancedlabels标签用于过滤与状态管理如 [outreach, q4-campaign]List[str]否默认空列表advanced2.3 输出参数输出说明类型error操作失败时的错误信息strmessage_id已发送邮件的唯一标识strthread_id归组本邮件及其后续回复的线程 IDstrresult包含全部元数据的完整邮件对象Dict[str, Any]2.4 典型用例外联营销活动Outreach Campaigns向潜客列表发送个性化冷邮件附带活动标签用于追踪HTML 模板保证专业排版。告警通知Alert Notifications监控指标越界时自动发告警邮件CC 人类操作员以实现监督。报表投递Report Delivery定期向利益相关方发送汇总报表BCC 到归档邮箱留档。3. 列出邮箱中的消息Agent Mail List Messages3.1 功能与工作机制分页列出指定邮箱中的消息支持按标签过滤——这是轮询收件箱类工作流的入口。labels过滤的语义是AND 匹配只返回同时拥有所给全部标签的消息如[q4-campaign, follow-up]。从源码看messages.py分页参数page_token与labels同样按需附加输出的count有一个兜底逻辑优先取 API 返回的response.count若为None则退化为当前页len(messages)。当next_page_token为空串时表示已无更多结果循环翻页即可终止。3.2 输入参数输入说明类型必填源码细节inbox_id要列出消息的邮箱 ID 或地址str是—limit每页返回的最大消息数1-100int否默认 20advanced 选项page_token上一次响应返回的翻页令牌str否默认空串labels仅返回同时具备所有这些标签的消息如 [unread] 或 [q4-campaign, follow-up]List[str]否默认空列表3.3 输出参数输出说明类型error操作失败时的错误信息strmessages消息对象列表含主题、发件人、text、html、labels 等List[Dict[str, Any]]count本页返回的消息数量intnext_page_token下一页令牌无更多结果时为空str3.4 典型用例收件箱轮询Inbox Polling定期列出标记为unread的消息触发对新邮件的自动化处理。活动监控Campaign Monitoring按活动专属标签过滤消息追踪外联序列的回复率与参与度。批处理Batch Processing翻页遍历整个邮箱执行摘要、归档、数据抽取等批量操作。4. 获取单条消息Agent Mail Get Message4.1 功能与工作机制通过inbox_idmessage_id从 AgentMail 拉取单封邮件返回主题、纯文本正文、HTML 正文及全部元数据。本块最有价值的输出是extracted_text它只包含新增回复内容已剥离引用历史quoted history。相比text可能包含整段邮件往来的引用文本把extracted_text喂给 LLM 可以显著减少冗余上下文、降低 token 消耗是多轮邮件对话中读取上一封的标准做法。从源码看块对thread_id、subject、text、extracted_text、html均做了or 的空值兜底messages.py保证 API 未返回某字段时输出仍是稳定的空字符串而非失败。4.2 输入参数输入说明类型必填inbox_id消息所属的邮箱 ID 或地址str是message_id要获取的消息 ID如 abc123agentmail.tostr是4.3 输出参数输出说明类型error操作失败时的错误信息strmessage_id消息唯一标识strthread_id消息所属线程strsubject邮件主题strtext完整纯文本正文可能包含引用的回复历史strextracted_text仅新增回复内容已剥离引用历史最适合 AI 处理strhtml邮件 HTML 正文strresult完整消息对象含发件人、收件人、附件、标签等全部字段Dict[str, Any]4.4 典型用例意图分类Intent Classification取消息的extracted_text交给 LLM 分类发件人意图再路由到对应工作流。会话上下文加载Conversation Context Loading在多轮邮件对话中拉取特定消息为生成上下文相关的回复构建依据。附件处理Attachment Processing读取result中的完整元数据提取附件 URL 供下游文档解析或图像分析。5. 回复邮件Agent Mail Reply To Message5.1 功能与工作机制对现有消息进行回复API 会自动把回复挂到原消息所在的同一线程无需手动维护 thread 关联——这是构建多轮 Agent 邮件对话的核心机制。从源码看messages.py块总是传text仅在html非空时附加 HTML 正文成功后输出新回复的message_id、所在thread_id与完整消息对象。由于标记为敏感操作执行前会受到平台的敏感动作管控。5.2 输入参数输入说明类型必填源码细节inbox_id发出回复的邮箱 ID 或地址str是—message_id要回复的消息 ID如 abc123agentmail.tostr是—text回复的纯文本正文str是—html回复的 HTML 富文本正文str否默认空串advanced5.3 输出参数输出说明类型error操作失败时的错误信息strmessage_id回复消息的唯一标识strthread_id回复被加入的线程 IDstrresult包含全部元数据的完整回复消息对象Dict[str, Any]5.4 典型用例客服 AgentCustomer Support Agent基于消息内容与知识库用 LLM 生成答案并自动回复支持类邮件。面试安排Interview Scheduling查完日历可用时间后回复候选人邮件给出候选面试时间。会话式工作流Conversational Workflow与用户保持持续的邮件往返每一轮回复都基于上一轮交互推进多步骤任务。6. 转发邮件Agent Mail Forward Message6.1 功能与工作机制把指定消息转发给一个或多个新收件人支持 CC/BCC可选主题覆盖或附加前置文本。与 Send 块相同to cc bcc合计上限为 50 人messages.py。不传subject时API 默认使用Fwd: 原主题text与html是追加在原转发内容之前的附加内容而非替换原正文——原邮件内容由 API 在构造转发邮件时自动包含。6.2 输入参数输入说明类型必填源码细节inbox_id转发来源的邮箱 ID 或地址str是—message_id要转发的消息 IDstr是—to转发目标收件人如 [userexample.com]List[str]是—ccCC 收件人List[str]否默认空列表advancedbccBCC 收件人对其他收件人隐藏List[str]否默认空列表advancedsubject覆盖主题行默认为 Fwd: 原主题str否默认空串text附加在转发内容之前的纯文本str否默认空串html附加在转发内容之前的 HTMLstr否默认空串6.3 输出参数输出说明类型error操作失败时的错误信息strmessage_id转发消息的唯一标识strthread_id转发所在线程 IDstrresult包含全部元数据的完整转发消息对象Dict[str, Any]6.4 典型用例升级路由Escalation Routing把匹配特定关键词或优先级级别的消息转发给人类主管邮箱复核。多 Agent 协作Multi-Agent Collaboration把收到的请求转发给专职 Agent 的邮箱让正确的 Agent 处理对应任务。摘要分发Digest Distribution把聚合邮箱中的每日摘要报告转发给干系人分发列表。7. 更新消息标签Agent Mail Update Message7.1 功能与工作机制对指定消息增删标签用于读/未读跟踪、活动打标与流水线状态管理。标签是自由定义的字符串可表示已处理、情感已分析、高优先级等任意状态。从源码看本块有一条文档表格未体现的前置校验add_labels与remove_labels不能同时为空否则直接报错Must specify at least one label operation: add_labels or remove_labelsmessages.py——空更新请求会在本地被拦截不会到达 API。成功后返回更新后的message_id与携带当前标签状态的完整消息对象。7.2 输入参数输入说明类型必填源码细节inbox_id消息所属的邮箱 ID 或地址str是—message_id要更新标签的消息 IDstr是—add_labels要添加的标签如 [read, processed, high-priority]List[str]否默认空列表与 remove_labels 至少填一项remove_labels要移除的标签如 [unread, pending]List[str]否默认空列表与 add_labels 至少填一项7.3 输出参数输出说明类型error操作失败时的错误信息strmessage_id更新后的消息 IDstrresult携带当前标签状态的完整更新消息对象Dict[str, Any]7.4 典型用例读/未读跟踪Read/Unread TrackingAgent 处理完消息后移除unread、添加read防止下一轮轮询重复处理。流水线状态管理Pipeline State Management消息在多级处理中流转时依次打上sentiment-analyzed、response-drafted等标签让每个阶段清楚哪些消息还有待办。优先级打标Priority Tagging为 VIP 发件人或含紧急关键词的消息添加high-priority让下游块优先过滤处理。8. 错误处理与组合工作流8.1 错误处理的实际行为虽然各块在文档中都声明了error输出源码层面值得确认的是每个块的run()都把校验 API 调用 结果解析整体包在try/except中异常包括收件人超限的ValueError、API 抛出的错误、以及更新块的空操作校验统一被捕获并以yield error, str(e)的形式输出。因此在工作流中判断操作成败应以error输出是否为空为准失败时不会中断整个图执行。8.2 去重轮询模式List → Get → Update标签机制让新邮件处理一次且仅一次变得可靠推荐组合如下List Messageslabels[unread]周期性拉取未处理消息配合limit控制批量大小Get Message对每封消息取extracted_text作为 LLM 输入完成分类、摘要或答复生成Update Messageadd_labels[read, processed]remove_labels[unread]一次性完成状态迁移需要对外答复时用Reply To Message保持线程连续需要人工介入或转交时用Forward Message升级。8.3 多轮客服对话Listunread 过滤→ Getextracted_text供 LLM 生成答复→ Reply自动回挂原线程→ Update打response-sent标签四步即可闭环一封支持类邮件的处理且全程无需手动拼接 thread 信息。8.4 开发自测每个块在源码中都内嵌了test_credentials、test_input、test_output与test_mock例如 Send 块的 mock 返回mock-msg-id/mock-thread-id可在不消耗真实 AgentMail 配额的 mock 凭证下运行单元级测试验证块的输入输出契约。9. 参考资料本文对应文档Agent Mail Messages消息块实现messages.py共享凭证与计费配置_config.py托管凭证提供方agentmail.py同系列文档Inbox、Threads、Drafts、Attachments、Lists、Pods【免费下载链接】AutoGPTAutoGPT is the vision of accessible AI for everyone, to use and to build on. Our mission is to provide the tools, so that you can focus on what matters.项目地址: https://gitcode.com/GitHub_Trending/au/AutoGPT创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表