芥末
发布于 2026-04-18 / 0 阅读
0
0

7 个 GitHub 开源项目:多 Agent IDE、Claude Code 增强、文档转 Markdown 与端侧 TTS

AI 工具类开源项目正在分成几条清晰路线:一类负责把多个 Agent 编排成工作流,一类补齐编程 Agent 的行为约束和长期记忆,一类把非结构化资料转成大语言模型更容易处理的格式,还有一类把语音合成模型推向本地可用。

这些项目解决的问题不同,放在一起看更容易判断该把哪个工具放进自己的工作流。

项目主要解决的问题适合场景不太适合的场景
Rowboat可视化搭建多 Agent 系统AI 客服、自动调研、内部自动化流程只需要单轮聊天的简单机器人
DeepTutor构建带记忆和工具能力的 AI 学习系统智能助教、自动出题、学习画像强监管的正式考试评分系统
andrej-karpathy-skills约束 Claude Code 的编码行为减少过度设计、误改代码、假设错误需要模型自由探索大量方案的研究场景
claude-mem给 Claude Code 增加跨会话长期记忆长期维护同一个代码库不能保存任何开发上下文的敏感环境
ChinaTextbook收集中文教材 PDF 资源家庭辅导、中文教育、基础知识补课需要实时更新教材版本的系统
MarkItDown把多格式文件转成 MarkdownRAG、知识库、文档清洗、LLM 输入预处理高保真排版还原、复杂版式出版
VoxCPM本地可运行的文本转语音大模型播客、视频配音、智能客服、有声书CPU-only 环境或未经授权的声音克隆

Rowboat:用可视化 IDE 搭多 Agent 工作流

Rowboat 可以理解成多 Agent 系统的可视化 IDE(Integrated Development Environment,集成开发环境)。它要解决的不是“怎么调用一次模型”,而是“怎么把多个有分工的 Agent 组织成一个稳定流程”。

典型多 Agent 系统里,经常会有这些角色:

  • 一个 Agent 负责理解用户需求;
  • 一个 Agent 负责检索资料;
  • 一个 Agent 负责调用外部工具;
  • 一个 Agent 负责整理结论;
  • 还有一个控制器负责任务拆解、状态流转和失败重试。

如果全部手写,开发者需要处理提示词、工具调用、上下文传递、测试环境和部署接口。Rowboat 把这些环节做成了可视化工作台,并提供 Copilot 来根据自然语言描述生成 Agent 工作流。

flowchart LR
    A[自然语言描述需求] --> B[Rowboat Copilot]
    B --> C[生成 Agent 工作流]
    C --> D[AI 模拟环境测试]
    D --> E{效果是否符合预期}
    E -- 否 --> C
    E -- 是 --> F[连接 MCP Server 和外部工具]
    F --> G[通过 Python SDK 或 HTTP API 集成到产品]

它比较适合两类团队。

一类是已经知道业务流程,但不想从零搭 Agent 框架的团队。比如 AI 客服需要先判断问题类型,再查知识库、查工单、调用订单系统,最后生成回复;这些步骤天然适合拆给多个 Agent。

另一类是想快速验证 Agent 产品形态的团队。Rowboat 内置模拟测试能力,可以先在 AI 场景里跑一遍工作流,再接入真实工具,能减少直接上线试错的成本。

Rowboat 底层基于 OpenAI Agents SDK,可以连接 Slack、Linear、Jira、GitHub、ElevenLabs、Exa 等服务,也支持接入 MCP(Model Context Protocol,模型上下文协议)server。对外集成有两种方式:Python SDK(Software Development Kit,软件开发工具包)和 HTTP API(Application Programming Interface,应用程序接口)。

使用时要注意边界:Rowboat 适合编排流程,不等于自动保证业务正确性。关键工具调用仍然需要权限控制、日志记录、失败兜底和人工审核,尤其是涉及工单修改、代码提交、支付订单这类有副作用的操作。

DeepTutor:面向学习场景的多 Agent 助教系统

DeepTutor 更偏向教育场景。它不是单纯的聊天机器人,而是把工具调用、知识库、联网搜索、代码执行、多 Agent 推理和学习者记忆组合到一起,形成一个 AI 学习平台。

