AI 开源项目已经不只是在聊天窗口里接入一个大模型。更实用的方向,是把大语言模型接到真实工作流里:读企业文档、生成流程图、辅助写代码、管理任务、检查简历,或者在高风险操作前加一道人工审批。
这些项目可以按使用场景分成几类:
| 项目 | 解决的问题 | 关键词 | 开源地址 |
|---|---|---|---|
| WeKnora | 把复杂文档做成可问答的企业知识库 | RAG、OCR、语义检索、Agent | https://github.com/Tencent/WeKnora |
| next-ai-draw-io | 用自然语言或图片生成可编辑流程图 | Next.js、draw.io、多模态 | https://github.com/DayuanJiang/next-ai-draw-io |
| agents.md | 给 AI Coding Agent 提供项目说明规范 | AGENTS.md、代码规范、上下文 | https://github.com/agentsmd/agents.md |
| open-notebook | 开源版资料理解与问答笔记工具 | NotebookLM、资料问答、音频对话 | https://github.com/lfnovo/open-notebook |
| Fizzy | 极简团队看板和任务管理 | 看板、Rails、任务清理 | https://github.com/basecamp/fizzy |
| Resume-Matcher | 根据岗位描述检查简历匹配度 | ATS、关键词、简历优化 | https://github.com/srbhr/Resume-Matcher |
| Goose | 在本地执行工程任务的 AI 编程 Agent | 终端、Rust、MCP、代码修复 | https://github.com/block/goose |
| HumanLayer | 给 AI 智能体的危险操作加人工审批 | SDK、安全护栏、人类确认 | https://github.com/humanlayer/humanlayer |
WeKnora:面向复杂文档的企业级知识库框架
WeKnora 是腾讯微信团队开源的文档理解与语义检索框架。它解决的核心问题不是“把几个文本片段塞进向量库”,而是把 PDF、Word、图片、表格、图文混排材料处理成一个可以稳定问答、能追溯出处的知识库。
传统 RAG(Retrieval-Augmented Generation,检索增强生成)通常会把文档切成片段,再做向量检索。这个流程适合纯文本资料,但遇到合同、报告、扫描件、表格、图片说明时会出现几个问题:
- 文档版式复杂,段落和表格关系容易丢失;
- 扫描 PDF 需要 OCR(Optical Character Recognition,光学字符识别);
- 表格里的结构化信息不能只当普通文本处理;
- 问答结果如果不能定位来源,企业场景很难验证答案可信度。
WeKnora 的价值在于把这些步骤做成一条相对完整的管线。
flowchart LR
A[PDF / Word / 图片 / 网页资料] --> B[文档解析]
B --> C[OCR 与版面分析]
C --> D[文本、表格、图片语义提取]
D --> E[切分与结构化处理]
E --> F[(向量库 / 索引)]
F --> G[语义检索]
G --> H[大模型生成答案]
H --> I[答案 + 来源追溯]
它和普通关键词搜索的区别在于,关键词搜索更依赖字面匹配,而语义检索会尝试理解用户问题和文档内容之间的语义关系。比如用户问“哪些条款限制了退款”,文档里可能写的是“费用一经支付不予返还”,两者字面上不完全一致,但语义上相关。
WeKnora 还支持 Agent 能力。Agent 可以理解成带工具调用能力的智能体,不只是一次性回答问题,而是可以分步骤推理、调用搜索或其他工具,再整理结果。它提到的 ReACT 模式,通常指 Reasoning and Acting,即把“思考”和“行动”交替进行;MCP(Model Context Protocol,模型上下文协议)则用于让模型以统一方式接入外部工具和数据源。
适合使用 WeKnora 的场景:
| 场景 | 为什么适合 |
|---|---|
| 企业制度库 | 文档多、格式杂,需要问答和来源追溯 |
| 技术文档知识库 | 适合做语义检索,减少人工翻文档成本 |
| 合同、报告、扫描件检索 | 需要 OCR、版面分析和结构化提取 |
| 客服知识库 | 可以把资料转成可问答系统 |
不太适合的场景也很明确:如果只是几十篇纯 Markdown 文档,普通全文搜索或轻量 RAG 工具就够用,引入完整企业级框架会增加部署和维护成本。
# 开源地址
https://github.com/Tencent/WeKnora
next-ai-draw-io:用对话生成 draw.io 图表
next-ai-draw-io 是一个基于 Next.js 的 Web 应用,它把 AI 和 draw.io 结合起来,让画图从“拖拽组件”变成“描述意图”。
它的典型工作方式是:
sequenceDiagram
participant U as 用户
participant AI as AI 服务
participant D as draw.io 画布
U->>AI: 画一个登录流程图
AI->>AI: 解析流程节点和关系
AI->>D: 生成 draw.io XML
D-->>U: 渲染可编辑流程图
draw.io 的图表本质上可以用 XML 描述。AI 要做的事情,就是把自然语言转换成符合 draw.io 格式的数据。用户不需要手动拖出开始节点、判断节点、箭头,只要描述业务流程,系统就能生成初稿。
例如输入:
画一个登录流程图:用户输入账号密码,系统校验格式,再查询数据库。
如果账号不存在,提示注册;如果密码错误,提示重试;如果校验通过,进入首页。
理想情况下,AI 会生成类似这样的结构:
flowchart TD
A[用户输入账号和密码] --> B{格式是否正确}
B -- 否 --> C[提示格式错误]
B -- 是 --> D[查询用户数据库]
D --> E{账号是否存在}
E -- 否 --> F[提示注册]
E -- 是 --> G{密码是否正确}
G -- 否 --> H[提示重试]
G -- 是 --> I[进入首页]
它还支持上传手绘草图、截图或已有图表图片,然后利用多模态模型识别图中的元素和连接关系,再还原成可编辑的 draw.io 图。这对会议白板、纸面流程草图、历史截图特别有用,因为截图本身很难二次编辑,转换成 draw.io 后才方便继续维护。
适合场景:
| 场景 | 价值 |
|---|---|
| 快速画流程图 | 先生成草稿,再人工微调 |
| 白板内容数字化 | 把拍照或截图变成可编辑图 |
| 产品和研发沟通 | 用自然语言快速表达流程 |
| 文档配图 | 降低画图成本 |
限制也要清楚:AI 生成图表很适合出初稿,但复杂系统架构图仍然需要人工校对。节点命名、边界划分、异常流程,经常需要工程师自己修。
# 开源地址
https://github.com/DayuanJiang/next-ai-draw-io
agents.md:写给 AI Coding Agent 的项目说明书
README.md 通常是写给人看的,重点介绍项目是什么、怎么安装、怎么贡献。AGENTS.md 则是写给 AI Coding Agent 的,让 Cursor、Claude Code 这类工具更容易理解项目结构、编码规则和执行方式。
AI 写代码时最怕缺上下文。它不知道测试怎么跑,不知道目录怎么分层,也不知道团队约定了哪些风格,就容易出现这些问题:
- 修改了不该改的目录;
- 用错测试命令;
- 生成不符合项目风格的代码;
- 忽略架构边界;
- 重复询问已经固定的开发流程。
AGENTS.md 的思路很简单:把这些约定放到一个标准文件里,让 AI 在动手前先读。
一个简化版 AGENTS.md 可以这样写:
# AGENTS.md
## Project Overview
This is a Next.js application with a PostgreSQL database.
The backend API lives under `app/api`.
Shared UI components live under `components`.
## Commands
- Install dependencies: `pnpm install`
- Run dev server: `pnpm dev`
- Run tests: `pnpm test`
- Run lint: `pnpm lint`
## Coding Rules
- Use TypeScript for all new files.
- Do not use `any` unless there is no practical alternative.
- Keep database access inside `lib/db`.
- Do not call external APIs directly from React components.
## Pull Request Checklist
- Run `pnpm lint`
- Run `pnpm test`
- Add or update tests for behavior changes
对 AI 来说,这种文件比一大段散乱说明更容易利用,因为它把命令、目录、约束、工作流拆成了稳定结构。
flowchart LR
A[AI Coding Agent] --> B[读取 AGENTS.md]
B --> C[理解项目结构]
C --> D[选择正确命令]
D --> E[按编码规范修改代码]
E --> F[运行测试和检查]
适合引入 AGENTS.md 的项目:
| 项目类型 | 适合原因 |
|---|---|
| 多人协作项目 | 能减少 AI 对团队规范的误解 |
| Monorepo | 目录多,AI 更需要边界说明 |
| 有固定测试和构建流程的项目 | 可让 AI 自动执行正确命令 |
| 经常使用 AI 辅助开发的项目 | 上下文稳定后,输出更可控 |
# 开源地址
https://github.com/agentsmd/agents.md
open-notebook:开源版资料理解与问答工具
open-notebook 可以理解成 Google NotebookLM 的开源替代方案。它面向的不是通用聊天,而是“围绕一组资料进行理解、问答和整理”。
典型使用方式是上传资料,例如:
- PDF;
- 网页;
- 音频;
- 视频;
- 文档文件。
系统会对这些资料做解析和索引,用户可以围绕资料提问、生成摘要,甚至把内容转换成类似播客的音频对话。
工作流大致如下:
flowchart TD
A[上传资料] --> B[解析文本 / 音频 / 视频]
B --> C[抽取内容]
C --> D[建立资料索引]
D --> E[围绕资料提问]
D --> F[生成摘要]
D --> G[生成音频对话]
它和普通聊天机器人的区别在于,普通聊天机器人主要依赖模型已有知识,而资料型 Notebook 工具会把用户上传的材料作为上下文。这样做有两个好处:
- 回答更贴近指定资料,不容易跑到无关范围;
- 可以作为学习、研究、会议资料整理工具,而不是单纯问答入口。
适合场景:
| 场景 | 用法 |
|---|---|
| 学习论文或技术文档 | 上传资料后围绕具体内容提问 |
| 整理会议材料 | 生成摘要、提炼决策点 |
| 分析课程或视频内容 | 把音视频转成可检索资料 |
| 研究竞品资料 | 多份资料集中问答 |
需要注意的是,资料理解工具的效果取决于解析质量和检索质量。如果 PDF 扫描质量差、音频转写错误多,后续问答也会受影响。
# 开源地址
https://github.com/lfnovo/open-notebook
Fizzy:把任务管理做轻的开源看板
Fizzy 是 37signals 推出的开源看板工具。它的设计目标不是替代所有复杂项目管理系统,而是给软件团队一个轻量、聚焦的任务管理方式。
很多团队用 Jira 或 Trello 时会遇到一个问题:任务只进不出,积压越来越多,优先级标签也越来越多。最后看板上满是“高优先级”和“以后再说”,真正该做什么反而不清楚。
Fizzy 的思路是反复杂化,重点机制包括:
| 机制 | 作用 |
|---|---|
| 看板 | 用直观列状态表达任务流转 |
| 熵 | 自动清理陈旧任务,避免看板无限膨胀 |
| 金票 | 用视觉方式标记真正重要的任务 |
| 简化配置 | 减少流程、字段、状态带来的维护成本 |
可以把它理解成一种“有自清理能力的看板”。任务系统如果没有清理机制,很容易变成待办垃圾场;Fizzy 把“过期”和“优先级稀缺”放进工具设计里,迫使团队关注当下真正需要处理的事情。
flowchart LR
A[新任务] --> B[待处理]
B --> C[进行中]
C --> D[完成]
B --> E{长时间无更新}
E --> F[被熵机制清理或降权]
B --> G[金票任务]
G --> C
适合使用 Fizzy 的团队:
| 适合 | 不适合 |
|---|---|
| 小型软件团队 | 需要复杂审批流的大型组织 |
| 想减少任务系统配置成本的团队 | 强依赖报表、权限、字段定制的团队 |
| 需要控制任务积压的团队 | 需要完整项目组合管理的团队 |
| Rails 技术栈学习者 | 只想要 SaaS 托管工具且不关心源码的团队 |
# 开源地址
https://github.com/basecamp/fizzy
Resume-Matcher:检查简历和岗位描述的匹配程度
Resume-Matcher 解决的是求职流程里一个很具体的问题:简历进入人工筛选前,可能先经过 ATS(Applicant Tracking System,候选人追踪系统)或类似自动筛选工具。如果简历格式不易解析,或者没有覆盖岗位描述里的关键技能词,匹配分数可能偏低。
它的基本逻辑可以拆成三步:
flowchart TD
A[上传简历] --> C[解析简历内容]
B[输入岗位描述] --> D[提取岗位关键词]
C --> E[匹配技能、经验、关键词]
D --> E
E --> F[生成匹配度分析]
F --> G[给出修改建议]
它不是替用户“编造经历”,而是帮助发现表达问题。例如岗位描述里多次出现 “React、TypeScript、REST API”,简历里实际做过这些事情,但写成了“前端页面开发、接口联调”,系统可能识别不到足够明确的关键词。Resume-Matcher 可以提示用户把真实经验表达得更清楚。
适合检查的内容包括:
| 检查项 | 说明 |
|---|---|
| 技能关键词 | 是否覆盖岗位描述里的主要技术栈 |
| 简历格式 | 是否容易被机器解析 |
| 经验表述 | 是否把项目经历和岗位要求对应起来 |
| 缺失项 | 岗位要求里出现但简历完全没有体现的能力 |
使用时要避免一个误区:匹配工具只能帮助优化表达,不能替代真实经历。为了提高匹配度硬塞无关关键词,后续面试很容易暴露问题。
# 开源地址
https://github.com/srbhr/Resume-Matcher
Goose:能在本地执行工程任务的 AI 编程 Agent
Goose 是 Block 公司开源的 AI 编程 Agent。它和传统代码补全工具的区别在于:补全工具通常只在编辑器里给建议,而 Goose 可以在终端中执行一整套工程动作,包括读写文件、运行 Shell 命令、执行测试、分析报错并尝试修复。
一个典型任务可能是:
帮我修复这个项目的测试失败问题,并在修复后重新运行测试。
Goose 的工作流更接近 AI 结对程序员:
sequenceDiagram
participant U as 开发者
participant G as Goose
participant FS as 文件系统
participant SH as Shell
participant T as 测试框架
U->>G: 描述工程任务
G->>FS: 读取相关代码
G->>SH: 执行命令
SH-->>G: 返回错误信息
G->>FS: 修改代码
G->>T: 运行测试
T-->>G: 返回结果
G-->>U: 汇报修改内容和验证结果
Goose 使用 Rust 编写,并且强调 MCP(Model Context Protocol,模型上下文协议)的扩展方式。MCP 的意义在于把外部能力标准化,例如数据库、云服务、文件系统、内部工具都可以通过统一协议暴露给 Agent。这样 Agent 不必为每种工具写一套特殊集成。
它还支持切换底层模型,例如云端大模型或本地模型。这样做可以减少对单一模型厂商的依赖,也方便根据隐私、成本、推理能力做选择。
适合场景:
| 场景 | 为什么适合 |
|---|---|
| 本地代码维护 | 可以读文件、改代码、跑测试 |
| 自动化修复小问题 | 适合 lint、测试失败、简单重构 |
| 工具链复杂的项目 | 可通过命令行和 MCP 接入更多能力 |
| 希望模型可切换的团队 | 避免固定绑定某个模型服务 |
不适合把它完全当成无人值守工程师。涉及数据库迁移、生产部署、大规模重构时,仍然需要人工审查命令和代码变更。
# 开源地址
https://github.com/block/goose
HumanLayer:给 AI 智能体加人工审批层
AI Agent 一旦拥有工具调用能力,就可能执行真实动作:发邮件、付款、改数据库、调用云服务、删除文件。工具越强,风险越高。HumanLayer 的定位就是在这些关键动作前加一道人工审批。
它是一个开源 SDK(Software Development Kit,软件开发工具包),通过拦截关键工具调用,让 AI 在执行危险操作前必须获得人工确认。
sequenceDiagram
participant A as AI Agent
participant H as HumanLayer
participant P as 人工审批
participant T as 外部工具
A->>H: 请求调用危险工具
H->>P: 发送审批请求
P-->>H: 同意或拒绝
alt 同意
H->>T: 执行工具调用
T-->>A: 返回结果
else 拒绝
H-->>A: 阻止执行并返回原因
end
适合加审批的操作包括:
| 操作 | 风险 |
|---|---|
| 发送外部邮件 | 可能泄露信息或发送错误内容 |
| 支付、退款、转账 | 直接产生资金损失 |
| 删除数据库数据 | 可能造成不可恢复的数据问题 |
| 修改生产配置 | 可能影响线上服务 |
| 调用第三方 API | 可能触发费用或合规风险 |
可以把 HumanLayer 看成 AI Agent 的“刹车系统”。大模型的系统提示词可以要求模型谨慎,但提示词不是强制执行边界;SDK 层的审批拦截更接近工程约束。
一个简化的伪代码可以这样理解:
def send_refund(user_id: str, amount: int):
# 真实业务动作:退款
pass
def agent_wants_to_refund(user_id: str, amount: int):
approval = request_human_approval(
action="send_refund",
payload={
"user_id": user_id,
"amount": amount,
},
)
if approval.approved:
return send_refund(user_id, amount)
return "操作已被人工拒绝"
重点不在具体函数名,而在控制点:AI 可以提出操作请求,但不能绕过审批直接执行高风险动作。
# 开源地址
https://github.com/humanlayer/humanlayer
怎么选择这些项目
按问题选工具,比按热度选项目更可靠。
| 你遇到的问题 | 更合适的项目 |
|---|---|
| 企业资料很多,想做可问答知识库 | WeKnora |
| 经常需要快速画流程图、架构草图 | next-ai-draw-io |
| AI 写代码总是不懂项目规则 | agents.md |
| 想围绕 PDF、网页、音视频做资料问答 | open-notebook |
| 团队任务系统太重、积压太多 | Fizzy |
| 想检查简历和岗位描述是否匹配 | Resume-Matcher |
| 想让 AI 在本地执行代码任务 | Goose |
| Agent 能执行危险操作,需要人工确认 | HumanLayer |
这 8 个项目覆盖了 AI 落地中的几个关键方向:知识库解决“资料太多找不到”,画图工具解决“表达流程太慢”,AGENTS.md 和 Goose 解决“AI 参与开发缺上下文和执行能力”,HumanLayer 解决“Agent 执行能力过强带来的风险”。真正投入使用前,最好先用一个小场景验证:能否部署、能否接入现有工具链、结果是否可控、维护成本是否能接受。