【免费下载链接】harvey
Autonomous AI sales agent powered by Claude Code or Codex. Finds prospects, writes cold emails, sends campaigns, handles replies, books meetings. No API keys needed — runs on your Claude or Codex subscriptions.
Harvey 是一个开源的自主 AI 销售智能体(autonomous AI sales agent):它会自动寻找潜在客户、撰写冷启动邮件、发送营销活动、阅读回复并推进到预约会议,全程跑在你的 Claude Code 或 Codex 订阅上,没有额外的模型 API 账单。比起"它会自动做什么",更值得关注的是它如何保证自动化不失控。这篇文章拆解 Harvey 背后的 6 条设计哲学,它们对任何 AI Agent 项目都有借鉴价值。
先认识 Harvey:跑在你订阅上的 AI 销售智能体
Harvey 的核心是一个心跳循环(heartbeat loop):醒来 → 检查预算 → 决定下一步 → 执行 → 记录 → 睡眠,默认每 15 分钟一轮。它由五个各司其职的子智能体组成——Scout(打分与个性化)、Writer(写邮件序列)、Sender(发送)、Handler(处理回复)、Analyst(空闲时做分析),定义在 harvey/agents/ 目录。
它最特别的一点是成本模型:模型调用走你已经在付的 Claude Pro/Max 或 ChatGPT 订阅(Codex),按次调用、不按 token 计费。这让 Harvey 能"想一整天的循环"而不用担心 API 账单——前提是要有节制。正是这种"既自主、又要省钱"的张力,塑造了下面 6 条原则。
下面是它的本地仪表盘(localhost:5555),左侧是"等待你决策"的队列,右侧是管道数据:
启动后它会这样工作:
Decision: prospect (only 3 new prospects; pipeline needs leads) discover → 41 businesses in Portland, OR ($0.00, OpenStreetMap) profile → 41 sites read, 288 observations (free, no model calls) scout → 12 scored against your ICP Decision: write_campaign (12 new prospects with no drafts) Cycle complete. Sleeping for 15 minutes.注意两点:每一步都标了成本,且决策是确定性的、可解释的。这背后正是它的设计哲学。
Harvey 的 6 条设计哲学速览
| # | 原则(英文原名) | 一句话理解 |
|---|---|---|
| 1 | Autonomous ≠ unsupervised | 自主不等于放任,给智能体装上护栏 |
| 2 | You define a good prospect | 信号先提议、由你确认,人说了算 |
| 3 | Deterministic over model | 能用普通代码解决的,就别花一次模型调用 |
| 4 | Failure is an observation | 失败也是一种"发现",拒绝静默 |
| 5 | The DB is the asset | 数据库才是资产,智能体不是 |
| 6 | Everything is editable | 提示词、技能、配置全是纯文本,改文件即生效 |
下面逐条展开。
原则一:自主不等于放任 —— 给智能体装上护栏
"Autonomous doesn't mean unsupervised."(自主不等于无人监督)
一个能整天空转、还会发出去的 Agent,最危险的地方在于"它什么时候会替你做决定"。Harvey 的答案是多层护栏,而且每一层都不依赖模型自觉:
- 静默时段(quiet hours):夜间不活动,避免在错误的时间点打扰客户。
- 用量预算(budget):读取你订阅的真实配额,按
max_daily_claude_percent留足余量,满了就睡一小时再检查。 - 发送上限(
max_daily_sends):每天最多发多少封邮件,硬性封顶。 - 审批队列(Outbox):默认每一封外发邮件都要你批准才能发出。
- 确定性发送前闸门(pre-send gate):不经过任何模型,用纯代码拦截坏邮件。
- 一键急停(kill switch):
harvey sending pause立即停下所有外发。
这套"审批阶梯 + 确定性闸门"的逻辑,正是 harvey/gate.py 在发信前强制执行的:未渲染的合并变量、违禁词、超长正文、过多链接、HTML 正文、不可送达的地址、收件人与数据库记录不匹配——任意命中就直接拦下并记录原因。用一句话概括它的态度:提示词是地板,不是保证;约束写在 prompt 里,校验写进代码里。
💡 借鉴点:给 Agent 的"自主空间"画边界时,护栏要落在确定性的代码里,而不是依赖模型"应该会守规矩"。
原则二:好客户由你定义 —— 信号先提议、你确认
"You decide what a good prospect is."(什么是好客户,由你决定)
Harvey 知道如何收集 23 种关于一家企业的"信号"(signal):它的现有代运营机构、是否在投广告、有没有在线预约、SEO 排名、是否缺 Schema 标记……但它在你确认之前一个都不收集。
首次运行时它先"提议"这份目录(见 harvey/signals.py 的SIGNAL_CATALOG),每一条都用大白话说明"它是什么、成本多少、为什么重要"。你在仪表盘或终端里逐个确认、跳过或拒绝:
harvey signals # 查看目录 harvey signals --confirm free # 打开所有免费的信号 harvey signals --confirm SERP_RANK # 显式打开某个付费信号确认之后,仪表盘里的"人群构建器"(cohort builder)把这些信号变成一个可查询的目标集合——比如"有代运营机构 AND 在投 Google 广告 AND NOT 已有在线预约 → 23 家公司"。这带来两个好处:每一家为什么在名单里,你都解释得清;写邮件时 Harvey 也知道该引用哪一条信号。
💡 借鉴点:让 Agent提议能力清单、由人来确认,而不是开箱即全开。这样花费是刻意为之的,结果也是可解释的——一个你自己都解释不清的客户名单,你不该往里面发信。
原则三:能用确定性代码,就别用模型
"If it can be gotten deterministically, don't use a model."(能确定性拿到的,别用模型)
这条是 Harvey 能"跑在订阅上而不烧钱"的根本原因。它把判断和计算严格分开:
- 决策是确定性的。心跳里"下一步做什么"完全由管道里的几个计数推导出(回回复 > 发活动 > 写活动 > 拓客 > 空闲分析),见 harvey/main.py 的
decide_next_action——不为此额外烧一次模型调用。 - 检索与解析用 Python。找企业、读官网(每家公司 3 个 HTTP 请求、无模型调用)、学邮箱地址规律,全是普通代码。
- 模型只用在真正需要判断的地方:给找到的数据打分、写个性化邮件、处理回复的意图分类。
换句话说,Claude/Codex 被"预留"给必须用智能的部分,其余一律交给廉价、可复现的代码。这就是为什么它能在一个普通订阅内跑一整天的循环。
💡 借鉴点:为 Agent 设计一张"哪些步骤必须用模型、哪些用代码"的清单。默认用代码,例外才上模型,成本与稳定性都会好得多。
原则四:失败是一种观察,而不是沉默
"A failure is an observation, not silence."(失败是一种观察,不是沉默)
"没找到团队页"是一个发现,"Overpass 限流了"也是一个发现。Harvey 的设计原则是:静默的失败看起来和干净的成功一模一样,于是坏掉的一次运行会被误当成"这个市场是空的"。
为此,错误不会悄悄消失:
- 心跳里连续失败会指数退避(60s→120s→…封顶 15 分钟),并明确记录"第 N 次失败,正在恢复",见 harvey/main.py。
- 每个阶段(发现、画像、富集、验证)各自独立运行、可安全重跑、且标明成本,某一环出错不会伪装成"没找到任何东西"。
- 邮箱地址会被诚实地打标:
verified/risky(catch-all)/guess/invalid,只有可送达的才会发——一个猜测绝不被当成一次成功。
💡 借鉴点:为 Agent 的每一步建立"显式失败"通道。把"没做成功"和"没东西可做"区分开,是 Agent 从"看着能用"走向"真的可信"的分水岭。
原则五:数据库才是资产,而不是智能体
"The database is the asset, not the agent."(数据库才是资产,而不是智能体)
Harvey 把数据存在本地 SQLite(data/harvey.db),schema 由一个念头驱动:每个事实是一行,而不是一个列。一家企业的信号不写成companies.has_agency这样的列,而是存进observations表的一行,带上置信度和来源(证据 URL、观察时间)。
这个设计白拿了四个好处:
- 新信号无需迁移——收集器新造一个信号码即可工作。
- 历史是免费的——同一个信号被季度性重复观察,本身就成了时间序列;"它上季度换掉了代运营机构"比任何静态事实都更有价值。
- 置信度和出处跟着事实走,而不是被覆盖时丢掉。
- 人群就是一个查询——集合交集发生在 SQL 里,而不是在应用代码里。
词表还是受治理的:数据库触发器会拒绝任何不在signal_codes表里的signal_code,一个笔误会大声失败,而不是悄悄造出一个垃圾信号。相关逻辑见 harvey/state.py。
💡 借鉴点:把 Agent 学到的东西沉淀成带置信度与出处、可随时间累积的结构化数据,而不是只存在对话历史里。数据会随时间复利,智能体本身不会。
原则六:一切皆可编辑 —— 不用写代码就能改变它
"Everything is editable."(一切皆可编辑)
Harvey 的销售知识不在代码里、不在向量库里,而是skills/目录下你可以直接编辑的纯 Markdown:
- skills/email_frameworks.md —— 冷邮件框架(AIDA、PAS、BAB 等)与"像真人写邮件"的硬性规则
- skills/objection_handling.md —— LAARC 异议处理循环
- skills/sales_methodology.md —— 销售方法论与伦理边界
智能体运行前,它需要的技能会被直接拼进提示词。改一个文件,下一次心跳的行为就变了——不用重启、不用改代码。子智能体的系统提示词同样是 prompts/ 里可编辑的 Markdown,而"哪个智能体加载哪些技能"由 harvey/brain.py 里的一张映射表决定,编辑映射即可调整。
行为配置则是两个纯文本文件:harvey.yaml(Harvey 是谁、卖给谁、渠道与用量上限)和.env(凭据)。仪表盘本身也是harvey/web/里无构建步骤的 HTML/CSS/JS,改app.css刷新即可。
💡 借鉴点:把"知识 / 提示词 / 行为参数"从代码中抽离成用户能读懂、能改的纯文本,非开发者也能重塑 Agent 的行为。
如何上手 Harvey
想亲手验证这 6 条原则,按下面几步即可(仓库为只读,仅供学习参考):
git clone https://gitcode.com/gh_mirrors/harvey2/harvey cd harvey python3.13 -m venv .venv && source .venv/bin/activate && pip install -e . harvey train https://your-company.com # 让它学会你的产品 harvey signals --confirm free # 确认要收集的信号 harvey discover # 免费源找企业 harvey run # 启动心跳循环 harvey dashboard # 打开 localhost:5555Microsoft 365 邮箱用户的配置细节见 docs/microsoft365.md。
写在最后:把"自主"拆成可验证的护栏
Harvey 的价值不在于"它会自己卖东西",而在于它把自主拆解成了一组可验证、可解释、可随时拉闸的机制:人在回路(原则二、一)、成本可预测(原则三)、失败可见(原则四)、数据可积累(原则五)、行为可调整(原则六)。
如果你正在做自己的 AI Agent 项目,不妨用这 6 条当一份自检清单:你的 Agent 自主时,有没有护栏?它的目标由谁定义?哪些步骤其实不必用模型?失败会不会被静默吞掉?它学到的东西能不能沉淀下来?用户改它的行为,要改多少代码?答得上来,你的"自主"才接近"自主但不失控"。
(本文基于 Harvey 开源项目的 README、harvey/源码与skills/、prompts/整理,供学习交流。)
【免费下载链接】harvey
Autonomous AI sales agent powered by Claude Code or Codex. Finds prospects, writes cold emails, sends campaigns, handles replies, books meetings. No API keys needed — runs on your Claude or Codex subscriptions.
相关推荐
Fedora-Hyprland快速入门:如何在Fedora上轻松安装Hyprland
Fedora Hyprland快速入门:如何在Fedora上轻松安装Hyprland Fedora Hyprland是一款专为Fedora系统设计的自动化安装脚
为什么InferenceX的测试哲学值得所有AI基准项目借鉴:AGENTS.md行为测试清单完整解读
为什么InferenceX的测试哲学值得所有AI基准项目借鉴:AGENTS.md行为测试清单完整解读 InferenceX 是一个持续在 GPU 集群上基准测试
人工智能大模型模型评测性能测试如何优雅抢 B站会员购门票?biliTickerBuy 三步跑起来
如何优雅抢 B站会员购门票?biliTickerBuy 三步跑起来 biliTickerBuy 是一款开源免费的 B站会员购票辅助工具,专门解决漫展、热门演出开
CLI桌面应用RPA
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考