@cocoindex_io: 希望拥有生产级流水线但不想从零编写数据摄入和转换逻辑的组织应该考虑…
摘要
SerroAI 开源了一份指南,介绍如何使用 Claude Code 和 MCP 集成构建动态程序记忆,使 AI 代理能够无需专有基础设施即可查询组织决策和信号。
查看缓存全文
缓存时间: 2026/06/11 15:42
想要构建生产级管道但又不想从头编写数据摄取和转换逻辑的组织,可以关注一下 @cocoindex_io 。@jakesrro 刚刚与 @cocoindex_io 开源了可编程记忆,它位于项目的核心位置。
一个 AI 原生工程组织并行运行多个项目——每个项目都有自己的范围、利益相关者、信号和决策。实时程序记忆意味着你组织中的每个 AI 代理都能回答诸如以下问题:
- “平台团队上个季度做了哪些决定?为什么这么做?”
- “哪些工程师一直在做认证相关的工作?做了多久?”
- “上周设计评审中提出的待办事项还有哪些未完成?”
- “项目 X 的范围是否偏离了其原始章程?”
- 如果没有实时程序记忆,每次 Claude 会话都得从零开始。工程师们需要重新解释背景信息。决策被重复讨论。工作变得不可见。
仓库链接 - https://github.com/SerroAI/program-memory…
SerroAI/program-memory
来源:https://github.com/SerroAI/program-memory
构建你自己的 Serro
关于构建你自己的程序记忆层的权威指南
一个使用 Claude Code、MCP 集成和 git 构建实时共享程序记忆的入门套件——无需专有基础设施。
此仓库包含逐步指导,而非代码。 无需执行
npm install或docker run。每个系列文件夹都是一份指南,教你如何使用 Claude Code 和原生 MCP 集成自行实现。
Serro 为何发布此内容
我们希望我们的客户能够成功——无论是否使用我们的产品。
如果你有工程带宽来构建和运营你自己的实时程序记忆,这个仓库为你提供了完整的架构:每一个决策点、每一个权衡、每一个我们踩过的坑。你将确切了解你需要承诺什么。
如果你在阅读后,宁愿不自己运营——Serro (https://serro.ai) 是托管版本。同样的能力,无需基础设施,并拥有基于三年组织信号构建的专有本体论。
无论哪种方式,你都将做出明智的选择。这就是目标。
什么是实时程序记忆?
一个 AI 原生工程组织并行运行多个项目——每个项目都有自己的范围、利益相关者、信号和决策。实时程序记忆意味着你组织中的每个 AI 代理都能回答诸如以下问题:
- “平台团队上个季度做了哪些决定?为什么这么做?”
- “哪些工程师一直在做认证相关的工作?做了多久?”
- “上周设计评审中提出的待办事项还有哪些未完成?”
- “项目 X 的范围是否偏离了其原始章程?”
如果没有实时程序记忆,每次 Claude 会话都得从零开始。工程师们需要重新解释背景信息。决策被重复讨论。工作变得不可见。
Serro (https://serro.ai) 通过维护一个持续更新、按项目索引的记忆来解决这个问题,涵盖 GitHub、Slack、Google Drive 和会议——并使其可被组织中的任何代理查询。
此仓库记录了如何仅使用 Claude Code 和原生 MCP 集成来复制这一点。
你要构建的内容
┌─────────────────────────────────────────────────────┐ │ 小部件层 基于提示的程序状态实时视图 │ │ (需要第 2 层) │ ← 超出范围 ├─────────────────────────────────────────────────────┤ │ 主动层 自主循环代理监控程序, │ │ 标记阻塞项,按计划发布摘要 │ ← 循环模式(见下文) ├─────────────────────────────────────────────────────┤ │ 记忆层 来自 GitHub/Slack/Drive 的信号 │ │ 按程序组织,可被任何 │ ← 此仓库 │ Claude 会话查询 │ └─────────────────────────────────────────────────────┘
此仓库完整覆盖了记忆层。 主动层被记录为一种循环模式——一个自主的 Claude 代理,按计划唤醒,读取程序记忆,并在未经询问的情况下呈现重要信息。请参阅 content_ideas/serroloop_blog_post.md 和下面的循环模式概念。小部件层超出范围。
实时程序记忆的四个层级
共有四个层级。每个层级本身都很有用。每个层级也是下一个层级的基础。
| 层级 | 你做什么 | 你得到什么 | 系列 |
|---|---|---|---|
| 1 — 拉取 | 什么都不做。Claude 在查询时拉取所有来源。 | 即时设置。在上下文填满之前都有效。 | 系列 A |
| 2 — 映射 | 维护 program_mappings.yaml——程序、人员、来源都在一个文件中。 | 限定范围查询、贡献者归属、待办事项跟进。 | 系列 B |
| 3 — 循环 | 一个 Claude 循环自动维护摘要。 | 始终最新的记忆。无需手动维护。 | 系列 C(从 C-4 开始) |
| 4 — 图 | 将循环输出导入语义/图索引。 | 语义搜索。实体解析。时间推理。 | 系列 C + CocoIndex / FalkorDB / Serro |
从第 3 层开始。 一条 /loop 命令,无需基础设施。只有当你的循环稳定,并且你达到了平面摘要查询的天花板时,才转移到第 4 层。映射文件(program_mappings.yaml)在每个层级都是相同的——你只需编写一次,它就会继续生效。
请参阅 verdict.md 了解完整理由以及何时使用每个层级。
完整决策树:memory_layer_decision_chart.md
程序记忆架构决策图
Serro 能做到而本仓库(尚)做不到的事情
这是一个诚实的比较。开源版本涵盖了架构——但 Serro 拥有单纯依靠公开工具无法复制的优势:
| 能力 | 开源(此仓库) | Serro |
|---|---|---|
| 实时记忆摄入 | ✅ 每小时到秒级(取决于系列 C 选项) | ✅ 持续、事件驱动 |
| 按程序索引的记忆 | ✅ 通过 program_mappings.yaml | ✅ 自动分类,组织范围 |
| 跨来源关键词搜索 | ✅ 通过 MCP(GitHub, Slack, Drive) | ✅ |
| 语义/嵌入搜索 | ⚠️ 需要自托管向量存储(系列 C) | ✅ 内置 |
| 时间代码智能 | ⚠️ 仅关键词搜索 - 无法检测概念漂移 | ✅ 符号级历史 |
| 工程师贡献历史 | ⚠️ 从 git blame + Slack 重建 - 不完整 | ✅ 持续维护 |
| 语音驱动的记忆更新 | ❌ | ✅ |
| 主动程序协调 | ✅ 通过循环模式——定时 Claude 代理读取记忆,标记阻塞项,发布 Slack 摘要 | ✅ 事件驱动 |
| 零配置设置 | ❌ 需要映射 yaml + MCP 服务器设置 | ✅ |
最大的结构性差距是数据语料库。Serro 自 2023 年以来一直在摄入和索引组织信号。开源版本从零开始。这个差距对时间推理和贡献历史影响最大。
当前状态
| 层级 | 状态 | 备注 |
|---|---|---|
| 记忆层 | 🟢 已编写指导 | 记录了三种架构的逐步指南。尚未在真实组织中验证。 |
| 主动层 | 🟡 已记录循环模式 | Serroloop 模式涵盖监控、摘要和阻塞检测。尚未编写实现指南。 |
| 小部件层 | 🔴 超出范围(检查点 1) | 需要记忆层 + 主动层 |
检查点 1 已完成: 记录了能力分析、架构决策树和实现选项。
检查点 2: 在真实组织中构建系列 B 或 C2,并衡量分类准确率、覆盖率和延迟。
快速开始
首先阅读
critical_review.md。 此仓库存在利益冲突——它由构建 Serro 的人编写。该审查明确指出了偏见。
1. 了解你要复制的对象
research/serro_capabilities.md
七个能力跨三个层级,带有难度评级和衡量标准。
2. 选择架构
memory_layer_decision_chart.md
一个包含 14 个决策点的决策树。错误的架构选择会浪费数周时间。
3. 阅读哪些方案行不通
comparative_analysis.md
MCP 是仅拉取模式——不是连续流。几个架构假设因此失败。不要重复错误。
4. 遵循实现说明
family_a/ family_b/ family_c/
从决策树中选择你的系列。每个文件夹都有一个 instructions.md。
5. 复制模板
templates/
可以直接填写 program_mappings.yaml、charter.md 和 CLAUDE_template.md。
仓库结构
├── README.md ← 你现在的位置 ├── CLAUDE.md ← 代理导航(如果你是 AI,请阅读) ├── goal.md ← 使命和动机 ├── critical_review.md ← 对此分析的诚实批评 ├── comparative_analysis.md ← 我们尝试过的、出问题的、关键分叉点 ├── key_decisions.md ← 14 个决策点及理由 ├── memory_layer_decision_chart.md ← mermaid 决策树,用于选择方法 │ ├── research/ │ └── serro_capabilities.md ← 7 个能力、难度评级、未解决问题 │ ├── family_a/ │ └── instructions.md ← 完整上下文拉取 - 微型组织,零配置 │ ├── family_b/ │ ├── overview.md ← 人工维护的来源映射方法 │ └── instructions.md ← 逐步设置 │ ├── family_c/ │ ├── overview.md ← 自动摄入:C1 / C2 / C3 比较 │ ├── c1_webhook_server.md ← 始终运行的服务器(秒级延迟) │ ├── c2_git_cron.md ← git + 定时 cron(每小时,推荐起始点) │ ├── c3_github_actions.md ← GitHub Actions + Cloudflare Worker(1–2 分钟) │ └── instructions.md ← 逐步设置 │ ├── templates/ │ ├── program_mappings.yaml │ ├── charter.md │ └── CLAUDE_template.md │ ├── content/ │ ├── youtube_script_checkpoint_1.md │ └── blog_post_checkpoint_1.md │ └── content_ideas/ ├── youtube_script_v1.md ← 第一人称 YouTube 脚本(Jake 的视角) └── serroloop_blog_post.md ← 应用于程序工程的循环模式
构建前请阅读
critical_review.md- 利益冲突、未经验证的假设、什么是真正的证据comparative_analysis.md- 方法 1 失败,因为 MCP 是仅拉取模式。不要将轮询设计得像是连续摄入。family_b/overview.md- 系列 B 有 6 个已知限制。长期技术推理是最难弥合的差距。
概念
什么是项目?
项目是一个命名的、持续进行的技术计划,具有明确定义的范围、一组负责人工程师,以及分布在多个工具中的信号。与工单(跟踪单个任务)或项目(有硬性结束日期)不同,项目是持续性的。它有一个章程、利益相关者,以及一份关于决策、承诺和范围变更的活动记录。
示例:“平台可靠性”、“认证现代化”、“AI 可发现性”、“第三季度移动端发布”。
什么是项目工程?
当多个工作流都指向同一个结果,而其中任何一个孤立地看都无法实现该结果时,就需要项目工程。项目为这些工作赋予一个名称、一个负责人、一个顺序,并诚实透明地显示其是否在正轨上。与项目不同,它不会结束——它会重复进行。每次运行时,如果没有共享的先前运行记忆,协调成本就会从零开始累计。
项目工程过去是大公司才有的问题。当组织复杂到协调开始崩溃时,你大约在 80 名工程师左右会遇到它。在此之前,一位优秀的高级工程师或工程经理可以将全局图景记在脑中。
这个阈值已经不复存在。
AI 已经将团队规模与执行能力解耦。今天一个 10 人工程团队可以以五年前需要 80 人才能达到的速度和广度推进。雄心会随着新能力而膨胀。当你用十人团队同时运行八件事情时,你面临的是一个 80 人公司的协调问题,却没有大公司为此建立的任何组织基础设施。
这就是从产品工程到项目工程的转变。当一个项目没有名称、没有负责人、没有共享可见性时,它仍然会被执行——由掌握足够全局信息的人来做。那个人就成了偶然的项目工程师,在完成自己本职工作之余承担着这些,而所有机构知识都存在他们脑中。
而且,工作流本身不再全部由人类完成。随着 Anthropic 在 Claude Code 中发布循环(loops),代理不再是你调用的工具,而是成为了项目的常驻参与者。一个循环按自己的计划唤醒,读取项目状态,拉取信号,写入记忆,发布摘要,标记阻塞项——并自行决定何时再次运行。没有人提示它。
这是项目工程的主要用例:编程人类-代理循环的治理。哪些决策由循环自主做出,哪些需要升级,它被允许基于什么上下文行动,谁审查它在所有人睡着时写下的内容,以及当它基于过时记忆行动时谁负责。这些是项目级别的决策,而非提示级别的决策。那些明确为其循环编写治理规则(在声明项目所有者和来源的同一映射文件中)的团队,就是在进行项目工程。那些不这样做的团队,则拥有无人监督、无人负责的工作流。
阅读完整文章 - 欢迎来到项目工程 (https://serro.ai/blog/welcome-to-program-engineering)
什么是智能 TPM?
智能 TPM 平台是项目工程的基础设施——而非取代 TPM 角色。通过实时项目智能、智能行动和自我驱动报告,它为所有推动工作的人提供项目可见性,从而减少协调时间,增加执行时间。它在不增加人员数量的情况下扩展 TPM 能力。
它通过以下方式实现:
- 持续从 GitHub、Slack、Drive 和会议中摄入信号
- 维护每个项目状态的实时模型:谁在做什么、做出了哪些决策、有哪些未完成的承诺
- 在阻塞项被升级之前就将其呈现出来
- 跟进待办事项
- 将上下文传递给下游代理,以便它们不必从零开始
Serro (https://serro.ai) 是一个智能 TPM。此仓库是一份指南,教你如何自己构建一个版本。
什么是实时程序记忆?
实时程序记忆是一个始终最新、按项目索引的记录,包含项目所有重要信息:决策、贡献者、范围变更、阻塞项和待办事项。
“实时”意味着它会随着信号的到达自动更新——而不是一份需要有人记得去更新的静态文档。
“按项目索引”意味着信号按项目组织,而不是按工具或日期。像“上个季度认证项目发生了什么变化?”这样的问题,会同时从 GitHub、Slack、Drive 和会议记录中提取信息。
这是此仓库试图解决的问题。
什么是循环?
循环是一个自主的 Claude 代理,按重复的时间间隔运行。它唤醒、读取状态、决定什么重要、采取行动,然后回到睡眠状态——无需人工提示。
应用于程序
相似文章
@tom_doerr: 利用持久内存编排AI编码代理 https://github.com/RedPlanetHQ/core…
CORE是一个开源AI操作系统层,利用持久内存编排编码代理,协调跨工具和代理的任务。
@pvergadia:每位开发者都必须知道的9层AI生产架构。→ 服务/ RAG管道、语义缓存、记忆、查询改…
这篇文章概述了一个全面的9层AI生产架构,强调了如RAG管道、安全守卫、可观测性和评估等组件,以区分健壮的生产系统与简单的演示。
@anyscalecompute:大多数 Agent 框架解决了编排问题,却在基础设施方面完全未予解决。最新博文:面向生产的 AI…
Anyscale 发布了一篇技术指南,介绍如何使用 Ray Serve、MCP 和 A2A 协议部署面向生产环境的 AI Agent。文章针对常见的底层基础设施瓶颈,提出了一种解耦的微服务架构,支持 LLM、工具与 Agent 的独立扩缩容。
@GitHub_Daily: 用 AI 智能体生产级事情,写代码、跑流程、调接口,一开始还行,但规模一大就容易失控,权限太宽、上下文丢失、调试无从下手。 于是找到了 agents-best-practices 这套完整的智能体运行框架设计指南,不限于编码场景,运营、销…
介绍了 agents-best-practices 仓库,这是一份生产级 AI 智能体运行框架设计指南,涵盖工具权限分级、上下文压缩等,支持 Codex 和 Claude Code 安装。
@eng_khairallah1: https://x.com/eng_khairallah1/status/2058116763372453997
一份全面的指南,教非编码人员如何使用Claude和Cowork构建AI代理,无需编写任何代码,解释核心组件并提供分步说明。