快速草稿 - 说几个要点自动生成结构化邮件/消息/周报草稿,内置多种模板(followup/thankyou/request/report)
Quick Draft - 快速草稿是一项面向实际任务的技能,主要用于激活词: 草稿 / 写邮件 / 写消息 / 生成;输入要点自动生成完整草稿;
Python 实现;followup;跟进客户/同事;thankyou;request;请求资源/协助;weekly;meeting;命令行用法;
跟进客户 : 快速生成。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。
激活词: 草稿 / 写邮件 / 写消息 / 生成
import os, json
from datetime import datetime
DRAFT_FILE = os.path.join(os.path.dirname(__file__), "quick_drafts.json")
class QuickDraft:
TEMPLATES = {
"followup": {
"name": "跟进邮件",
"format": "email",
"subject": "关于 {topic} 的跟进",
"body": "Hi {name},nn"
"关于 {topic} 的事情,想跟您确认一下进度。nn"
"方便的话请回复,谢谢!nn"
"Best,n{sender}"
},
"thankyou": {
"name": "感谢信",
"format": "email",
"subject": "感谢 {reason}",
"body": "Hi {name},nn"
"非常感谢您 {reason}!这对我帮助很大。nn"
"期待后续继续合作。nn"
"Best,n{sender}"
},
"request": {
"name": "请求协助",
"format": "email",
"subject": "请求协助: {topic}",
"body": "Hi {name},nn"
"想请您帮忙 {request}。nn"
"如果方便的话,请在 {deadline or '方便时'} 回复。nn"
"提前感谢!nn"
"Best,n{sender}"
},
"weekly": {
"name": "周报",
"format": "report",
"subject": "周报 {week_start} - {week_end}",
"body": "# {name} 周报 ({week_start} - {week_end})nn"
"## 本周完成n"
"{completed}nn"
"## 下周计划n"
"{planned}nn"
"## 问题与风险n"
"{risks}"
},
"meeting": {
"name": "会议纪要",
"format": "note",
"body": "# 会议纪要 - {topic}nn"
"**时间**: {date}n"
"**参与人**: {attendees}nn"
"## 讨论内容n"
"{discussion}nn"
"## 行动项n"
"{actions}"
}
}
def __init__(self):
os.makedirs(os.path.dirname(DRAFT_FILE), exist_ok=True)
self.drafts = self._load()
def _load(self):
if os.path.exists(DRAFT_FILE):
with open(DRAFT_FILE, encoding="utf-8") as f:
return json.load(f)
return []
def _save(self):
with open(DRAFT_FILE, "w", encoding="utf-8") as f:
json.dump(self.drafts, f, ensure_ascii=False, indent=2)
def generate(self, template_key: str, params: dict) -> dict:
"""根据模板生成草稿"""
if template_key not in self.TEMPLATES:
available = list(self.TEMPLATES.keys())
return {"error": f"Unknown template '{template_key}'. Available: {', '.join(available)}"}
tmpl = self.TEMPLATES[template_key]
# 填充模板变量
try:
subject = tmpl.get("subject", "").format(**params) if "subject" in tmpl else None
body = tmpl["body"].format(**params)
except KeyError as e:
return {"error": f"Missing parameter: {e}"}
draft = {
"id": len(self.drafts) + 1,
"template": template_key,
"format": tmpl["format"],
"subject": subject,
"body": body,
"params": params,
"created": datetime.now().isoformat(),
"finalized": False
}
self.drafts.append(draft)
self._save()
return draft
def list_recent(self, limit: int = 5) -> list:
return [{"id": d["id"], "template": d["template"], "subject": d.get("subject"),
"created": d["created"], "finalized": d["finalized"]}
for d in self.drafts[-limit:]]
# 使用示例
draft = QuickDraft()
# 生成跟进邮件
email = draft.generate("followup", {
"name": "张三",
"topic": "项目方案评审",
"sender": "李四"
})
print(f"📧 {email['subject']}")
print(email['body'])
# 生成周报
report = draft.generate("weekly", {
"name": "李四",
"week_start": "2026-05-22",
"week_end": "2026-05-28",
"completed": "- FlashAttention 调研完成n- 性能测试框架搭建",
"planned": "- 集成测试n- 文档撰写",
"risks": "- 依赖库版本兼容性问题"
})
print(f"📋 {report['subject']}")
print(report['body'])
# 生成会议纪要
meeting = draft.generate("meeting", {
"topic": "Q2 OKR Review",
"date": "2026-05-28",
"attendees": "全员",
"discussion": "- KR1 完成 80%,预计下月交付n- KR2 延期2周,需要协调资源",
"actions": "- 张三: 补充KR2资源申请n- 李四: 周五前更新排期"
})
print(f"📝 {meeting['subject'] if meeting.get('subject') else meeting['body'][:50]}")
| 模板 | 适用场景 | 格式 |
|---|---|---|
| followup | 跟进客户/同事 | 邮件 |
| thankyou | 感谢信 | 邮件 |
| request | 请求资源/协助 | 邮件 |
| weekly | 周报 | 报告 |
| meeting | 会议纪要 | 笔记 |
# 生成跟进邮件
python -c "
from quick_draft import QuickDraft
d = QuickDraft().generate('followup', {'name': '王总', 'topic': '合同', 'sender': '我'})
print(d['subject'] + 'n---n' + d['body'])
"
相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 133.9万人学习
共49课时 | 82.5万人学习