Reddit Small Business Researcher 实战解析:基于 n8n 与 Reddit 的创业想法验证智能体(oTTomator Live Agent Studio 系列)
【免费下载链接】ottomator-agentsAll the open source AI Agents hosted on the oTTomator Live Agent Studio platform!项目地址: https://gitcode.com/GitHub_Trending/ot/ottomator-agents
本篇技术指南围绕 oTTomator Live Agent Studio 系列中的 n8n 智能体Reddit Small Business Researcher展开,核心讲解它如何通过检索 r/smallbusiness 的真实讨论来验证创业想法,并从 工作流定义文件 逐节点还原其执行链路。读完本文,你将掌握该智能体的完整工作流结构、帖子质量过滤规则、AI 分类与内容生成机制、Webhook 调用契约及凭据配置方式,并可在自己的 n8n 实例或 Live Agent Studio 上复现同类"社交媒体数据 + LLM 分析"的创业调研方案。
一、这个智能体解决什么问题
创业想法在落地前最缺的是"真实反馈"。与其依赖广告包装过的成功学内容,不如直接倾听一线小企业主在 Reddit r/smallbusiness 版块里分享的经验、踩过的坑和真实需求。Reddit Small Business Researcher正是基于这一思路设计:它把"商业想法 → 相关讨论检索 → 高质量帖子筛选 → AI 语义分析与摘要 → 输出洞察报告"这一整套流程封装为一条可复用的 n8n 工作流,帮助创业者快速判断一个概念是否值得投入。
从该智能体的 README 定义看,它的核心价值在于:
- 以真实的 Reddit 讨论为数据源,而非模型凭空臆造;
- 通过多重过滤保证分析的帖子质量(点赞数、内容长度、时效性);
- 借助 LLM 提炼可执行的洞察与潜在挑战;
- 结论建立在真实经营者的分享之上,兼具正向与负向视角。
在 Live Agent Studio 平台中,该智能体以 Webhook 形式对外暴露,任何前端或脚本都可以向其提交一个创业想法并取回分析结果。
二、核心能力一览
按 README 的 Features 清单,该智能体具备以下能力,每一项都能在工作流 JSON 中找到对应的实现节点:
- 检索 r/smallbusiness 的相关讨论—— 由
Reddit节点(n8n-nodes-base.reddit)执行search操作,以用户输入的商业想法为关键词搜索指定 subreddit; - 过滤高质量帖子,依据三个维度:
- 点赞数不低于 2(
ups >= 2); - 帖子正文非空(
selftext不为空,即排除只有标题的"空壳"帖子); - 帖子足够新(创建时间在最近 180 天以内,聚焦近半年的行业动态);
- 点赞数不低于 2(
- 使用 AI 分析与摘要—— 工作流先后用 LLM 完成"帖子是否在描述商业问题"的二分类判断、单帖摘要(Summarization Chain)与业务创意生成(OpenAI 节点);
- 提供可执行的洞察与潜在挑战—— 最终生成的报告涵盖市场需求、启动成本、常见挑战、成功要素与收入潜力等维度。
三、工作流总体架构与执行链路
打开 Reddit_Small_Business_Researcher.json 可以看到,工作流共包含 17 个节点,执行顺序为executionOrder: v1(线性执行模型)。按功能可将节点划分为七层:
| 分层 | 节点 | 类型 | 职责 |
|---|---|---|---|
| 入口 | Webhook | n8n-nodes-base.webhook | 接收 POST 请求并做 Header 认证 |
| 入参预处理 | Edit Fields | n8n-nodes-base.set(v3.4) | 从请求体提取query/user_id/request_id/session_id |
| 会话落库 | Supabase2 | n8n-nodes-base.supabase | 将用户提问以human消息写入messages表 |
| 数据获取 | n8n-nodes-base.reddit | 搜索 subreddit,取 10 条热门结果 | |
| 质量过滤 | IF → Limit → Set | if/limit/set | 三重条件过滤 → 收敛单条 → 字段规整 |
| 语义筛选 | AI Agent + OpenAI Chat Model → Merge → Filter | langchain 系列 | LLM 判断帖子是否描述商业问题,仅放行Yes |
| 内容生成 | OpenAI + Summarization Chain + OpenAI Chat Model2 → Merge1 | langchain 系列 | 生成业务创意 + 帖子摘要,合并结果 |
| 结果落库与响应 | Supabase → Respond to Webhook | supabase/respondToWebhook | AI 消息写库,向调用方返回{"success": true} |
下面按数据流方向逐层拆解。
3.1 入口层:Webhook 与入参预处理
工作流以Webhook节点为唯一入口,见 工作流 JSON 的 Webhook 节点:
- HTTP 方法:
POST; - 路径:
invoke-business-idea-researcher; - 认证方式:
headerAuth(HTTP Header 认证),对应凭据绑定为 "Header Auth account"; - 响应模式:
responseNode,即最终响应由工作流末端的 "Respond to Webhook" 节点决定。
请求体进入Edit Fields节点后被拆解为四个字段(对应节点):
| 字段 | 取值表达式 | 说明 |
|---|---|---|
query | ={{ $json.body.query }} | 用户的商业想法描述,后续作为 Reddit 搜索关键词 |
user_id | ={{ $json.body.user_id }} | 调用者标识 |
request_id | ={{ $json.body.request_id }} | 请求追踪 ID |
session_id | ={{ $json.body.session_id }} | 会话 ID,用于消息归档与多轮上下文关联 |
这四个字段的设计与仓库中 ~sample-n8n-agent~ 的 README 描述的 Live Agent Studio 标准请求契约完全一致,说明这是一个按平台规范构建的智能体。
3.2 会话记录:Supabase messages 表
预处理完成后,Supabase2节点立即将用户提问写入messages表(对应节点):
session_id:取自请求体;message:一个 JSON 结构,type固定为"human",content为用户的query,并附带空的additional_kwargs与response_metadata。
这种"先落用户消息、再落 AI 消息"的双写模式与 ~sample-n8n-agent~ 的消息存储方案 一致——对话历史持久化在数据库中,便于 Live Agent Studio 前端按会话读取并渲染多轮对话。
3.3 数据获取:Reddit 搜索节点
Reddit节点(对应节点)负责向 Reddit API 发起搜索,关键参数如下:
operation:search,搜索模式;subreddit:smallbusiness,固定锁定小企业主社区;keyword:={{ $('Edit Fields').first().json.query }},即用户提交的商业想法文本;limit:10,最多取回 10 条候选帖子;additionalFields.sort:hot,按热度排序,优先命中社区当前关注度高的话题。
3.4 质量过滤:IF 节点的三重条件
IF节点(对应节点)对每条候选帖子执行三个条件判断,只有同时满足才进入 true 分支:
- 点赞门槛:
number条件,ups >= 2,过滤掉几乎没有社区认可的帖子; - 内容门槛:
string条件,selftext isNotEmpty,排除没有正文的纯标题帖; - 时效门槛:
dateTime条件,DateTime.fromSeconds($json.created).toISO()不小于$today.minus({days: 180}).toISO(),即仅保留最近 180 天(约 6 个月)内发布的帖子。
随后Limit节点将通过过滤的结果收敛为单条(节点未携带显式参数,按 n8n 默认行为仅放行第 1 条记录),保证后续 LLM 调用聚焦在最相关的一篇帖子上,控制成本并提升输出质量。
3.5 字段规整:Set 节点
Set节点以keepOnlySet: true模式工作(对应节点),只保留后续分析真正需要的六个字段,并对原始 Reddit 字段做了重命名与格式化:
| 新字段名 | 取值表达式 | 来源说明 |
|---|---|---|
upvotes | ={{ $json.ups }} | 帖子点赞数 |
subredditSize | ={{ $json.subreddit_subscribers }} | subreddit 订阅人数,反映社区规模 |
originalPost | ={{ $json.selftext }} | 帖子正文,LLM 分析的主语料 |
subreddit | ={{ $json.subreddit }} | 来源版块 |
date | ={{ DateTime.fromSeconds($json.created).toLocaleString() }} | 发布时间,格式化为可读字符串 |
url | ={{ $json.url }} | 帖子原始链接 |
3.6 语义筛选:AI Agent 二分类与 Filter 节点
原始 Reddit 数据经过Set后分两路并行:一路直接送入Merge节点(作为未配对数据兜底),另一路进入AI Agent节点做语义判断。
AI Agent节点(对应节点)使用conversationalAgent类型,其系统提示词要求模型判断:"这篇 Reddit 帖子是否在描述一个与业务相关的问题,或对某个解决方案的需求?帖子应提到企业正试图解决的具体挑战或需求",并要求仅输出Yes或No。该 Agent 的语言模型由OpenAI Chat Model节点(类型@n8n/n8n-nodes-langchain.lmChatOpenAi)提供。
随后Merge节点(对应节点)以combine+mergeByPosition模式合并两条输入,并开启includeUnpaired: true,随后Filter节点(对应节点)以严格匹配判断$json.output是否以"Yes"开头,只放行被识别为真实商业问题的帖子进入生成阶段。这一步本质上是"规则过滤 + 语义过滤"的双重把关,确保后续生成的洞察是针对真问题的回答。
3.7 内容生成:业务创意与帖子摘要双路并行
通过语义筛选的帖子被广播到两个并行处理链:
路径 A —— OpenAI 业务创意生成(对应节点):调用OpenAI节点,模型 ID 配置为gpt-4o-mini。提示词要求:基于 Reddit 帖子描述的问题,提出一个可以同时服务该企业与同类需求企业的业务创意或服务,且方案必须与用户输入的query主题相关。这保证了生成结果既不脱离帖子中的真实痛点,又紧扣用户想探索的创业方向。
路径 B —— Summarization Chain 帖子摘要(对应节点):调用Summarization Chain节点(chainSummarization)对帖子正文做要点摘要,其语言模型由OpenAI Chat Model2提供。
两条路径的输出连同原始过滤结果一起汇入Merge1节点(对应节点),以combineByPosition模式按位置合并 3 路输入(摘要 / 创意 / 原始帖子数据),得到"摘要 + 创意 + 上下文"的完整分析结果。
3.8 结果落库与 Webhook 响应
合并后的结果进入Supabase节点(对应节点),再次写入messages表,但此时type为"ai",content为拼接文本:
Summary of post for inspiration: ${$json.response.text} ${$json.message.content}即前半段是 Summarization Chain 的帖子摘要,后半段是 OpenAI 生成的业务创意,二者合并为一条 AI 消息,与先前写入的human消息共用同一session_id,形成完整的多轮对话记录。
最后Respond to Webhook节点(对应节点)以 JSON 格式返回{"success": true},通知调用方本次执行已成功完成;完整分析报告则由 Live Agent Studio 前端从 Supabase 按会话读取展示。这种"webhook 秒回状态、消息库承载正文"的模式正是该平台智能体的通用响应架构。
四、请求契约与响应说明
调用该智能体时,向工作流 Webhook 地址发送 POST 请求即可。请求体结构(来自 README 与 Edit Fields 节点配置):
{ "query": "你的商业想法描述,例如 I want to start a mobile car detailing business", "user_id": "用户唯一标识", "request_id": "请求追踪 ID", "session_id": "会话标识" }- 认证:请求需携带有效的 Header 认证凭据(对应工作流中的
headerAuth); - 响应:
Respond to Webhook节点固定返回{"success": true}; - 完整结果:AI 分析报告写入 Supabase
messages表(type: "ai"),供前端会话读取。
五、示例用法
输入
README 示例 给出了一个典型请求体:
{ "query": "I want to start a mobile car detailing business" }示例响应
对应当前主题,智能体生成的分析报告大致如下(README 原始示例):
Based on analysis of recent r/smallbusiness discussions: Key Insights: 1. Market Demand - High demand in suburban areas - Popular with busy professionals - Seasonal fluctuations reported 2. Startup Costs - Initial equipment: $2,000-5,000 - Vehicle requirements - Insurance considerations 3. Common Challenges - Weather dependencies - Client scheduling - Water source access - Competition from established services 4. Success Factors - Quality equipment investment - Professional image - Reliable booking system - Clear service packages 5. Revenue Potential - Average job: $150-300 - Monthly potential: $5,000-10,000 - Repeat customer opportunities Recommendations: - Start with basic services, expand based on demand - Invest in good scheduling software - Consider offering packages for regular clients - Build relationships with local businesses - Focus on photo documentation for marketing Recent Success Story: "Started 8 months ago, now fully booked with 70% repeat customers. Key was focusing on quality over speed and building a strong Instagram presence."可以看到,报告覆盖市场需求、启动成本、常见挑战、成功要素、收入潜力五大维度,并给出可操作建议与真实从业者的成功案例,这正是"基于真实讨论 + LLM 提炼"的输出风格。
六、使用注意要点
README 的 Usage Notes 明确了以下使用边界:
- 提供具体的商业想法可获得更好的结果——关键词越具体,Reddit 搜索命中越精准,生成的创意相关性也越高;
- 智能体聚焦最近 6 个月(180 天)的讨论,超出时效的旧帖会被
IF节点自动过滤; - 结果基于 Reddit 上分享的真实经历,数据来源可追溯(
Set节点保留了帖子 URL 字段); - 分析同时包含正向与负向洞察——因为工作流刻意保留了"挑战、失败经验"类帖子,而非只筛选成功故事;
- 建议由真实经营者的数据驱动,每条建议都对应社区中的实际讨论,而非模型泛泛而谈。
七、凭据与配置要求
从 README 与工作流 JSON 中的凭据绑定来看,完整运行该智能体需要以下凭据:
| 凭据 | 类型 | 用途 | 在 JSON 中的绑定 |
|---|---|---|---|
| Reddit API 凭据 | OAuth2(redditOAuth2Api) | 访问并搜索 r/smallbusiness | "Reddit account" |
| OpenAI API Key | openAiApi | 内容分析、摘要与创意生成 | "OpenAi account"(AI Agent、OpenAI、Chat Model 节点共用) |
| Supabase API | supabaseApi | messages 表读写、会话消息持久化 | "Prod Supabase account" |
| Header Auth | httpHeaderAuth | Webhook 调用认证 | "Header Auth account" |
其中 OpenAI 业务创意节点显式配置的模型为gpt-4o-mini(见 OpenAI 节点 modelId 配置),在成本与效果之间取得了平衡。需要说明的是,JSON 中绑定的凭据名称均为作者实例环境的引用,导入到自己环境时需要重新创建并映射同名凭据。另外,messages表需预先建好session_id与message两列(message列承载 JSON 结构),可参照 Live Agent Studio 的标准消息表设计,或参考仓库中其他 n8n 智能体的建表脚本。
八、如何部署与运行
该智能体以标准 n8n 工作流文件形式发布在仓库中,部署步骤如下:
- 获取工作流文件 Reddit_Small_Business_Researcher.json;
- 在 n8n 中新建工作流并通过"Import from File"导入该 JSON;
- 按 第七章 的清单创建并绑定四类凭据(Reddit OAuth2、OpenAI、Supabase、Header Auth);
- 确保 Supabase 中存在
messages表,且表结构包含session_id与message字段; - 激活 Webhook 节点(工作流默认
active: true),获得可调用的POST /webhook/invoke-business-idea-researcher端点; - 按 第四章 的请求体格式发起调用验证。
如需将智能体发布到 Live Agent Studio 平台,可参考仓库根 README 中的开发者指引,并对照 ~sample-n8n-agent~ 的示例实现 理解平台对请求字段、消息存储与响应格式的约定。
九、局限性与适用场景
结合工作流实现,该智能体存在以下明确的适用边界:
- 数据源单一:仅检索
smallbusiness一个 subreddit,行业覆盖取决于该社区讨论的丰富度; - 单帖深度分析:
Limit节点将候选收敛为单条,每轮执行只对最相关的一篇帖子做深度分析,可能忽略次优帖子中的信息; - 时效窗口固定:180 天过滤窗口写死在
IF节点中,需要调整时须修改节点参数; - 依赖真实讨论热度:
sort: hot+ups >= 2的组合意味着冷门但高质量的长尾帖可能被过滤; - 输出形态:Webhook 仅返回成功状态,完整报告需通过会话记录(Supabase)读取,调用方需适配这一异步取数模式。
从适用场景看,它最适合用于创业想法的前期快速验证——在投入资金前,用社区真实反馈回答"这个方向有没有人需要、大家普遍遇到什么问题、启动门槛大概多高"。其"Reddit 检索 + 规则过滤 + LLM 语义筛选 + 双路内容生成"的流水线设计,也可作为构建其他"社交媒体舆情调研型"n8n 智能体的参考蓝本:将 subreddit、过滤阈值、提示词与输出格式替换为你的领域参数,即可复用到其他社区与业务方向。
十、总结
Reddit Small Business Researcher 是 oTTomator Live Agent Studio 系列中一个短小精悍但链路完整的 n8n 智能体样本:它以 README 定义了产品能力,以 Reddit_Small_Business_Researcher.json 承载了全部实现细节——从 Webhook 入参、Supabase 双写消息、Reddit 三重规则过滤,到 LLM 二分类、摘要与创意生成、结果合并落库,每一步都可审计、可修改、可复用。对于希望用真实社区数据武装创业决策的开发者,以及想学习"数据获取 + 规则过滤 + LLM 分析"标准流水线的 n8n 使用者,它都是一份值得精读的参考实现。
【免费下载链接】ottomator-agentsAll the open source AI Agents hosted on the oTTomator Live Agent Studio platform!项目地址: https://gitcode.com/GitHub_Trending/ot/ottomator-agents
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考