惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

罗磊的独立博客
Forbes - Security
Forbes - Security
Blog — PlanetScale
Blog — PlanetScale
P
Proofpoint News Feed
Apple Machine Learning Research
Apple Machine Learning Research
Google DeepMind News
Google DeepMind News
MyScale Blog
MyScale Blog
GbyAI
GbyAI
B
Blog RSS Feed
S
SegmentFault 最新的问题
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
小众软件
小众软件
The Last Watchdog
The Last Watchdog
W
WeLiveSecurity
Webroot Blog
Webroot Blog
S
Security @ Cisco Blogs
Hugging Face - Blog
Hugging Face - Blog
Microsoft Security Blog
Microsoft Security Blog
月光博客
月光博客
博客园 - 聂微东
F
Fortinet All Blogs
H
Hacker News: Front Page
A
About on SuperTechFans
Application and Cybersecurity Blog
Application and Cybersecurity Blog
C
Check Point Blog
V
V2EX
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Y
Y Combinator Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
N
News | PayPal Newsroom
Cisco Talos Blog
Cisco Talos Blog
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
The Cloudflare Blog
P
Privacy & Cybersecurity Law Blog
N
Netflix TechBlog - Medium
C
CXSECURITY Database RSS Feed - CXSecurity.com
Recorded Future
Recorded Future
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Google DeepMind News
Google DeepMind News
大猫的无限游戏
大猫的无限游戏
美团技术团队
Security Latest
Security Latest
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
I
InfoQ
Recent Announcements
Recent Announcements
The GitHub Blog
The GitHub Blog
Google Online Security Blog
Google Online Security Blog
T
The Exploit Database - CXSecurity.com

XINDOO

关于内卷,几个值得深想的洞察 当创作被 Skill 化:我用 AI 写了一部 320 章的长篇网文 AI第一剑,先斩程序员 AI 也会偷懒?这个 PUA 工具专治“摸鱼式编程” Gstack 深度解析:YC CEO 开源的 AI 工程团队 GitHub Trending霸榜!深度解析AI Coding辅助神器 Superpowers 深度探讨:从 OpenClaw 爆火,看 AI Agent 的真相与程序员的未来 我复刻了NotebookLM的信息图功能 我用AI写了部小说,这里是整个过程 [翻译]我在谷歌14年学到的21堂课 2万字吊打40万字:为什么我的“牛马Agent”比“数字分身”更聪明? 最近AI领域爆火的 Agent Skills 是什么? 从计算机科学的视角来看拖延症 一周改6个库后我悟了:AI时代,程序员正在退化成“甲方” Agent设计模式——第 20 章:优先级排序 Agent设计模式——第 1 章:提示词链 Agent设计模式——附录 D - 使用 AgentSpace 构建 Agent Agent设计模式——第 19 章:评估和监控 Agent设计模式——第 10 章:模型上下文协议 (MCP) Agent设计模式——第 21 章:探索和发现 Agent设计模式——智能体设计模式 Agent设计模式——第 11 章:目标设定和监控 Agent设计模式——第 9 章:学习和适应 Agent设计模式——第 16 章:资源感知优化 Agent设计模式——附录 G - 编码 Agent Agent设计模式——第 13 章:人机协同 Agent设计模式——第 17 章:推理技术 Agent设计模式——附录 F - 深入剖析:Agent 推理引擎的内部运作机制 Agent设计模式——章节目录 Agent设计模式—— Agent设计模式——第 7 章:多 Agent 协作 Agent设计模式——附录 E - 命令行界面中的 AI Agent Agent设计模式——附录 C - Agentic 框架快速概览 Agent设计模式——第 3 章:并行化 Agent设计模式——**常见问题解答:Agentic 设计模式** Agent设计模式——第 14 章:知识检索(RAG) Agent设计模式——第 18 章:Guardrails/安全模式 Agent设计模式——第 15 章:Agent 间通信(A2A) Agent设计模式——第 8 章:内存管理 Agent设计模式——第 12 章:异常处理和恢复 Agent设计模式——第 4 章:反思 Agent设计模式——附录 B - AI Agentic 交互:从图形界面到现实世界环境 Agent设计模式——第 5 章:工具使用(函数调用) Agent设计模式——结论 Agent设计模式——第 6 章:规划 Agent设计模式——第 2 章:路由 从经验主义到贝叶斯理论:如何排查线上问题 我用AI为自己造了一把安全的开发者“瑞士军刀”” 从LLM和MCP的协同过程看如何做优化 打通Dify与AI工具生态:将Workflow转为MCP工具的实践 一文了解知识库背后的技术RAG AI应用的五个级别:从入门到专家的进阶之路 一文入门AI圈最近爆火的MCP协议 HTTP/3:性能改进(第 2 部分) deepseek-r1祛魅:从过度热捧到理性认知⁠ 为什么AI智能体需要工作流 如何用GPT-4o解读视频 json命令行处理神器jq介绍 OpenAI的结构化浅析 从大模型的原理到提示词优化 从经济学原理看团队分工合作 [翻译]关于人工智能的30个思考 从马斯洛需求层次理论谈职场激励 知识与智慧 如何使用大语言模型绘制专业图表 两个开源项目打造自己的大模型聚合平台 我让gpt4o给我推荐了一千多次书 得到了这些数据 用Langchain创建一个可以总结网页内容的Agent 推荐一个好用的命令行工具ShellGPT 关于ffmpeg height not divisible by 2的错误 使用Certbot解决https证书自动更新的问题 Spring Cache简明教程 软件开发中的抓大放小vs极致细节思维 OpenAI Assistants-API简明教程 OpenAI的多函数调用(Multiple Function Calling)简介 如何使用ffmpeg制作透明背景的视频 spring-kafka中ContainerProperties.AckMode详解 如何在地图上寻找最密集点的位置? IO密集型服务提升性能的三种方法 职场中的基本归因错误和自利归因 使用javax.validation.constraints校验参数合法性 Java Optional:让你的代码更优雅 ChatGPT函数调用初体验:让ChatGPT具备抓取网页文本的能力 如何使用ChatGPT提升自己的“码”力? 使用ffmpeg拼接两张图片 ThreadPoolExecutor——高效处理并发任务的必备良器 从CPU的视角看 多线程代码为什么那么难写! 使用ffmpeg缩小视频体积的几种方式 Linux parallel 命令使用手册 为什么说过早优化是万恶之源? Linux xargs命令介绍 深入理解Spring的事件通知机制 Java高并发之CyclicBarrier简介 聊一聊过度设计! 详解Redisson分布式限流的实现原理 Java中使用HashMap时指定初始化容量性能一定会更好吗? 如何用ffmpeg截取视频片段&截取时间不准确的坑 XINDOO的2022年年终总结 使用ffmpeg将视频转成HLS(m3u8)格式 谷歌Guava LoadingCache介绍
使用n8n做一个自动同步更新的Github项目问答机器人
xindoo · 2025-10-26 · via XINDOO

  我在前一段时间翻译开源了Google的新书《Agentic Design Patterns》,这是一本系统性介绍AI Agent构建模式的书籍,非常推荐大家阅读下,我在github中也提供了英文原版和中文版的精排版电子书,可以直接下载,具体可以看我github项目地址https://github.com/xindoo/agentic-design-patterns

  最近,我用 n8n 为这本书开发了一个问答机器人。机器人内置了全书内容,掌握每个细节,可以作为你的阅读助手。无论你想深入了解某个设计模式,还是对书中概念有疑问,它都能提供详细解答和指导。 另外我又通过 n8n 的 GitHub 节点,让机器人与代码库保持实时同步。后续的翻译更新会自动同步到机器人,无需手动维护。

  我已将这个机器人集成到翻译项目的中文官网https://adp.xindoo.xyz/ 中,你可以直接点击右下角唤起。欢迎大家体验,希望它能为你阅读这本书提供帮助。
