[分享] Tapestry - 用 Agent 管理你的网络知识库,告别书签地狱 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
InkXPath

[分享] Tapestry - 用 Agent 管理你的网络知识库,告别书签地狱

  •  1
     
  •   InkXPath 3 月 16 日 1288 次点击
    这是一个创建于 38 天前的主题,其中的信息可能已经有所发展或是发生改变。

    大家好!我是一个 agent 相关的研究者,也是一个萌新 quant ORZ ,想来推广下自己做的小工具

    项目简介

    不知道大家有没有这种困扰:

    • 在知乎、HN 、Reddit 、X 上看到好内容就收藏,结果书签越来越多,根本找不回来
    • 想系统地整理某个技术话题的资料,但手动复制粘贴太累了
    • 保存的链接过段时间就 404 了,或者被作者删了
    • 想把多个平台的讨论串起来看,但每个平台的格式都不一样

    为此真正将这些零散的页面转为知识和生产力,又不想在本地部署功能过于成熟的 AI 知识库(感觉光配置就要折腾好久...),于是我做了这样一个相对简单的工具 Tapestry ,中文名可以叫织锦(感觉挺贴切的)。简单说,它是一个 AI 原生的技能包,让你通过和 Claude Code (或其他 Agent 框架, OpenClaw, Codex 等应该都支持)对话,就能:

    1. 一键爬取:丢个链接,自动抓取完整内容(包括评论、元数据)
    2. 智能整理:AI 自动分析内容,归类到你的知识库对应主题下
    3. 持久保存:本地存储,永久可访问,不怕内容消失
    4. 可视化浏览:生成静态网站,像看书一样浏览你的知识库

    repo 链接:https://github.com/NatsuFox/Tapestry

    看起来知识库 UI 和终端演示都无法预览,请前往 repo 了解详情

    使用示例

    下面有些例子,都是可以直接跑通的(我用的是 opus-4.6 with max effort ,跑通 workflow 完全没压力)。当然我之后也会不断添加 crawler 实现,争取支持更广泛的数据源,向 yt-dlp 这样的大作看齐。

    出于个人偏好吧,比较喜欢可扩展,但同时结构又非常清晰简洁的设计(可能也是因为太早期,功能太少...)。这样开源以后,自己做定制化什么的也都会很方便。

    下面是一些使用场景示例:

    场景 1:追踪技术讨论

    "摄取这几个 HN 讨论: https://news.ycombinator.com/item?id=123 https://news.ycombinator.com/item?id=456" "综合这些讨论,找出共同观点" 

    场景 2:归档研究资料

    "摄取这个知乎问题下的所有高赞回答" "在知识库中创建新主题:机器学习基础" "把这些回答组织到新主题下" 

    场景 3:内容策展

    "摄取这个博主的所有文章" "成这个博主的内容摘要" 

    其实场景是很多的,怎么用都行。现在 Agent 已经足够智能,我所做的也是将更复杂的/重复性的任务做好定义而已。过程中,AI 会自动爬取、分析、整理成一篇结构化的笔记。如果笔记积累到一定程度,就可以自动构建一本书出来。为了便于查看这样的知识库,我也写了一个前端页面,实时从本地数据中构建。

    功能特性

    更具体来说,目前这个项目支持:

    • 多平台支持:知乎、X/Twitter 、小红书、微博、HN 、Reddit 、通用 HTML
    • 三层架构:摄取(原始数据)→ 订阅源(规范化)→ 综合( AI 分析)
    • 书籍式知识库:自动生成主题、章节、索引,像看书一样浏览
    • 可视化前端:一键生成静态网站,本地浏览你的知识库
    • AI 原生:为 Claude Code 、OpenClaw 、Codex 等框架设计
    • 智能合并:Auto 模式会根据内容积累情况自动决定何时更新知识库,避免频繁合并的性能开销

    安装上,当作一般的 skill 就行了,各种 agent 框架,只要兼容 agent skills 规范,就都是一样的。

    不过我这个和一般的独立 skill 其实也有区别,主要就在于是一个 skill bundle ,抽取了共享的代码实现、profile 、配置等等,这就引出了一些目前的设计范式问题和一些个人思考。我看近期一些比较火且类似范式的项目,都还没有很标准化的设计。结尾我会详细探讨。

    具体的安装命令如下:

    # 克隆仓库 git clone https://github.com/NatsuFox/Tapestry.git cd Tapestry # 链接到 Claude Code (或其他框架,比如 .codex/skills/, .clawd/skills/) ln -s "$(pwd)/skills/tapestry" ~/.claude/skills/tapestry # 让 AI 帮你安装依赖 # 在 Claude Code 中输入: "安装 Tapestry 的依赖" 

    agent 会自动检测你的环境,生成安装计划,征求你同意后自动安装必要的依赖(比如 playwright )。这也是单独设计的一个 skill ,期望能用 agent 的本体智慧提高跨平台兼容性。

    这个项目刚起步,之前一直以来的习惯是,喜欢自己开发点工具,放到本地来用,也不开源(研究相关的代码除外)。但前段时间也是见证了社区的汹涌力量。既然也是我日常要用的,为什么不聚起来有同样需求且有能力和兴趣的网友一起来推进呢?现在这样的时代,涉及到 AI Vibe 的工作流,最大的瓶颈就在人本身。目前我也还没有过这样看到项目迅速成长的经历,所以想要试试看。

    为此,非常欢迎朋友们:

    • Star 支持一下
    • 提 Issue 反馈问题
    • 分享使用场景和建议
    • 贡献代码(特别是新平台爬虫)
    • 完善文档

    最后

    充斥着过剩自我意识的不一定正确的思考,赶时间的朋友可以直接跳过

    这个项目的初衷很简单:我想要一个能帮我管理网络知识的工具,而不是让我被书签淹没。尤其是那些零散的知识、页面、链接,日复一日,也积累了很多了,然而从未仔细学习过 XD ,我觉得知识库是缓解人在 AI Vibe 链路中瓶颈作用的重要工具,尤其是定制化的知识库,因为可以加快知识的吸收摄取。使用 AI 工具的效果,目前看很大程度上还是取决于使用者自己的认知水平和知识积累的。

    关于这种 skill bundle 的设计,主要受到 ARIS 这个项目的启发。目前规范的 agent skills 接口定义,还不支持(就是没有规范说明)如何处理多个 skill 之间共享代码、配置、profile 等的问题。Claude Code 虽然支持以 plugin 的形式引入,但毕竟只有它一家支持,而且也不是很美观。所以我现在的设计是把 sub-skill 包在 skill bundle 里,这个 bundle 本身也定义为一个 skill ,但是是用来驱动整个流程的。这导致用户无法直接调用 sub-skill (嵌套的 skill 不会被识别),但实测完全可以通过 bundle skill 路由到 sub-skill ,现在大模型已经足够聪明,来做这些随机应变。如果不这样设计,就要直接把包内的零散 skill 都拷贝到 .claude/skills/ 下,再配合大量软链接指向共享实现。这实在太丑了。

    因为 skill 等的存在,尤其是现在如此火热的生态,我觉得 OpenClaw 这些其实还是很有用的,并不完全是炒作。就像操作系统内核一样,提供了接口,给了 skills, memory 和 personality 这些新范式充分的自定义的灵活性。很多感兴趣的人也可以通过这样一个早期的玩具,提前窥探、适应甚至改进 AI 大流行之后的人机交互模式。考虑到 agent skills 的接口规范足够简单,所以可预见的将来,skill 应该会像天然跨平台的 app 一样,成为 agent 生态中的重要一环。而这个 agent 具体是 claude code, codex, openclaw, nanoclaw 还是什么别的,其实都不太重要。

    过段时间也会发布用于 A 股市场各种操作的 skill bundle (目前这个 repo 也已经 init 起来并 public 了)。至于为什么做这个,首先是我觉得炒股还是挺有意思的,其次是发现很多已有的 stock agent 框架,似乎都喜欢在内部自己再实现一个 agent ,导致用你家的,也要重配一遍,用他家的,也要重配一遍,确实是麻烦。如果能实现为 skill bundle ,就也如上所言,可以拿着这套 skill 走天下了,管它什么 agent 。而且我很喜欢那种可积累的、可自我成长甚至能自我迭代的 skill ,而非钉死的工作流。所以我后面计划做的 skill bundle 都会是这样的风格,争取制造一种越用越爽的体验。Tapestry 就是第一个(本地积累笔记、知识库)。

    有些嗦,其实还是来推广自己的项目的,欢迎感兴趣的朋友们使用,点点 star 或是一起讨论 :)


    P.S. 项目目前处于早期访问阶段,可能会有一些 Bug 和不完善的地方,欢迎随时反馈 近期我也在全力推进,毕竟自己也着急用哈哈

    P.P.S. 第一次在 V2EX 上发帖,如有不当之处欢迎大家指正

    2 条回复    2026-03-17 17:21:09 +08:00
    fds
        1
    fds  
       3 月 17 日   1
    挺好,帮你 star 。
    我目前用 skill 管理工作日志,可以直接记录今天的 git commit ,挺方便。就是有点儿慢。
    网页我一般用 Chrome 里的插件转存到 Bear 里,带图片,但后面就没有继续处理了……主要还是没想好整理成什么样子。技术类的文章过期比较快,每次直接问 AI 感觉更快些。
    InkXPath
        2
    InkXPath  
    OP
       3 月 17 日   1
    @fds 感谢朋友支持,关于 git commit 这个,我个人感觉,可以看看是 commit 本身慢,还是 skill 指导创建日志时候的冗余操作太多了。对于技术类的日常知识,其实没必要这样进行整理。我这个主要是看知乎专栏,一些微信公号,文章写的比较长,且感觉有助于增长知识体系,再用这个工具统一收纳。并且它是语义和知识层面的整理,不是简单的链接罗列。图片我试过让 agent 先做详细描述再加入正文,但感觉过于费 token 了... 所以权宜之计还是先嵌入到正文合适位置算了。目前 agent 对于多模态的支持,据我所知是有很大提升空间的。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5298 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 40ms UTC 05:51 PVG 13:51 LAX 22:51 JFK 01:51
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86