OpenOutreach

自托管的 B2B 潜客发现与邮件触达智能体。

Star 数
★ 3.3k
最近更新
4 天前
License
GPL-3.0
主语言
Python

30 秒速览

运行形态
命令行工具自托管服务Agent 插件 / 技能
可在哪里用
通用 · 跨平台OpenAI API · Claude API
费用
软件免费,模型调用费用自付
上手难度
低 · 几分钟可跑通
开始前需要
Docker,或 Git 和 Python 3.12+OpenAI、Anthropic 或 OpenAI 兼容 LLM API 密钥BetterContact API 密钥由操作员拥有的 SMTP/IMAP 邮箱Shell / 命令行网络访问本地文件系统
典型场景
没有现成联系人名单的 B2B 创始人,可用产品描述和目标职位启动潜客发现及首轮邮件触达。
不适合
  • 希望工具自己发邮件、管理回复与退订的团队:本项目只导出 CSV,不发送邮件
  • 不愿注册第三方数据商账号的用户:BetterContact 密钥是必需项,不是可选项

这个 Agent 能做什么,适合哪些场景?

OpenOutreach 是一套自托管、邮件优先的 B2B 销售自动化系统:用户描述产品和目标市场后,它会发现、筛选并联系潜在客户。系统以 Django 应用和循环运行的守护进程为核心,使用 SQLite 保存 Lead、Deal、会话及流水线状态,并通过 Django Admin 提供本地 CRM 界面。潜客数据来自 BetterContact Lead Finder;FastEmbed、Gaussian Process Regressor 与 LLM 共同决定下一位评估对象,并控制何时购买工作邮箱查询。入选潜客会通过用户自有邮箱的 SMTP 收到个性化首封邮件,系统再通过 IMAP 读取回复并生成多轮跟进。它可以用预构建 Docker 镜像部署,也可以在 Python 3.12+ 环境中从源码运行;运行边界在用户自己的主机和数据目录,但发现、邮箱解析、模型调用及邮件收发均依赖外部网络服务。

系统先读取产品描述和 Campaign 目标,由 LLM 生成 ICP 过滤条件及初始搜索关键词,再调用 BetterContact Lead Finder 分页获取授权的企业与人员画像。画像会被 FastEmbed 转换为 384 维向量;Gaussian Process Regressor 根据预测资格概率或 BALD 分数选择候选人,所有资格判断仍由 LLM 完成,并回写模型形成探索/利用循环。守护进程按固定优先级处理工作:轮询邮箱查询任务、回答新回复、发送首封邮件、对候选池排序、购买工作邮箱地址、补充并筛选潜客。置信度门控将合适的 Deal 从 QUALIFIED 推进到 READY_TO_FIND_EMAIL,BetterContact 命中后进入 READY_TO_EMAIL;SMTP 发送个性化开场邮件,IMAP 获取回复,触达智能体随后回复、结束交易或处理退订。流水线状态和对话保存在本地 SQLite 数据库中,可在 Django Admin 查看;冷邮件限定为用户时区周一至周五 08:00–20:00 发送,并受每邮箱每日上限约束。

  1. 没有现成联系人名单的 B2B 创始人,可用产品描述和目标职位启动潜客发现及首轮邮件触达。
  2. 希望避免浏览器自动化、社交网络账号和抓取流程的销售团队,可改用授权画像数据和自有 SMTP 邮箱。
  3. 需要在自己的基础设施上保留 Lead、Deal 和完整会话记录的团队,可通过 Django Admin 管理本地 CRM。
  4. 控制邮箱解析费用的外联团队,可让评分与置信度门控优先为高匹配候选人购买工作邮箱。
  5. 管理多个客户触达项目的代理机构,可为不同 Campaign 配置产品、目标市场、发送容量和模型设置。

如何安装或部署这个 Agent?

推荐使用 Docker。准备 LLM API 密钥、BetterContact API 密钥,以及支持 SMTP/IMAP 的自有邮箱和应用密码,然后运行:

docker run --pull always -it -v ~/.openoutreach/data:/app/data ghcr.io/eracle/openoutreach:latest

首次启动的交互式向导会依次收集产品与目标、验证 LLM 密钥、检查 SMTP 身份验证、配置 BetterContact、邮箱地址、国家及法律/订阅选项;数据保存到 ~/.openoutreach/data。源码开发方式要求 Git 和 Python 3.12+:

git clone https://github.com/eracle/OpenOutreach.git
cd OpenOutreach
make setup
make run

如何使用这个 Agent?