image.png

接下来,我将详细介绍如何使用 n8n 搭建这样一个问答机器人,以及如何将其集成到的 GitHub 页面中。整个过程并不复杂,即使你是第一次接触 n8n 也能快速上手。

前置依赖

  • n8n 是目前国外最流行的自动化平台之一,通过直观的可视化节点编辑器,让用户可以像搭积木一样连接各种应用和服务。它支持超过 400 种集成,涵盖了从数据库、API、云服务到各类 SaaS 应用的方方面面。n8n 完全开源且可自部署,你可以将其部署在自己的服务器上,确保数据安全和隐私。它还提供强大的 JavaScript 自定义能力,让开发者可以编写自定义逻辑来处理复杂的业务场景。此外,n8n 拥有活跃的社区和丰富的模板库,用户可以直接使用或参考他人分享的工作流模板,大大降低了学习成本,让任何人都能快速构建出符合自己需求的自动化工作流。

  首先你肯定需要一个n8n实例,可以自己部署,也可以直接使用n8n的云服务。如果选择自己部署,可以使用Docker或者直接在服务器上安装。除此之外,你还需要准备好自己的AI API Key,用于调用大语言模型(也不一定用openai、国内阿里字节都可以)。另外,你可能还需要一个向量数据库,来存储书籍内容和实现语义搜索。如果你没有自己的向量数据库,也可以使用n8n内置的Pinecone或Supabase等向量数据库服务。

  整个机器人的构建分为三个关键步骤:数据写入向量数据库、问答功能实现和网页集成。下面我会详细介绍每个步骤的具体实现方法。