它覆盖的能力可以分成几组:

能力作用
RAG + 联网 + 代码执行让聊天不只依赖模型参数,还能查资料、跑代码、引用知识库
Deep Solve用多 Agent 拆解复杂问题,适合数学、编程、逻辑推理类任务
Quiz Generation根据知识库自动生成题目
Deep Research多个 Agent 并行做深度调研
Math Animator把数学概念做成可视化内容
TutorBot每个助教有独立工作区和人设,可以持续运行
Co-Writer把 AI 集成进 Markdown 编辑器
Persistent Memory在不同功能之间共享学习者画像

RAG(Retrieval-Augmented Generation,检索增强生成)是这类系统的关键。普通聊天只依赖大语言模型已经学过的知识,RAG 会先从知识库里检索相关内容,再把检索结果交给模型生成回答。这样做能让回答更贴近指定教材、课程资料或内部文档。

DeepTutor 的结构可以抽象成这样:

flowchart TB
    A[学习者输入问题] --> B[任务理解]
    B --> C{任务类型}
    C --> D[RAG 检索]
    C --> E[联网搜索]
    C --> F[代码执行]
    C --> G[多 Agent 推理]
    D --> H[回答生成]
    E --> H
    F --> H
    G --> H
    H --> I[更新学习者画像]
    I --> J[后续问答 / 出题 / 写作辅助]

TutorBot 的设计比普通机器人更进一步。普通机器人通常只围绕当前会话回答问题,而 TutorBot 有独立工作区和人设,可以围绕某个学习目标持续工作。例如,一个 TutorBot 可以专门负责高中数学,一个负责英语写作,一个负责编程练习;Persistent Memory 再把学习者画像共享给这些能力,避免每个功能都重新了解学习者水平。

仓库地址:

https://github.com/HKUDS/DeepTutor

适合用 DeepTutor 的场景通常有一个共同点:用户不是只问一次问题,而是会持续学习、练习和复盘。它不适合直接拿来做高风险评分系统,因为教育评分涉及标准答案、评分一致性、申诉机制和人工复核,不能完全交给模型判断。

andrej-karpathy-skills:用 CLAUDE.md 约束 Claude Code

Claude Code 这类编程 Agent 的常见问题不是“不会写代码”,而是太容易自作主张:

  • 没澄清需求就按错误假设继续写;
  • 为简单问题设计一堆不必要的抽象;
  • 顺手修改没有完全理解的代码;
  • 遇到困惑不说明,继续生成看似合理的实现;
  • 没有先定义验证标准,写完也不知道是否真的完成。

andrej-karpathy-skills 的核心就是一个 CLAUDE.md 文件,用来告诉 Claude Code 在项目里应该怎么工作。它把编码行为约束成四条原则。

原则具体要求能减少的问题
思考再写先明确假设,必要时提问或反驳需求避免基于错误前提写一大段代码
简洁优先只实现当前需要的能力,不提前扩展避免过度设计和无用抽象
手术式修改只碰必要文件,保持现有代码风格避免无关改动污染 diff
目标驱动执行先定义验证标准,再执行实现和测试避免“看起来写完了但无法验证”

它的工作方式并不复杂:Claude Code 进入项目时会读取 CLAUDE.md,这些规则就会成为后续代码生成、修改和解释的行为边界。

sequenceDiagram
    participant Dev as 开发者
    participant Claude as Claude Code
    participant Rules as CLAUDE.md
    participant Repo as 代码仓库

    Dev->>Claude: 提出编码任务
    Claude->>Rules: 读取项目规则
    Claude->>Dev: 澄清假设和验收标准
    Claude->>Repo: 做最小必要修改
    Claude->>Repo: 运行或建议验证方式
    Claude-->>Dev: 返回变更说明

推荐用 plugin 安装:

/plugin marketplace add forrestchang/andrej-karpathy-skills/plugin install andrej-karpathy-skills@karpathy-skills

也可以把 CLAUDE.md 放到项目根目录,让 Claude Code 在当前仓库中读取规则。

仓库地址:

