November 11, 2026
EvoSkill v2 能为你的日常工作流做什么?实战指南
使用 EvoSkill v2 和 Claude Code 训练邮件写作技能、开展营销活动,并比较打开率和点击率的实战指南。
这是一份手把手指南,教你如何使用 EvoSkill V2 自动创建并改进用于陌生邮件(cold email)营销的 AI 技能,并以打开率和点击率作为目标指标。本指南中的所有内容都是免费的,并已在 GitHub 上开源,你可以直接拿去用在自己的营销活动中。
第 1 步:安装 EvoSkill
1. 打开终端,新建一个文件夹。
这里将存放所有必需的文件。我在 Mac 的 /Documents 目录下新建了一个名为 evoskill 的文件夹。
mkdir ~/Documents/evoskill
cd ~/Documents/evoskill
2. 如果还没有安装命令行工具(Command Line Tools),接下来需要先安装。
这样你就能直接在新文件夹里方便地拉取 GitHub 上的任何仓库。运行:
git --version
我已经装了最新版本的 git,所以可以跳过这一步。如果你没有,系统会提示你下载。
3. 告诉 Git 你是谁
EvoSkill 会用 Git 保存你技能的每一个版本,所以 Git 需要知道你的姓名和邮箱:
git config --global user.name "Your Name"
git config --global user.email "you@example.com"
4. 运行 EvoSkill 安装脚本
cd ~/Documents/evoskill
curl -fsSL https://raw.githubusercontent.com/sentient-agi/EvoSkill/main/install.sh | bash
这会把 EvoSkill 下载到名为 EvoSkill 的文件夹中,并自动安装它所需的其他一切(Python 3.12、uv 以及各种依赖)。
5. 让 evoskill 命令在任何地方都能使用
echo 'export PATH="$HOME/Documents/evoskill/EvoSkill/.venv/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
6. 设置你选用的 AI 智能体。
EvoSkill 支持 Claude Code、Codex CLI、OpenCode、OpenHands、Goose、Harbor 等众多工具。我用的是 Claude Code。你可以使用 API key,也可以直接在终端里登录账号。首次打开时会提示你登录。我已经配置好了,所以直接跟我的智能体打个招呼。
claude
要运行 EvoSkill,你还需要一个 Anthropic API key。只在你运行 EvoSkill 的那个终端窗口里设置它:
export ANTHROPIC_API_KEY=your-key-here
不要把 key 保存在 ~/.zshrc 里。一旦保存在那里,即使你已登录账号,Claude Code 也会使用这个 key 而不是你的订阅,并按 token 向你计费。在 Claude Code 里输入 /status 可以查看它当前使用的是哪一种。
7. 检查是否正常工作。
evoskill --help
如果看到命令列表,就说明准备就绪了。
第 2 步:设置你的项目
第 2 至第 4 步是训练阶段。Claude 会在其他公司的发布邮件上练习,并对照它们的真实邮件来打分。我们首先要创建一组技能,让 Claude 在总体上更擅长写邮件。个性化和营销活动的具体细节会在第 5 步加入。
给 Claude 准备一份需求简报(brief),并分享你喜欢的邮件示例,让它据此起草邮件。然后,另一个 Claude 智能体会把这封邮件与我参考资料中的真实邮件进行对比打分,也就是针对同一份简报写成的、我喜欢的邮件模板(可以来自 OpenAI、Anthropic、Mistral、DeepSeek、Proton,或任何你喜欢的模板)。
EvoSkill v2 会不断重写 Claude 的技能,直到分数提高(也就是说,直到邮件足够好,并且针对更高的打开率和点击率做了优化,以模拟受众的评判为准)。
这一步结束时,你的文件夹结构会是这样:
~/Documents/evoskill/
EvoSkill/ the tool from Step 1
email-campaigns/ your project (Claude can see this)
knowledge/ advice/references for Claude
answer-key/ Claude never sees this
examples/ real emails from top companies, my examples
emails.csv your dataset
1. 创建文件夹
cd ~/Documents/evoskill
mkdir -p email-campaigns/knowledge answer-key/examples
cd email-campaigns
git init
注意:标准答案(answer key)必须放在项目文件夹之外。Claude 可以读取项目内的所有内容,如果真实邮件放在里面,它会直接照抄,拿到满分却什么也没学到。
2. 构建知识库
这是 Claude 在写作前会阅读的、来自 YC 和 a16z 的建议。在项目文件夹内打开 Claude Code:
claude
然后粘贴这段提示词:
Save each of these pages as a markdown file in the knowledge/ folder. Put the source URL at the top of each file and keep the full text.
- https://paulgraham.com/simply.html
- https://paulgraham.com/talk.html
- https://paulgraham.com/useful.html
- https://blog.ycombinator.com/how-to-email-early-stage-investors/
- https://blog.ycombinator.com/startup-school-week-4-recap-kat-manalac-and-gustaf-alstromer/
- [add your own links here]
Then search the web for:
1. A transcript of YC's talk "How to Convert Customers With Cold Emails" by Aaron Epstein.
2. The best articles on marketing, messaging and email from a16z (a16z.com and Andrew Chen's blog).
Save the 5 best results as markdown files in knowledge/ the same way.
完成后,输入 /exit 关闭 Claude Code。
我还会加入自己写的关于陌生邮件的笔记,保存为 markdown 文件。如果你也有自己的笔记,用同样的方式复制进文件夹:
cp ~/Downloads/cold-email-principles.md knowledge/
3. 收集示例邮件
现在我们需要来自顶尖公司的真实邮件。在上一级文件夹打开 Claude Code,这样它才能访问标准答案目录:
cd ~/Documents/evoskill
claude
粘贴这段提示词:
Find real marketing emails from these companies: OpenAI, Anthropic, Mistral AI, Proton, Linear, Stripe, Notion and Vercel.
Search email galleries like reallygoodemails.com, milled.com and emaillove.com. Example of the kind of page to look for:
https://reallygoodemails.com/emails/welcome-to-the-claude-developer-platform
Pick the 5 best emails per company: product launches, announcements, onboarding and newsletters. Save each email's text as a .txt file in answer-key/examples/, named company-short-title.txt, with the subject line on the first line. Skip any email whose text you can't read.
4. 把邮件转成数据集
在同一个 Claude Code 会话中,粘贴:
For each file in answer-key/examples/, write a short campaign brief: company, product, audience and the goal of the email, in 2-3 sentences, without copying its wording.
Save answer-key/emails.csv with three columns:
- question: the brief
- ground_truth: the full email text
- category: the company name
Use proper CSV quoting, then tell me how many rows it has.
如你所见,它启动了 8 个子智能体来完成这项任务。
完成后输入 /exit。
5. 初始化 EvoSkill
cd ~/Documents/evoskill/email-campaigns
evoskill init
EvoSkill 会问几个问题。我的回答如下:
Which agent runtime? › claude
Dataset source? › CSV
Absolute path to dataset CSV? › /Users/dims/Documents/evoskill/answer-key/emails.csv
Question/input column name? › question
Answer column name? › ground_truth
Category column name? › category
Additional data directories? › (leave blank)
How do you want to run EvoSkill? › Local
这会创建两个文件:.evoskill/config.toml(你的设置)和 .evoskill/task.md(你的任务描述)。
6. 设置打分方式
打开设置文件:
open -e .evoskill/config.toml
做两处修改。首先,在 [dataset] 下找到这两行并修改数字,因为默认值只使用 30% 的示例:
train_ratio = 0.6
val_ratio = 0.4
其次,找到底部的 [scorer] 部分,替换成下面的内容,这样 Claude 会用评分细则(rubric)给每封邮件打分,而不是寻找完全匹配:
[scorer]
type = "llm"
rubric = "The expected answer is a real email written for the same brief. Use it as a quality bar, not wording to copy. Score 1.0 if the new email is as good or better: strong subject line, one clear message, a specific benefit for the reader, one clear call to action, concise and on-brand. Score 0.5 if it is usable but generic or too long. Score 0.0 if it misses the brief."
保存并关闭文件。如果 TextEdit 把你的引号变成了弯引号,请关闭“编辑 → 替换 → 智能引号”,然后重新粘贴。
7. 描述你的任务
open -e .evoskill/task.md
删除文件中的所有内容,然后粘贴:
# Task
You write an email marketing copy. You'll get a campaign brief with the company, product, audience and goal. Before writing, read the guides in the knowledge/ folder and apply them.
## Output format
Subject: ...
Preview text: ...
Body: ...
---
# Constraints
- Write original copy. Don't search the web for existing emails.
保存并关闭文件。
8. 保存你的设置
git add .
git commit -m "Set up EvoSkill project"
尽管 Claude 没能抓取到 Proton 和 Mistral 的邮件示例,它仍然从其他公司收集到了相当可观的一批示例。你的项目现在已经为第 3 步的首次运行做好了准备。
第 3 步:运行 EvoSkill
EvoSkill 会让 Claude 针对各份简报写邮件、给邮件打分,并针对薄弱环节重写 Claude 的技能,一轮接一轮地进行。我的数据集有 26 封示例邮件,我按 30–100 美元的预算和几个小时的运行时间来设置。
1. 设置支出上限
在 Anthropic Console 中,为你的 API 账户设置每月支出上限。我设的是 100 美元。万一运行时间超出预期,这就是一道硬性止损线。
2. 选择运行的轮数
打开设置文件:
cd ~/Documents/evoskill/email-campaigns
open -e .evoskill/config.toml
在 [evolution] 下,把轮数从 7 改成 10:
iterations = 10
十轮刚好适合几个小时的运行时间,并且不会超出我的预算。如果连续 5 轮都没有改进,EvoSkill 也会自行停止。保存并关闭文件,然后把这次修改保存到 Git:
git commit -am "Run 10 iterations"
3. 添加你的 API key
在同一个终端窗口中设置你的 API key,这样本次运行会计入你的 API 账户,而不是你的 Claude 套餐:
export ANTHROPIC_API_KEY=your-key-here
这个 key 只在当前窗口中有效。运行结束后关闭它,你日常使用的 Claude Code 就会继续使用你的套餐。
4. 开始运行
caffeinate -i evoskill run
caffeinate -i 会在运行期间让你的 Mac 保持唤醒。请保持接通电源并打开屏幕。
注意:我第一次执行 evoskill run 时报错了,因为我的文本编辑器把配置文件里的直引号改成了弯引号。我修复之后重新运行 evoskill run,这次顺利启动了。让它跑几个小时,看看它能学到什么。
5. 观察进度
EvoSkill 会打印一张表格,每轮结束后更新一次。
Accuracy 是 Claude 的平均得分。“New best”表示新技能改进了邮件,并被保留下来。“Discarded”表示没有改进,EvoSkill 会直接把它们丢弃。每轮结束后,它还会打印该轮的花费和累计总额,让你随时清楚自己与预算的差距。
第 4 步:看看它学到了什么
Claude 到底有没有变好?智能体究竟学到了什么?
1. 查看最终结果
运行结束后,EvoSkill 会打印一份详细报告。这是我的:
只有第 3 轮优于最初的基线。其他几轮也尝试了改动,但都很含糊,EvoSkill 把它们丢弃了。在 10 封测试邮件上从 76% 提升到 79%,大约相当于多一封邮件得分更高。
如你所见,EvoSkill 会分析智能体的失败案例,自动构建缺失的技能,并丢弃失败的尝试,从而在高难度基准上实现快速提升,并让技能能够跨用例泛化。
2. 切换到最佳技能版本
运行结束后,你的项目文件夹停留在 EvoSkill 最后测试的那个版本上,而那个版本可能根本没有任何技能。在以 [DONE] 开头的那一行里找到获胜版本:
[DONE] 10 iterations, best: iter-skill-3 (0.7900)
我的情况是第 3 个。切换过去:
git checkout program/iter-skill-3
不要依赖 evoskill diff 来寻找最佳版本。在我的这次运行中,它指向的是第 8 轮,而不是第 3 轮。
3. 列出技能
evoskill skills
我的运行学到了一项技能:
4. 阅读技能内容
cat .claude/skills/*/SKILL.md
这会打印出 Claude 为自己写下的完整指令。
我给了 Claude 陌生邮件的建议,而它自己琢磨出这些建议并不适用于发给现有客户的产品邮件,于是给自己写了一条覆盖规则。它还学到了这些:
-
先给邮件分类,再动笔。 每份简报都会被归类为功能公告、引导邮件、欢迎邮件或停用通知;每种类型都有自己的结构、格式、语言、篇幅和语气。
-
让长度匹配内容。 只有一两个功能的发布邮件可以写 200–400 词;大型平台发布邮件可能超过 1,000 词。它现在知道如何根据邮件类型控制篇幅。
-
避开已知的错误。 它维护着一份反面模式清单,比如口号式的主题行、缺少问候语或落款、把客户评价堆在邮件末尾。
它还从示例里借用了一些细节,比如“Notion 2.22”和“Cheers, Ivan”,所以它的风格偏向 Notion 和 Stripe。再次强调,你应该挑选自己喜欢的公司,或者使用你自己的真实营销活动中表现优异的文案数据库,那样效果可能会更好。
(切换到你的获胜迭代版本之后)请停留在获胜分支上。在第 5 步中,我会拿这项技能来为我自己的营销活动撰写邮件。
第 5 步:用训练好的技能撰写真实的营销活动
这就是回报所在。Claude 现在拥有一项从顶尖公司邮件中学到的技能,所以我会用它为我们自己的产品 EvoSkill v2 撰写发布邮件,共三个版本:一个面向研究人员,一个面向开发者,一个面向所有其他人。
1. 把获胜技能放在独立分支上
你仍然停留在第 4 步的获胜版本上。给它建一个独立分支,让你的营销活动工作与 EvoSkill 的测试版本相互分离:
cd ~/Documents/evoskill/email-campaigns
git checkout -b campaigns
2. 添加营销活动素材
为这次活动建一个文件夹,并放入两个文件:简报,以及技术报告(最后一行会直接从 arXiv 下载)。
mkdir -p campaign/drafts
cp ~/Downloads/evoskill-v2-brief.md campaign/
curl -L -o campaign/evoskill-v2-paper.pdf https://arxiv.org/pdf/2610.25931
简报包含 Claude 所需的一切:邮件的目标读者、链接、论文中的关键结果、页脚、规则(比如不得编造数字),以及我们过去最好的一封发布邮件,作为风格参考。论文放在这里,是为了让 Claude 能对照原始来源核实事实。
3. 在新窗口中打开 Claude Code
为此打开一个新的终端窗口。第 3 步的那个窗口仍然设置着你的 API key,会让本次会话计入你的 API 账户,而不是你的 Claude 套餐。写几封邮件是很轻量的工作,所以用你的套餐就足够了。
cd ~/Documents/evoskill/email-campaigns
claude
Claude Code 会自动从这个文件夹中加载训练好的技能。
4. 让它写邮件
粘贴这段提示词:
Read campaign/evoskill-v2-brief.md and use the saas-email-anatomy skill and the guides in knowledge/.
Write three versions of a mass launch email for EvoSkill v2: one for researchers, one for builders and one general version, as described in the brief. Most readers don't use EvoSkill yet, so treat this as prospecting, not a product update to existing customers. Match the style of the reference email in the brief.
Use only facts from the brief. If you're unsure about a number, check it in the technical report in campaign/.
Save each version with its subject line and preview text in campaign/drafts/: researchers.md, builders.md and general.md.
关于“拓展新用户”的那一行很重要。这项技能学自发给现有客户的产品更新,这类邮件往往较长,但它也知道发给尚不了解你的人的邮件应该简短。告诉它这次属于哪一类,就能让它套用正确的规则。
5. 审阅与完善
发送前通读每一份草稿。对照简报检查每一个数字,并用平实的语言提出修改要求,例如:
Make the builders version shorter and more direct.
Give me three other subject lines for the researchers version.
满意之后,把草稿复制到你的邮件工具里,发送给名单中相应的人群分组。
一切就绪!
你可以进一步打磨文案:给 Claude 一份更详尽的简报,说明你想要什么,喂给它尽可能多的参考资料,并对最终的技能再迭代一两次。这会把你从未亲自写过的文案工作,变成转化率极高的邮件。
现在由你来决定如何处理你生成的所有陌生邮件变体。发起营销活动,做 A/B 测试,收集指标,再把所有这些数据反馈给 EvoSkill。它会从真实营销活动的反馈中学习,让下一次做得更好。
我决定做一次试运行。我自己写了一封邮件,然后用 EvoSkill 训练了一个 Claude 智能体,让它用完全相同的简报写出自己的版本。没有微调,没有新模型。只有更好的指令,通过反复试错发现出来。我们通过 API 把两个版本并排发出,使用相同的发件人和同一批潜在客户。
两个版本都通过 Resend API 从同一个发件人发给同一批潜在客户,并被随机分成三批。
与我自己撰写的文案相比,EvoSkill 使我的陌生邮件表现提升了:打开率 +5.2%,点击率(CTR)+2.4%。
在最近一次运行中,我完全采用了 EvoSkill 的草稿,取得了 38.72% 的打开率和 6.69% 的点击率。我想,这可以说明表现是稳定的(而且域名也预热得很充分!)。
经过 10 轮迭代,EvoSkill 针对我的任务专门定制了这个智能体,在所有 A/B 批次中,打开率和点击率都有所提升。
对开源社区的贡献
本指南中的所有内容都已在 GitHub 上免费开放:EvoSkill 邮件营销示例仓库
你可以用两种方式使用它。
- 如果你现在就想要更好的邮件,直接把我这次运行产出的技能复制到你的项目里,并填写模板即可。无需花费金钱、时间和算力。
- 如果你更愿意用自己的邮件训练,仓库里有现成的配置文件、评分细则、任务文件和提示词,也记录了我遇到的所有错误。这些都来自反复尝试,并经过真实营销活动的验证,可以帮你少走一些弯路。
你还可以用我版本的“去 AI 味”工具来处理这些邮件:https://github.com/qzxcle/signs-of-ai-writing-skill。维基百科编辑社区收集了 AI 聊天机器人典型的写作痕迹,并把它们整理成了一篇维基文章。/signs-of-ai-writing 就是在此基础上延伸出来的 SKILL.md 文件,帮助你的智能体清除草稿中 AI 味的“水文”(slopwriting)。这会为 Claude 的写作再增加一层“去 AI 化”处理。把它加入你在简报中提供给 Claude 的参考清单,是个很好的补充。
我们的自动进化框架具有通用性,可以让任何智能体工作流变得更好。告诉我你接下来想看哪个用例。
作者:Sentient 增长营销 (Growth Marketer) @qzxcle
欢迎在 https://x.com/qzxcle 查看他的作品