首次运行时输入产品说明和 Campaign 目标,例如面向 B 轮初创公司的工程副总裁推广 SaaS 分析平台;随后配置 OpenAI、Anthropic 或 OpenAI 兼容端点、BetterContact 密钥,以及自有邮箱的 SMTP/IMAP 凭据。完成向导后持续运行守护进程,它会自动发现画像、资格判定、按发送容量解析邮箱、发送首封邮件并处理回复。需要查看数据时,在源码目录运行 python manage.py createsuperuser 创建管理员,再运行 make admin,并访问 http://localhost:8000/admin/。可在 Django Admin 的 SiteConfig 和 Campaign 中调整行为;守护进程可停止和重启,流水线会从本地状态继续。

这个 Agent 有哪些优点和局限?

优点
  • 不要求预先准备联系人列表;系统能从产品与目标市场描述生成 ICP,并从授权数据源发现候选人。
  • 不使用浏览器、社交网络账号或抓取,因此没有这类平台账号被封的操作面。
  • 付费邮箱解析受模型置信度和每日发送容量控制,未进入发送能力范围的候选人不会提前消耗查询。
  • Lead、Deal、流水线状态和会话保存在本地,并可通过 Django Admin 浏览。
  • LLM 层支持 OpenAI、Anthropic 和 OpenAI 兼容端点,模型供应商选择相对灵活。
局限
  • 发现与邮箱解析都依赖 BetterContact;更换这一数据供应商没有已记录的即插即用路径。
  • 必须提供并维护可用的 SMTP/IMAP 邮箱、LLM API 密钥和 BetterContact 密钥,外部调用及邮箱解析可能产生费用。
  • 项目明确表示其 Gaussian Process 学习循环仍是实验,尚未证明优于随机挑选候选人。
  • 免费模式会从用户邮箱轮换发送宣传 OpenOutreach 的邮件,收件人可能与用户自己的潜客无关;只能通过编辑 GPLv3 源码关闭。
  • 所有外联及项目宣传邮件都以用户身份发送,反垃圾邮件和数据保护责任由操作者承担。
  • 仓库元数据中的许可证状态为 NOASSERTION,而 README 声称使用 GNU GPLv3;采用前应核对实际 LICENCE.md。

这个 Agent 与同类方案有什么区别?

与相关度最高的同类 agent 并排比较关键指标。

Agent 源码审查 形态 / 费用 Star 最近更新 主语言 完整支持的平台
OpenOutreach 当前 62 · 存在缺口 命令行工具免费 + 模型费 ★ 3.3k 4 天前 Python OpenAI API · Claude API
B2B SDR Agent 52 · 缺口较多 Agent 插件 / 技能免费版 + 付费版 ★ 191 19 天前 Shell OpenAI API · Claude API
ODS 私有 AI 服务器 71 · 存在缺口 命令行工具免费 ★ 7.6k 今天 Python OpenAI API · Claude API
apowerb 智能体平台 61 · 存在缺口 自托管服务免费 + 模型费 ★ 148 2 天前 Python OpenAI API · Claude API

FollowAgents 如何评估这个 Agent?

FollowAgents 源码审查 · FARS-2.1
存在缺口
62/ 100 五分制 3.1 / 5
信任安全 13/29
可靠稳定 9/14
适用触发 14/18
规范维护 11/18
有效结果 9/13
证据核验 6/8
查看各维度的扣分理由
信任安全13 / 29 · 2.2/5

README 对线索发现、付费邮箱解析、SMTP/IMAP、LLM、中央联系人存储、联盟链接以及以用户身份发送的项目推广邮件作了异常明确的披露,因此数据流透明度得满分,外部影响与来源归属也有较强依据。扣分在于首封邮件被测试明确规定为必须发送,未展示逐封确认机制;推广活动默认参与发送轮换且只能通过修改源码禁用,最小权限不足。密钥、邮箱凭据和个人数据虽声称本地持久化并由法律声明覆盖,但所给材料没有加密、访问控制、日志脱敏或保留删除机制。工作流使用按主版本标记的第三方 Actions,而运行命令拉取 latest 镜像,未提供依赖锁定或漏洞治理证据。状态机支持失败状态与恢复,但已发邮件和已消费的查询额度无法回滚。发布者身份仍未知。

可靠稳定9 / 14 · 3.2/5

README、流水线说明和代理测试在首封发送、回复动作、上下文构造及状态转换上大体一致,测试也覆盖缺失摘要和格式错误。扣分在于没有提供实现文件或更广泛测试,无法静态确认全部宣传行为;测试中的旧式个人资料 URN 与“无社交网络账户”的表述存在轻微历史痕迹。安装材料列出了 Python、Docker、LLM、BetterContact、SMTP/IMAP 等依赖并提供容器流程,但外部服务可用性、重试和降级策略证据有限。错误状态和 ValueError 信息可见,但缺少面向运营者的完整故障诊断与恢复说明。

适用触发14 / 18 · 3.9/5

