今日 GitHub 趋势榜单呈现出鲜明的技术多元化特征:AI 智能体与前沿模型研究占据主导位置,ByteDance-Seed 的 Bagel、craft-ai-agents 等项目聚焦大模型应用落地;基础设施方面,libp2p 的 P2P 网络库与 Slither 智能合约静态分析工具持续受到开发者关注;前端与生产力领域同样亮点频出,tailwindcss-typography、Waza 与 Dayflow 等项目带来实用价值。整体来看,从底层协议到上层应用,从安全分析到日常效率工具,开源社区正在多线协同推进创新,展现出旺盛的技术生命力。
tailscale/tailcat — 去除控制平面的Tailscale点对点隧道
Tailcat 的设计思路非常直白:保留 Tailscale 数据平面中成熟可靠的 magicsock 部分,砍掉对 Tailscale 控制平面的依赖,让任意两台机器之间建立 WireGuard 加密隧道,但连接所需的元数据完全通过带外方式交换。它的产品形态像极了 netcat,因此命名上也借用了"cat"的后缀。一端运行 tailcat 服务端,拿到一个短地址(如 tcomF...),另一端把这个地址喂给客户端,就能像 stdin/stdout 那样双向传输数据,或者做 TCP 端口转发,乃至承载 SSH 服务。
技术层面,magicsock 负责 NAT 穿透、DERP 中继、节点发现等关键能力。初始连接通过 DERP 服务器(用户可选用官方 rate-limited 中继,或自建 derper)引导,随后 magicsock 会尝试升级为端到端 UDP 直连。整个项目以 Go 编写,可作为 CLI 工具使用,也可作为库(github.com/tailscale/tailcat)被引入。打包方式相当友好,提供了静态二进制、Deb、RPM、Homebrew、Nix、conda-forge、Arch AUR、Docker 镜像以及实验性的 WASM 网页版本。
它受到关注的核心原因是"剥离控制平面"这个切角。Tailscale 完整方案需要账号、ACL、协调服务器,对于临时性、点对点、低摩擦场景来说过重。Tailcat 把场景压缩到"我只想和一台机器安全地说几句话",把协调成本降到零——地址用任意通道传过去即可,IM、邮件、口头都行。这让它在远程调试、应急连接、CI 节点间打洞、临时 SSH 暴露等场景里具备独特价值。和 ssh -R、ngrok、bore、rathole、frp 等传统反向代理工具相比,Tailcat 的差异在于:连接是 P2P 而不是中转、加密基于真正的 WireGuard 协议而非自签 TLS、不需要部署服务端守护进程、不修改系统路由表与 DNS,纯用户态运行。也有人会把它和 wstunnel、chisel、sshuttle 比较,但 Tailcat 借用了 Tailscale 多年沉淀的 NAT 穿透算法,对复杂网络环境的鲁棒性显著更高。浏览器侧 WASM demo 虽然只能走 DERP 中继,但已经实现了"网页 ↔ CLI"互通,体现了一个独立的端到端故事。
JerryZLiu/Dayflow — Mac 上本地优先的自动工作日志
Dayflow 把"屏幕录制 + 视觉理解"组合成一整套自动日记系统。它周期性截取屏幕、调用所选 AI 模型进行分析,然后按时间线生成活动卡片,每张卡片写明"在这段时间里你实际在做什么"。围绕这条主轴,它又派生出每日站会(GitHub 风格的活跃度网格 + 昨日亮点 + 今日重点 + 卡点)、每周回顾(专注时段、App 分布、注意力中断节点)、与日志对话(自然语言查询"周三下午我改了什么")以及可导出的 Markdown 时间线。
设计哲学上最值得称道的是"local-first"。所有录像、时间线和数据库默认存储在 ~/Library/Application Support/Dayflow/,用户随时可以删除。AI 这一层做成可插拔:Ollama、LM Studio 等本地模型支持完全离线;Gemini、ChatGPT、Claude 则通过本地 CLI 或 API key 调用,敏感数据可控。用户能根据自己的隐私偏好、成本和质量权衡,切换后端而不被锁定。这种"本地优先 + 模型可选"的策略和很多 SaaS 类时间追踪产品(RescueTime、Toggl、WakaTime)形成鲜明对比——后者通常上传云端,按应用分类而非按上下文语义理解。
技术上,它依赖 macOS 14+ 的 Screen & System Audio Recording 权限来获取内容,需要识别屏幕切换、应用上下文、多窗口层级等。视觉理解模型并不直接处理原始视频,而是按时窗采样图片作为上下文,让 LLM/VLM 概括活动语义。存储上使用本地数据库而不是上传云端;自动清理策略允许用户配置保留期限,避免长期录像撑爆磁盘。安装路径上提供 DMG 和 brew install --cask dayflow 两种主流方式,源码在 Xcode 中可直接编译运行。
它近期频繁出现在趋势榜上的原因是它精准击中了一类用户的真实痛点——他们想要"每天 8 小时在做什么"的客观记录,但不愿安装被云端后端持续监听屏幕的应用。比起 GitHub Copilot Workspace 那样的"AI 工作流"产品,Dayflow 关注的是"回看",是一种复盘型而非前瞻型工具;和 Reflect、Mem 等 PKM 类应用相比,Dayflow 不要求用户主动写笔记,而是从屏幕里抽取事实。对于独立开发者、研究者、远程团队成员而言,这种"无感的自动复盘"价值很高。
ByteDance-Seed/Bagel — 7B活跃参数的多模态统一基座
BAGEL 是字节跳动 Seed 团队开源的多模态基础模型,整体采用 Mixture-of-Transformer-Experts (MoT) 架构,拥有 7B 活跃参数、14B 总参数。它在标准多模态理解榜单上超过了 Qwen2.5-VL、InternVL-2.5 等当前主流开源视觉语言模型;在文生图质量上能与 SD3 这种专项生成模型同台较量;更关键的是它在图像编辑、自由视觉操控、多视角合成、world navigation 等"世界建模"任务上展现出明显优势——这些是单一图像编辑模型通常不具备的能力。
技术路线上,BAGEL 采用双编码器分别抽取像素级(VAE)与语义级(ViT)特征,融合后送入 MoT 主干,通过 Next Group of Token Prediction 的训练范式预测语言或视觉 token 组。预训练数据涵盖万亿级跨模态 token,跨越语言、图像、视频和网页。团队在论文与模型卡中观察到一种涌现现象:多模态理解与生成能力在训练早期就出现,基础编辑稍晚,而"智能编辑"(需要复杂推理的视觉操控)则在更大规模训练后才出现——这暗示高级多模态推理建立在基础能力之上。社区还贡献了 Dockerfile、Windows 安装指南、量化推理(DF11、INT8)、ComfyUI 节点等周边生态,使本地部署门槛大幅降低。
它受到密集关注的根源在于"统一"这件事在 2024–2025 年间仍是多模态领域最核心的开放问题。多数系统把理解(Qwen2.5-VL、InternVL)和生成(SD3、Flux)拆成两套模型,BAGEL 则尝试用一个 MoT 同时承载两类能力,且在两端都达到 SOTA 水平。它和最近出现的 Janus、Chameleon、Show-o、Transfusion 等同类型"统一多模态"工作相比,亮点在于规模与数据量更大、专家化设计更细致、在编辑类任务上的推理能力显著领先。围绕它的 Gradio 应用、Hugging Face Space、Discord 讨论区也形成了活跃社区,Bad Cases 收集活动说明团队在持续迭代。对于研究者与开发者而言,BAGEL 是少有的、能在同一权重下同时跑通"看图说话、画图、按照指令改图"的开源选择。
tw93/Waza — 工程习惯化作 AI 代理技能
Waza(技,わざ)在日语中意为"武术技巧——练成本能的招式",这个项目将资深工程师的工程本能固化为 AI 代理可直接调用的技能库。它不是简单的 prompt 集合,也不是某个 IDE 的专属插件,而是为 Claude Code、Codex、Cursor、Gemini CLI、Copilot 等多种宿主设计的跨平台中立技能集合。每个技能都是一个完整文件夹,内含 SKILL.md 描述、参考文档、辅助脚本和从真实失败中提炼的避坑要点。
核心功能围绕八个技能展开:/think 用于动手前质疑需求与设计,产出可被另一个代理落地的决策级方案;/ui 负责前端界面生成,强调截图驱动的美学迭代而非套用默认;/check 在任务完成、合并或发布前审查 diff、处理发布与推送流程并以证据验证;/hunt 是系统化的调试技能,要求根因确认后再动手;/write 改写中英文文案,剔除僵硬套话;/learn 提供六阶段研究流(收集、消化、列纲、填充、精炼、自评发布);/read 读取 URL 与 PDF,按需返回简洁摘要或 Markdown;/health 审计代理健康度。
设计哲学强调"约束而非脚本",每个技能明确陈述目标结果、不可逾越的红线和验证方式,再让模型自主选择路径,这种克制随模型能力提升会产生复利收益。技能之间可以链式调用,但每一次过渡都需要用户手动触发,确保节奏掌握在人手中。安装方式灵活,既支持通过 npx skills 一次性部署到 ~/.agents/skills 共享目录让所有能读该目录的代理直接拾取,也支持 Claude Code 与 Codex 各自的原生 plugin 系统,还能以 ZIP 形式装入 Claude Desktop。
Waza 的关注度来自 AI 编程代理领域的真实痛点:模型能力越强,产出越容易滑向平庸,因为缺乏工程纪律的"脚手架"。它不去替代人的判断,而是把"先思考再动手"“先复盘再发布"这类本能固化为可复用工作流。状态行插件与可选规则包(英文纠错、反模式护栏、路由提示)作为独立开关存在,互不耦合,curl 拉取的脚本自带 review 提示与 SHA 校验。
横向比较,Superpo(截断处提到的同类项目)侧重模型评估,Continue.dev 与 Aider 偏 IDE 与终端协作,而 Waza 的差异在于跨平台中立、只关注通用工程习惯而不绑定特定语言栈,以及 MIT 协议下极强的模块可组合性。
tailwindlabs/tailwindcss-typography — 为无掌控 HTML 注入排版美学
Tailwind CSS 官方排版插件,针对那些开发者无法直接掌控的 vanilla HTML——比如 Markdown 渲染、CMS 抽取、富文本编辑器输出——提供开箱即用的优美排版基础。它的核心抽象是 prose 类,使用方式简洁到极致:把内容容器包在 <article class="prose"> 中就能获得整套由专业设计师手工调校的字体、行高、标题间距、列表呼吸感与代码块填充。
设计哲学建立在 Tailwind “utility-first” 的根基上,又通过 modifier 模式解决了原子化类难以表达"上下文样式"的痛点。gray scale 修饰符(prose-slate、prose-zinc、prose-stone 等)允许内容主题与项目主色系对齐;size 修饰符(prose-sm 到 prose-2xl)覆盖从 14px 到 24px 的五档字号;prose-invert 一键切换到手工调校的暗色模式。element modifiers 把粒度下沉到具体标签,prose-headings、prose-a、prose-img 等前缀让开发者直接在 HTML 中指定图片圆角、链接颜色等细节,无需额外 CSS。
技术实现紧跟 Tailwind 版本节奏:在 v4 时代只需在主样式表中加一行 @plugin "@tailwindcss/typography",v3 用户则需在 tailwind.config.js 中通过 plugins 数组注册。底层利用 Tailwind 的 plugin API,通过 addComponents 注册 prose 样式,再利用 addVariant 暴露 prose-* 前缀。整套默认样式由专业排版师手工调校,特别在响应式断点下字号关系、标题与正文的视觉平衡、嵌套列表与代码块的呼吸感上都远超任何自动生成方案。
该项目长期占据热门榜的原因在于它命中了一个长尾但高频的场景:开发者很少能完全掌控所有 HTML 的产出,却又希望它们看起来专业。Tailwind 自身不擅长"长内容"的整体排版,typography 恰好填补空白。与同类项目比较,Bootstrap 的 Reboot 锁定 Bootstrap 设计语言,GitHub Primer 偏向代码托管场景,Notion 风格排版过度具体化;Windi CSS 与 UnoCSS 社区也曾推出过类似插件,但覆盖度、文档完善度与维护节奏都不及官方版本。
社区扩展性方面,typography 支持自定义颜色主题、CSS 变量覆写,文档详尽到列出每个 modifier 对应的目标选择器并提供大量示例。对于想打造文档站、产品发布页、技术博客或知识库的团队来说,它几乎是低成本的必需品。
craft-ai-agents/craft-agents-oss — 文档优先的代理协作桌面
Craft Agents 是 craft.do 团队开源的桌面应用,专门为高效使用 AI 代理而打造,把"以文档为中心"的工作流引入代理编程领域。它同时构建在 Claude Agent SDK 与 Pi SDK 之上,取两者之长并补其短,主打多任务并行、零配置接入任意 API 或服务、共享会话与流畅的图形界面,是 Apache 2.0 协议下高度可改造的"Agent Native"软件。
核心功能覆盖了代理编程的完整生命周期。Multi-Session Inbox 让多个会话并行进行,配合 Todo → In Progress → Needs Review → Done 的状态工作流和重要标记,解决终端中会话混乱的痛点;Sources 系统支持接入 MCP 服务器(Linear、GitHub、Notion、Craft 等)、REST API(Google 全家桶、Slack、Microsoft)、本地文件系统甚至直接喂 OpenAPI 规范;Permission Modes 提供 Explore(只读)、Ask to Edit(询问)、Auto(自动批准)三级权限,通过 SHIFT+TAB 循环切换;Skills 系统存储在工作区级别,支持从 Claude Code 一键迁移;Automations 则按标签变更、定时、工具调用等事件自动启动代理会话。
设计哲学上强调"prompt 即配置”——连接 Linear/Gmail/Slack 时不需写配置文件或走设置向导,只要告诉代理"把 Linear 加为 source",它会自动查找公开 API 和 MCP 服务器、阅读文档、配置凭证。Craft Agents 团队自己就是用 Craft Agents 写 Craft Agents,没有任何代码编辑器介入,这种自举式的开发方式本身就是 Agent Native Software 的最佳证明。
技术层面它是一个基于 Electron 的跨平台桌面客户端,macOS、Linux、Windows 一行命令即可安装,也能从源码通过 bun 启动。后端是 monorepo 结构,包含 desktop、server、shared 等多个包;Headless Server 模式允许把核心服务跑在远程 VPS,桌面应用降级为 thin client,适合需要 24/7 在线会话或重计算任务的场景。多 LLM 连接支持 Anthropic、Google AI Studio、ChatGPT Plus、GitHub Copilot、OpenAI API 等,可为不同工作区设置不同默认模型。
受关注的原因主要在于三点:AI 代理桌面工具需求爆发但缺乏成熟方案;craft.do 把内部高效工具开源,社区获得了在真实场景中打磨过的产品;以及它真正解决了"代理终端难以协作与分享"的痛点。与 Cursor、Continue.dev、Zed AI、Claude Desktop 等同类项目相比,Craft Agents 的差异化在于深度整合文档工作流、极简的 source 连接机制、完整的多会话管理 UI,以及 Apache 2.0 协议带来的高自由度。
crytic/slither — 智能合约静态分析利器
Slither 是由 Trail of Bits 团队推出的 Solidity 与 Vyper 智能合约静态分析框架,全部以 Python 编写,专注于帮助开发者高效发现代码漏洞并增强对合约的理解。
核心功能上,Slither 构建了一套从源码到漏洞报告的完整流水线。它能将 Solidity 源码解析为自身定义的中间表示 SlithIR,这是一套对控制流、数据流高度友好的 IR,使静态分析规则能在统一的抽象层上运行。基于 SlithIR 框架,Slither 内置了数十种高精度的漏洞检测器,覆盖重入、权限错误、整数溢出、未初始化变量、ABI 编码冲突、影子变量、自毁函数等高危场景,并明确标注影响等级与置信度,让审计人员快速筛选真正值得关注的告警。它还提供打印机模块,用于以图表、函数摘要、继承关系等形式直观展示合约结构,方便审查者掌握全貌。面向专业安全研究员,Slither 暴露了 Python API,允许用户基于 SlithIR 编写自定义检测器,将复杂的领域知识沉淀为可复用的分析脚本。
设计上,Slither 秉承"低误报、快速度、易集成"的工程哲学。它对公开 Solidity 代码的解析正确率达到 99.9%,平均每个合约的执行时间不到一秒,这种性能与正确性的平衡对于 CI 中大规模扫描至关重要。Slither 天然依赖 crytic-compile 适配 Hardhat、Foundry、Brownie、Truffle 等主流开发框架,因此可以在用户已有的构建产物之上直接分析,避免重复编译;它也支持单文件分析与 solc-select 配合,覆盖更多调试场景。
Slither 持续受到关注,根源在于以太坊生态对安全的刚性需求。每一次 DeFi 攻击事件都会让社区重新审视静态分析的价值,而 Slither 凭借长期积累的检测规则和稳定的更新节奏,已经成为 Solidity 审计的事实标准之一。它与 Mythril、Manticore、Echidna 等动态符号执行与模糊测试工具形成互补:前者侧重快速覆盖已知模式,后者挖掘深层逻辑漏洞。在 CI/CD 流程中,Slither 通过 slither-action 直接接入 GitHub Code Scanning,把告警显示在 PR 审查界面,配合 --checklist 生成的 Markdown 报告,几乎成为开源项目上线前的最低门槛检查项之一。
如果要在同类工具中定位,Slither 处于"广覆盖 + 高速度"的生态位。Mythril 通过符号执行发现深层路径但代价高昂;MythX 是商业化云服务,覆盖广但定制性受限;Securify 偏学术研究;Solhint 更聚焦于代码风格而非安全。Slither 凭借 Python 生态的低门槛、API 的高扩展性以及与开发框架的紧密集成,在专业审计团队与个人开发者中都保持着不可替代的地位。
libp2p/go-libp2p — 模块化 P2P 网络协议栈
go-libp2p 是 libp2p 协议族的 Go 语言参考实现,由 Protocol Labs 维护,脱胎于 IPFS 项目。它本身不是一个独立的网络协议,而是承载了 P2P 系统所需的关键能力组合,包括节点身份、传输层复用、节点发现与路由、安全通道、多路复用、流协商、发布订阅等,使开发者可以"按需组合"地构建去中心化应用。
在协议层面,go-libp2p 是一组松耦合 Go 包的有机集合:libp2p 本身是"装配入口",负责组合各种子模块;具体能力则分散在 transport(QUIC、TCP、WebSocket、WebRTC 等)、security(Noise、TLS)、multiplex(Yamux、Mplex)、discovery(mDNS、rendezvous、Kademlia DHT)、peerstore、connmanager、pubsub 等独立模块中。这种"协议即模块"的设计让上层应用可以根据部署环境选择合适的传输与安全方案——浏览器节点只能使用 WebTransport,而服务器节点可能优先选择 QUIC,而核心协议语义保持一致。go-libp2p 还提供一些相对独立的子项目,例如 go-libp2p-kad-dht、go-libp2p-pubsub 等,社区可以独立升级关键算法而无需等待主仓同步。
go-libp2p 的设计理念源自对过去十余年 P2P 系统建设痛点的反思:过去的项目往往把网络层与业务层强耦合,导致协议难以升级、难以跨语言复用。libp2p 试图把"网络栈"抽象出来,把身份、传输、安全、复用、发现、路由这些基本能力定义为可插拔接口,并在接口之上规范协议行为,使不同语言实现(Rust、JS、Go)之间能够互联互通。这种"规范 + 多实现"的模式与 HTTP、gRPC 等互联网协议的成功路径相似,让 libp2p 具备了较强的演进韧性。
受到广泛关注的原因主要在于其影响力已经溢出 IPFS 生态:Filecoin 项目的 Lotus、Ethereum 信标链的 Prysm 客户端、IOTA Smart Contracts 的 Wasp、Celestia 数据可用性节点、Mina 轻量级区块链、Status 去中心化通信、Flow 区块链等都将 go-libp2p 作为底层 P2P 网络组件。一个被如此多区块链基础设施采纳的网络栈,其重要性不言而喻。go-libp2p 还附带预构建的 Grafana 仪表盘,让运维团队可以在生产环境中直接观测网络行为,相关的 Flaky Tests 仪表盘也方便追踪测试稳定性。
与同类项目相比,go-libp2p 强调协议完整性与跨语言互操作,相较于偏向研究性质的 devp2p(以太坊早期协议)和强业务绑定的 libp2p Rust 实现,go-libp2p 凭借更成熟的上游维护与广泛的生产验证,成为事实上的参考实现。go-libp2p 社区明确要求贡献者在 PR 中披露 AI 辅助使用情况,这种对工具使用的克制也是其在长期维护中保持代码质量的一种体现。
tile-ai/tilelang — 高性能 GPU 内核领域语言
Tile Language(tile-lang)是 tile-ai 团队推出的一种简洁领域专用语言,目标是用 Python 风格的语法编写 GPU 与 CPU 高性能内核,覆盖 GEMM、Dequant GEMM、FlashAttention、LinearAttention 等典型算子。底层构建于成熟的 TVM 编译栈之上,把张量分块、内存布局、流水线调度、张量化访存等底层优化抽象成易于表达的 Python 原语,使开发者既能享受高级语言的开发效率,又能拿到接近手写 CUDA/HIP/Metal 的运行性能。
核心功能层面,tile-lang 提供了一种"以 tile 为中心"的编程模型:开发者使用 @T.prim_func 装饰器声明带有分块维度、缓冲形状与精度的内核函数,再通过 T.gemm、T.copy、T.mma_gemm_blockscaled 等原语显式描述计算与数据搬运。编译器会自动完成算子融合、内存布局推断、流水线和向量化等变换,并在多后端(CUDA、ROCm、Metal、LLVM CPU)之间选择合适的代码生成路径。近期发布的多后端语言方言把静态 CUDA、ROCm、Metal 后端的语义纳入统一抽象,开发者可以用同一份 tile-lang 内核在不同硬件上运行,大幅降低跨平台移植成本。
设计上,tile-lang 的核心思路是"以可读性换取可优化性"。TVM 本身具备强大的调度原语,但学习曲线较陡;Triton 选择了更激进的隐式调度策略,把分块与流水线藏进编译器。tile-lang 试图走中间路线——显式暴露分块、流水线、内存作用域,让高级用户精准控制硬件行为,同时借助 Pythonic 语法和类型推断降低心智负担。从最新动态看,Blackwell SM120 的 NVF4 block-scaled MMA、Apple M5 上的 Metal 4 cooperative-tensor GEMM、DeepSeek V3.2 的稀疏 MLA 反向等前沿算子都被快速纳入示例库,说明 tile-lang 正在成为连接研究界与生产部署的桥梁。
受到持续关注的原因有几方面。LLM 与扩散模型对自定义内核的需求急速增长,FlashAttention 系列、DeepSeek 系列等都在寻找既灵活又高效的算子开发方式;Triton 与 tilelang 都提供了 Pythonic DSL,相较于传统 CUDA 模板大幅降低了门槛,而 tile-lang 凭借更细粒度的硬件控制能力吸引了一批追求极限性能的工程师;配套工具持续完善,LSP 提供了 buffer 形状、dtype、作用域的 inlay hint 和 hover 文档,Pass Visualizer 让用户可视化每一个编译变换,IR Lower Trace 与 Pass Diff 帮助定位优化过程中的语义偏差,这些都让 tile-lang 不只是一个玩具,而是可以承担生产任务的算子开发平台。
与同类项目比较,TVMScript 是 tile-lang 的父辈语言,能力更全面但更复杂;Triton 以易用性取胜但对 AMD 与 Apple 平台的支持仍处于追赶状态;CUTLASS 提供极致的 CUDA 性能但要求 C++ 模板专家;MLIR 类项目(如 IREE、XLA)更关注整个编译图的端到端优化。tile-lang 的定位介于"易用的 DSL"与"高性能编译器"之间,在中文 AI 基础设施社区中有着独特的吸引力。
趋势小结
本期榜单勾勒出三条交织的技术主线。AI 落地是当之无愧的主轴:ByteDance-Seed 的 Bagel 多模态基础模型、tile-ai 的深度学习专用语言 tilelang、craft-agents-oss 开源智能体框架,串联起从底层模型到上层 Agent 的完整栈,反映出大模型正从研究演示走向工程化与产品化。
网络与基础设施层面同样值得关注。tailscale/tailcat 持续探索零配置组网体验,libp2p/go-libp2p 则深耕去中心化 P2P 协议栈,二者呼应了分布式连接在隐私与跨域协作场景下的长期需求。
与此同时,开发者工具与垂直场景也在稳步打磨:tailwindcss-typography 完善前端排版生态,tw93/Waza 与 JerryZLiu/Dayflow 聚焦终端效率与个人工作流,crytic/slither 则持续守护智能合约安全。这些项目共同印证了一个趋势——技术正向纵深推进,AI 能力加速渗透的同时,底层协议与开发者体验也在扎实演进,二者并行不悖,共同塑造下一阶段的开源版图。