https://github.com/forrestchang/andrej-karpathy-skills

这类规则文件尤其适合多人协作代码库。它不能让模型永远正确,但能让模型少做几类高风险动作:少猜、少扩展、少乱改、先验证。

claude-mem:给 Claude Code 补上长期记忆

Claude Code 默认更像一个“会话内聪明”的工具。当前会话里它能理解上下文,可一旦新开会话,很多项目细节、历史决策、踩过的坑都需要重新解释。

claude-mem 解决的是跨会话记忆问题。它会在会话过程中自动捕捉 Claude 做过的事情,然后使用 Claude 的 agent-sdk 做语义压缩。新会话启动时,再把相关上下文注入回来。

flowchart LR
    A[Claude Code 会话] --> B[自动捕捉操作和上下文]
    B --> C[AI 语义压缩]
    C --> D[(SQLite 本地存储)]
    C --> E[(Chroma 向量库)]
    F[新会话启动] --> G[按任务检索相关记忆]
    D --> G
    E --> G
    G --> H[注入上下文给 Claude Code]

它的几个设计点比较实用:

功能作用
自动记录不需要手工写笔记,也不需要手动整理上下文
语义压缩把冗长会话压缩成可复用记忆,降低后续上下文成本
skill-based 自然语言检索用自然语言找历史记忆,不必记文件名或关键词
渐进式披露按需展开记忆,并标注 token 成本
本地 Web Viewerlocalhost:37777 查看历史记录
<private> 标签标记不希望被记住的敏感内容
SQLite + Chroma本地存储结构化数据和向量索引
Gemini CLI 支持不只绑定 Claude Code

安装命令很短:

npx claude-mem install

敏感内容可以用标签包起来:

<private>
这里是 API Key、客户信息、未公开需求或其他不希望进入长期记忆的内容。
</private>

仓库地址:

https://github.com/thedotmack/claude-mem

使用长期记忆工具时要把隐私规则提前定好。即使 claude-mem 使用本地 SQLite 和 Chroma,也不代表可以无脑记录所有内容。涉及密钥、客户数据、未公开商业计划、受监管代码时,需要明确哪些内容可以进入记忆,哪些必须用 <private> 排除。

ChinaTextbook:中文教材 PDF 资源仓库

ChinaTextbook 是一个中文教材 PDF 仓库,覆盖小学、初中、高中和大学阶段,包含人教版、五·四学制等多种课纲资源。数学教材覆盖范围较广,从低年级一直延伸到大学阶段。

它解决的是资料获取和集中整理问题。对家庭辅导、海外中文教育、基础知识补课、学习型知识库搭建来说,把教材资源按学段和学科集中起来,比零散搜索更容易使用。

文件主要是 PDF 格式。部分超过 50MB 的教材会被切成 35MB 左右的分段文件,仓库里提供了合并工具。

仓库地址:

https://github.com/TapXWorld/ChinaTextbook

使用这类资料仓库时建议注意三件事:

注意点说明
版本核对教材版本、课纲地区、出版年份可能影响内容
文件完整性分段 PDF 需要合并后再检查页码是否完整
使用范围教学、学习和研究用途要遵守仓库说明及相关版权要求

如果要把教材接入 AI 学习系统,常见流程是先下载 PDF,再用 OCR 或文档转换工具抽取文本,最后进入 RAG 知识库。

flowchart LR
    A[教材 PDF] --> B[OCR / 文档解析]
    B --> C[清洗标题、页码、章节]
    C --> D[切分文本块]
    D --> E[向量化]
    E --> F[(知识库)]
    F --> G[AI 助教问答 / 自动出题]

MarkItDown:把各种文件转成 Markdown

MarkItDown 是微软开源的 Python 工具,核心目标很直接:把多种格式的文件转换成 Markdown。

它支持的输入类型很广,包括 PDF、Word、PPT、Excel、图片、音频、HTML,甚至可以处理 YouTube 链接。对做大语言模型(Large Language Model,LLM)应用的人来说,这类工具经常出现在数据预处理阶段。

