Agent Skills
› QuixiAI/Hexis
› email-digest
email-digest
GitHub自动摘要并提取邮件中的关键线程与行动项,存入记忆。支持心跳检查、用户查询及每日简报场景,需验证授权与连接状态,尊重隐私与存储策略。
Trigger Scenarios
用户询问收件箱内容或重要邮件
目标依赖可能通过邮件到达的信息
准备包含邮件亮点的每日简报
自主心跳中检查新邮件(需授权)
Install
npx skills add QuixiAI/Hexis --skill email-digest -g -y
SKILL.md
Frontmatter
{
"name": "email-digest",
"aliases": [
"email",
"emails",
"mail",
"inbox",
"unread",
"important",
"triage"
],
"category": "communication",
"contexts": [
"heartbeat",
"chat"
],
"requires": {
"tools": [
"email_list",
"email_read",
"remember",
"recall",
"gmail_setup_status",
"queue_user_message"
]
},
"bound_tools": [
"email_list",
"email_read",
"email_search",
"ingest_emails",
"gmail_setup_status",
"recall",
"remember",
"queue_user_message",
"email_send",
"email_send_sendgrid"
],
"description": "Digest and ingest emails into memory, surfacing important threads and action items"
}
Email Digest Workflow
Process incoming emails into structured memories, extract action items, and surface threads that need attention.
When to Use
- During autonomous heartbeats to check for new mail since the last digest, but only when Gmail is connected and
integrations.gmail.heartbeat_digest_enabledis true or the active heartbeat task/goal carries explicit user authorization for this check - When the user asks "what's in my inbox" or "any important emails"
- When a goal depends on information that may have arrived via email
- When preparing a daily briefing that includes email highlights
Step-by-Step Methodology
- Check authorization: In heartbeat, only proceed if the runtime exposed this skill because the user granted autonomous Gmail digest access. If setup/status indicates the grant is missing, stop and queue a short request for the user to enable background email checks.
- Check recency: Use
recallto find when the last email digest ran. Avoid re-processing messages already ingested. - Check setup: Call
gmail_setup_status. If Gmail is not connected, record the missing setup clearly and stop; do not loop. - List new emails: Call
email_listwith a date filter to fetch unread or recent messages. Start with the inbox; expand to other labels only if the user has configured them. - Triage by sender and subject: Scan the list for high-signal indicators -- known contacts, reply chains the user is on, calendar invites, and keywords matching active goals.
- Read priority threads: Use
email_readon the top 5-10 most relevant messages. Do not read every email; batch processing wastes energy and context. - Extract action items: For each important email, identify: (a) what is being asked, (b) who is asking, (c) any deadline mentioned, (d) whether a reply is expected.
- Store findings: Respect
integrations.gmail.memory_policy. If it isforget, do not userememberoringest_emailsfor email-derived content. If it isask, queue a user-facing choice before storing. If it isremember, persist action items as episodic memories with high importance, tagged with the sender, thread ID, and any relevant goal. - Surface urgency: If an email requires a time-sensitive response, flag it in the heartbeat result so it can be raised to the user at next opportunity.
Quality Guidelines
- Never store raw email bodies as memories. Summarize and extract the salient points.
- Respect privacy: do not log email content to external services. All storage stays in the local Postgres brain.
- Google OAuth authorization is not the same as Hexis autonomy authorization. A connected Gmail account does not imply permission for background heartbeat reading.
- When multiple emails belong to the same thread, consolidate into a single memory rather than creating duplicates.
- If credentials are missing or expired, fail gracefully. If
gmail_setup_statussays Google sign-in is ready, queue a short user-facing request that they connect Gmail from chat or CLI; do not start or complete sign-in during heartbeat. - Prefer recalling existing contact memories to enrich email context (who is this person, what is the relationship).
Version History
-
97f625f
Current 2026-08-29 01:31
修复审批门禁漏洞,防止未授权工具在心跳中执行;优化技能发现机制,使 email-digest 等技能可通过别名从聊天界面触发,而非仅限心跳。
- 990da5f 2026-08-20 13:53