目标用户、B2B 场景、所需输入、发送时间和典型活动示例非常清楚,故受众与场景得满分。系统支持自带模型、兼容端点、任意自有 SMTP 邮箱及 Django Admin 配置,但发现与邮箱解析绑定 BetterContact,核心渠道固定为邮件。触发顺序、工作日发送窗口、回复驱动后续及消费门控均有说明,不过首封自动发送且未展示预览、审批或细粒度触发策略。Docker 与本地 Python 路径适配普通自托管环境,但只展示 SQLite/单守护进程形态,部署扩展性和跨环境细节不足。

规范维护11 / 18 · 3.1/5

README 的结构、项目树、管线顺序和文档索引清晰完整,Docker 与本地安装说明具体,因此信息架构和安装说明得满分。命名和状态枚举较稳定,且提供多个示例及测试说明入口,但没有真正的 FAQ 内容。已明确学习循环尚未证明优于随机、法律责任和服务依赖等限制,不过对投递率、模型错误和规模边界讨论不足。README 声称 GPLv3 并指向 LICENCE.md,但元数据为 NOASSERTION,且许可证正文未提供,故不能确认。工作流支持 v* 标签和语义化镜像标签,但没有变更日志或发布政策。维护渠道、赞助和支持入口可见,却没有明确维护者身份、响应承诺或安全更新责任。

有效结果9 / 13 · 3.5/5

产品输出能够进入内置 CRM,以明确状态跟踪线索、交易与会话;代理提示测试还验证主题、消息和回复动作,说明结果具有普通业务可用性。扣分在于没有给出输出样例质量标准、人工审阅流程或可导出格式。自动发现、资格筛选、邮箱解析和多轮回复相对于手工外联具有明确增量价值,但效果未由结果证据支持。成本门控、每日发送容量和按成功解析计费的设计较具体,同时作者明确承认学习层尚未证明优于随机;LLM、数据供应商、邮箱基础设施和项目推广占用发送量的综合成本仍未量化。

证据核验6 / 8 · 3.8/5

README 将主要功能映射到具体状态、步骤、服务和项目目录,测试又佐证提示上下文、动作集合、首封约束和消息窗口,因此具备较好的声明可追踪性与跨来源印证。扣分在于许多安全、法律、成本和数据处理声明仅由 README 陈述,引用的法律、架构和配置文件未包含在材料中,无法交叉核验。事实与推断区分表现突出:材料明确把学习循环称为实验,说明未证明优于随机且不作相关效果主张,因此该项得满分。

风险与缓解建议
  • 源码中未见:执行前用户确认开启或自行加上执行前确认;先在沙箱或测试环境跑通,确认行为后再接入真实数据。
  • 该工具会从用户邮箱自动发送冷邮件;所给测试显示首封邮件必须发送,未见逐封预览或确认。
  • 随附的推广活动会以用户身份向与用户线索无关的收件人发送 OpenOutreach 广告,并占用发送轮换;默认安装只能通过修改源码禁用。
  • 用户承担反垃圾邮件和数据保护责任。静态材料未证明同意管理、法域合规、删除请求或数据保留控制。
  • 运行需要提供 LLM、BetterContact 和邮箱凭据,但未展示静态加密、密钥隔离、日志脱敏或泄露响应机制。
  • 推荐命令始终拉取 latest 容器镜像;在生产使用前应固定到经过审查的不可变摘要,并独立检查依赖与镜像内容。
  • BetterContact 查询、LLM 调用、邮箱服务和推广流量均可能产生费用或声誉影响;材料没有量化总成本或投递风险。
证据充分度:低 评估于 2026年8月16日 审查版本 26e6b45cfdcb 评估后仓库已有新提交,评分可能未覆盖最新改动
查看完整评分方法 →

常见问题

使用时必须购买哪些服务?
必须具备 BetterContact API 密钥,它同时支持 Lead Finder 发现和工作邮箱解析;还需要一个 LLM API 以及用户自有的 SMTP/IMAP 邮箱。来源没有给出这些服务的具体价格。
它会抓取社交网络或操作浏览器吗?
不会。项目描述的运行方式是无浏览器、无 VNC、不使用社交网络账号且不抓取;候选画像来自 BetterContact 的授权数据源。
邮件地址查找失败会怎样?
Deal 会进入 NO_EMAIL_BETTERCONTACT,并留下空结果;ML 标签流程会跳过该记录,因为找不到邮箱不被视为适配度信号。
它会自动追发无人回复的邮件吗?
文档描述的行为不是主动追赶未回复者;Deal 在发送首封邮件后停在 EMAILED,只有收到对方回复时,智能体才读取线程并生成后续回复。
免费模式会用我的邮箱发送项目广告吗?
会。该模式包含一项宣传 OpenOutreach 的轮换 Campaign,会以用户身份向与用户潜客无关的收件人发送邮件。自托管用户可编辑源码将其关闭,并应先阅读 Legal Notice 中的责任说明。
在 GitHub 查看 ↗ 安装 ↓

相关 Agents