为什么要转 Markdown?因为 Markdown 对 LLM 很友好:

  • 标题层级可以保留下来;
  • 列表、表格、链接有明确结构;
  • 相比复杂排版格式,token 浪费更少;
  • 更适合切分、索引和送入 RAG 管道。

典型流程是这样:

flowchart LR
    A[PDF / Word / PPT / Excel / 图片 / 音频 / HTML] --> B[MarkItDown]
    B --> C[Markdown 文本]
    C --> D[清洗与切分]
    D --> E[Embedding 向量化]
    E --> F[(向量数据库)]
    F --> G[LLM 问答 / 摘要 / 检索]

安装命令:

pip install 'markitdown[all]'

命令行转换:

markitdown path-to-file.pdf -o document.md

Python API 示例:

from markitdown import MarkItDown

md = MarkItDown()
result = md.convert("path-to-file.pdf")

print(result.text_content)

它还支持一些更高级的能力,例如:

能力用途
LLM 图片描述图片内容转成文本描述,方便进入知识库
音频转录把语音资料变成可检索文本
Azure 文档智能集成处理更复杂的文档解析任务
插件扩展通过第三方插件补 OCR 等能力

仓库地址:

https://github.com/microsoft/markitdown

使用时要特别注意扫描版 PDF 和复杂表格。扫描版 PDF 本质上是图片,需要 OCR;复杂表格转成 Markdown 后可能丢失合并单元格、跨页表头和精细排版,需要额外校对。

VoxCPM:本地可用的文本转语音大模型

VoxCPM 是面壁智能开源的文本转语音模型。TTS(Text-to-Speech,文本转语音)系统的目标是把文本变成自然语音,VoxCPM 的重点是大模型语音合成,并且强调端侧可运行。

它的关键信息包括:

指标 / 能力说明
参数规模2B 参数
训练数据200 多万小时多语种语音
语言能力支持 30 种语言自动识别和切换
输出质量48kHz 音频
Voice Design用文字描述生成音色,不需要参考音频
可控声音克隆克隆声音后还能加入风格引导
实时流式推理RTX 4090 上 RTF 约 0.3

RTF(Real-Time Factor,实时率)可以理解成生成速度和音频时长的比例。RTF 为 0.3 时,生成 10 秒音频大约需要 3 秒,已经接近很多交互式场景的可用范围。

VoxCPM 的两个能力很有代表性。

一个是 Voice Design。传统声音克隆通常需要提供参考音频,而 Voice Design 允许直接用文字描述音色,例如“年轻女性、语速较慢、情绪温和、适合讲故事”,模型会生成符合描述的声音。

另一个是可控声音克隆。声音克隆解决“像谁”的问题,风格引导解决“怎么说”的问题。同一个声音可以表现出客服式、播客式、旁白式或情绪化表达。

flowchart LR
    A[输入文本] --> B{合成模式}
    B --> C[Voice Design: 文本描述音色]
    B --> D[声音克隆: 参考音频]
    C --> E[风格控制]
    D --> E
    E --> F[VoxCPM 推理]
    F --> G[48kHz 语音输出]

仓库地址:

https://github.com/OpenBMB/VoxCPM

适合尝试 VoxCPM 的场景包括播客生成、视频旁白、智能客服、有声书和多语言语音内容生产。需要注意的是,声音克隆必须获得授权,不能用来冒充他人身份;如果部署在本地,还要提前评估显存、推理延迟和并发需求。

按场景选择工具

如果目标是搭一个能执行任务的 AI 系统,优先看 Rowboat 和 DeepTutor。Rowboat 更偏通用 Agent 工作流编排,DeepTutor 更偏学习系统和助教场景。

如果主要使用 Claude Code 写代码,andrej-karpathy-skills 和 claude-mem 可以一起用:前者约束模型怎么改代码,后者让模型记住长期上下文。

如果在做知识库或 RAG 管道,ChinaTextbook 可以作为中文教育资料来源,MarkItDown 负责把 PDF、Office 文档、音频和网页转换成 Markdown,再进入后续清洗、切分和向量化流程。

如果产品里需要语音输出,VoxCPM 适合评估端侧 TTS、声音设计和可控声音克隆能力。它不是简单的朗读工具,而是更接近可控语音生成模型。


评论