外贸人最头疼的永远不是「谈单」而是「找人」翻 Google、扒 B2B 平台、抄官网联系方式一天凑不出几条像样的线索好不容易挖到邮箱西语、葡语、英语的开发信又得各写一套发了邮件没人盯回信线索在最佳跟进窗口里悄悄凉掉。本文介绍一个我构建的项目Findyn它把「找客户 → 写开发信 → 自动发送 → 盯回信」做成一条 7×24 自动运转的流水线。后端基于FastAPI LangGraph搭建多 Agent 状态机模型统一走LiteLLM可热插拔任务系统用PostgreSQL 两层持久化队列保证进程重启不丢数据。下面从架构、核心设计到部署完整拆解它的实现思路希望对做 AI Agent / 自动化系统的同学有参考价值。一、系统整体架构Findyn 由三部分构成FrontendReact Vite包括「任务看板 / 队列任务 / 挖掘结果 / 邮件营销 / 新建任务 / 系统设置」六大模块BackendFastAPI 提供 REST SSE 接口核心是一张 LangGraph 状态图基础设施PostgreSQL任务、邮件、LangGraph checkpointer 共用、可选 Langfuse成本/Token 观测。用一张图看数据流React Frontend任务创建/列表/详情/SSEFastAPI APILangGraph PipelineInsightAgentKeywordGenAgentSearchAgentLeadExtractAgentEvaluateLiteLLMOpenAI/Anthropic/DeepSeekMiniMax/NVIDIA NIM/...Tavily/SerperJina ReaderPostgreSQLSSE Stream二、核心设计 1LangGraph 多 Agent 流水线挖掘主链路是一条StateGraph五个 Agent 串成闭环继续结束输入官网/文档/关键词InsightAgent理解公司与产品KeywordGenAgent生成搜索词SearchAgent聚合搜索LeadExtractAgent抽取结构化线索Evaluate是否继续EmailCraft生成邮件序列InsightAgent读懂你的公司、产品、卖点KeywordGenAgent反推目标客户画像并生成搜索词SearchAgent聚合 Google / Google Maps / B2B 平台站内搜索LeadExtractAgent针对不同页面官网、列表页、内容页自适应抓取抽取邮箱/电话/WhatsApp/LinkedIn 等结构化信息Evaluate判断「要不要继续挖」。lead_extract阶段会先按官网域名去重再深度抓取避免同一家公司被多个 URL 重复送进 LLM 浪费成本——这是工程上很关键的一步。三、核心设计 2双模型协作 LiteLLM 可替换LLM 调用分两类职责走不同模型、不同限速推理模型ReAct 决策负责「要不要继续挖」「这页该怎么抓」这类需要思考的决策普通模型抽取 / 生成 / 改写负责结构化抽取和开发信生成。两者通过LiteLLM统一接入意味着你可以随时换模型。支持的 provider 包括 OpenAI、Anthropic、OpenRouter、Groq、GLM、Moonshot、MiniMax、DeepSeek、NVIDIA NIM 等。四、核心设计 3两层 PostgreSQL 持久化队列这是整个系统「能长期跑」的底层保障。Findyn 不是 Redis/MQ而是直接用 PostgreSQL 做持久化队列。第一层队列jobs待执行挖掘任务调度器把任务写入jobs队列自动化执行者领取 job在进程内创建真实任务执行直到结束。第二层队列email_messages待发送邮件创建活动时把可发送序列写入email_messagesEmail规划器 每 60 秒轮询满足发送条件的序列限频发送后台循环扫描 IMAP 回信命中即停该序列的后续跟进。五、两个差异化亮点1. WhatsApp 一级联系方式 直链系统专门强化 WhatsApp 识别系统能识别行内标注、wa.me 短链、标准链接等多种形态归一化为带国家码的纯数字系统可以判定主联系方式当买家把 WhatsApp 作为首选时给出https://wa.me/digits一键直链引导到 WhatsApp 继续沟通。2. 按市场自动切换西 / 英 / 葡语邮件语言是在线索抽取阶段确定性预计算首选语言邮件生成阶段直接采用无需额外 LLM 开销西语市场西班牙、墨西哥、秘鲁、智利…→es葡语市场巴西、葡萄牙…→pt默认 →en系统支持导出「外贸友好 CSV」带有 WhatsApp 直链、LinkedIn 找人直链、优先级、匹配分等列可批量触达。六、Docker 一键部署生产环境支持 Docker Compose部署# 1. 准备后端配置编辑 .env填写模型 / 搜索 / 邮件配置# 2. 构建并启动dockercompose up-d启动后前端http://IP:3000后端 APIhttp://localhost:8000/docs看 Swagger三个持久化卷保证容器重建后配置、任务数据、授权状态都不丢卷容器内路径内容findyn-db/var/lib/postgresql/dataPostgreSQL 数据findyn-data/data.env、uploads 等findyn-license/root/.findyn硬件指纹 授权证书七、总结Findyn 的核心工程取舍可以归纳为三点也是做 AI Agent 自动化系统时的通用经验用状态图 多 Agent 把「复杂流程」结构化LangGraph 让洞察、搜索、抽取、评估各司其职闭环可控模型与业务逻辑解耦通过 LiteLLM 把模型变成可配置项推理/生成/邮件走不同模型与限速互不打架用持久化队列保证「能长期跑」两层 PostgreSQL 队列让 7×24 自动化真正可靠进程重启不丢任务——这比堆更多 Agent 更重要。如果你在做外贸业务、B2B 线索挖掘欢迎了解这个项目。把「找客户」交给 AI把「成交」留给你。