数据写入向量数据库

  要让机器人能够准确回答问题,首先需要将书籍内容存储到向量数据库中。整个过程主要包括以下几个步骤:

  • 获取GitHub仓库内容: 使用n8n的GitHub节点,通过API获取仓库中的文档文件。我这里设置监听项目的release事件,只要项目库又发新版本,就会自动同步最新的翻译内容。
  • 文本分块处理: 将获取到的文档内容进行分块(Chunking)处理。这一步很关键,需要将长文本切分成合适大小的片段,既要保证语义完整性,又要控制每个片段的长度。通常建议每个分块在500-1000字符之间。
  • 生成向量嵌入: 使用OpenAI的Embedding API将文本分块转换为向量表示。n8n提供了embeding节点,可以直接调用像openai的text-embedding等模型生成嵌入向量。
  • 存储到向量数据库: 将生成的向量连同原始文本一起存储到向量数据库中。n8n支持多种向量数据库,如Pinecone、Qdrant、Supabase等。存储时建议添加元数据,比如文档来源、章节信息等,便于后续检索和追溯。

  虽然步骤看起来很多,但 n8n 已经为我们封装好了向量存储(Vector Store)节点。你只需配置数据库连接、Embedding 模型和文本分块策略,n8n 就会自动完成文本向量化和存储工作,大大简化了开发流程。此外,你还可以在 Text Splitter 节点中根据需求调整分块大小和重叠度,以获得更好的检索效果。

  这里分享一个实用技巧。有经验的同学可能已经看出来了,这本质上是一个 RAG 系统。RAG 的劣势在于难以把握全局信息。为了解决这个问题,我采用了一个巧妙的方法:将项目的 README.md 文件作为独立的文档片段完整存入向量数据库,因为它包含了完整的项目介绍。同时,我在 AI 的系统提示词中也预设了一些项目全局信息。这样当用户提出"这本书主要讲什么"之类的全局性问题时,AI 就能从这个完整摘要中获取信息,给出更全面的回答。

  再回到具体实现,这里我使用了基于 Postgress 的 PGVector ,它是 PostgreSQL 的一个扩展,可以直接在关系数据库中存储和检索向量数据。相比专门的向量数据库,PGVector 的优势在于可以与现有的 PostgreSQL 数据库无缝集成,减少了系统的复杂度。配置过程也很简单,只需要在 n8n 的 Vector Store 节点中选择 PGVector,填入数据库连接信息即可。

具体流程如下图所示:

image.png

问答机器人的实现

用户提问后,机器人通过以下步骤生成回答:

  • 接收用户问题: 通过n8n的Webhook节点接收来自网页的用户提问。这个接口可以处理HTTP请求,并将问题传递给后续的处理流程。
  • 向量检索相关内容: AI会提供用户提问和系统内置提示词,生成相应的检索查询词,然后使用向量数据库进行相似度搜索。系统会找出与问题最相关的文档片段,作为上下文信息提供给大语言模型。这个过程通过n8n的Vector Store检索节点自动完成,通常会返回3-5个最相关的文档片段。
  • 构建提示词并调用 LLM:将检索到的相关内容与用户问题组合成完整的提示词,发送给大语言模型。提示词会要求模型基于提供的上下文回答问题,以确保答案准确且相关。

  同样,整个过程也都是n8n封装好相应的节点,我们也只需要在n8n中配置好相应节点和参数即可。下面是具体的实现流程图:

image.png

集成到网页

  完成问答机器人的搭建后,最后一步就是将它集成到github主页中了,这一步对于开发者来说就更简单了,n8n官方提供了嵌入对话的代码片段,只需要将如下代码嵌入到主页中即可,注意:这里的YOUR_PRODUCTION_WEBHOOK_URL需要替换成你在n8n中创建的Webhook URL,这个URL可以在n8n的Webhook节点中找到。

<link href="https://cdn.jsdelivr.net/npm/@n8n/chat/dist/style.css" rel="stylesheet" />
<script type="module">
    import { createChat } from 'https://cdn.jsdelivr.net/npm/@n8n/chat/dist/chat.bundle.es.js';

    createChat({
        webhookUrl: 'YOUR_PRODUCTION_WEBHOOK_URL'
    });
</script>

  代码会在网页右下角显示一个聊天窗口,用户点击后就可以与机器人对话了。你也可以通过配置选项自定义聊天窗口的样式、位置和行为,使其更好地融入你的网站设计。

总结

  通过本文的介绍,我们完成了一个功能完整的GitHub项目问答机器人的搭建。整个过程主要包括三个核心步骤:将书籍内容存储到向量数据库、实现智能问答功能,以及集成到网页中供用户使用。

  n8n 的可视化工作流让整个开发过程变得简单直观,即使是没有深厚技术背景的开发者也能快速上手。更重要的是,这套方案具有很好的可扩展性和通用性。你可以将同样的思路应用到任何需要知识问答的场景中,比如产品文档助手、客户服务机器人、学习资料问答系统等。

  如果你也有类似的需求,不妨动手尝试一下。在实践过程中如果遇到问题,欢迎在评论区交流讨论。最后,如果你对AI Agent的设计模式感兴趣,欢迎关注我的开源项目《Agentic Design Patterns》,也欢迎star支持。