Limboy

Yak Shaving

Any seemingly pointless activity which is actually necessary to solve a problem which solves a problem which, several levels of recursion later, solves the real problem you're working on.

你看到路边有个人在剪羊毛,然后上去问他,你剪这羊毛是要做啥啊,结果他告诉你为了给汽车打蜡。Antfu 就是通过做这些看起来偏离原本工作的事情,开始了他的全职开源之路。

到最后,我们的 App 最终没有成功,但是我却收获许多我在一路上解决问题做出的各种项目以及参与开源的宝贵经验。i18n Ally 从最初的 vue-i18n 专用到现在支持超过 20 个主流框架,VS Code 下载量超过 6 万。VueUse 从最开始一个简单的工具集,到现在成为一个拥有 10 个成员,8 个生态库的 GitHub Organization。

AI-enhanced development makes me more ambitious with my projects

The thing I’m most excited about in our weird new AI-enhanced reality is the way it allows me to be more ambitious with my projects. As an experienced developer, ChatGPT …

This article describes how AI helped creating a util script that captures ChatGPT chat history into own server. AI is very good at handling general problem like how to handle CORS or how to intercept fetch. so as long as you have this kind of problem, AI can be very helpful to boost your productivity.

How to succeed in MrBeast production (Leaked PDF), this leaked onboarding document for new members of his production company is a compelling read. Very detailed, even if you don't want a successful Youtube career, there's still stuff you can take away.


About Mr Beast

I spent basically 5 years of my life locked in a room studying virality on Youtube. Some days me and some other nerds would spend 20 hours straight studying the most minor thing.

And the result of those probably 20,000 to 30,000 hours of studying is I’d say I have a good grasp on what makes Youtube videos do well.

Youtube is the future and I believe with every fiber of my body it’s going to keep growing year over year and in 5 years Youtube will be bigger than anyone will have ever imagined and I want this channel to be at the top.

People Related

I only want "A Players"

You’re either an A-Player, B-Player, or C-Player. There is only room in this company for A-Players. A-Players are obsessive, learn from mistakes, coachable, intelligent, don’t make excuses, believe in Youtube, see the value of this company, and are the best in the goddamn world at their job. B-Players are new people that need to be trained into A-Players, and C-Players are just average employees. They don’t suck but they aren’t exceptional at what they do. They just exist, do whatever, and get a paycheck. They aren’t obsessive and learning. C-Players are poisonous and should be transitioned to a different company IMMEDIATELY.

Work Related

Nothing Comes Before Your Prios

If the studio is burning down and you stop working to put out the fire and don’t get the lamborghini, THAT’S YOUR FAULT. (jokes haha) but seriously don’t let anything come before your prios.

Higher forms of communication.

If you spend any amount of time with James you’ll hear him bring up higher forms of communication a lot. Because it’s important and somehow very overlooked by most people. The worst thing you could ever do when you need something for your critical component is email someone at the company. The best is to talk to them in real life. It’s very important you know when to call people for stuff, grab them in real life, and when to text them. The lower the form of communication the more miscommunication you will face.

Don’t take anything at face value, always dig

Communication Lines

Ideally when communicating across departments you go up and then over. If you skip and just go below you prizemust then call and let the people in charge know.

It’s your fault, track the contractor

I can’t stand when people dump and forget their project on a contractor and then the day before the shoot blame them when it’s not ready. That’s on YOU, not the contractor.

you need to then decide whether or not it’s a critical component. If it is, you should also begin working on a backup and while working on a backup you should check in with JB every single day. Ask him to send videos everyday to spot problems early, hell maybe talk to him twice a day. I don’t care just don’t leave room for error. No excuses, stop leaving room for error.

Video everything

The questions get more and more detailed and all you have to go off of is what's in your mind. The rest of your production team also needs to start planning bits but they don’t know what it looks like and it’s a shit show. This is why we say video everything.

Video Related

How to measure the success of content

CTR(Click Thru Rate), AVD(Average View Duration), and AVP(Average View Percentage).

CTR

why does the title and thumbnail matter to me? Expectations is why. The title and thumbnail on the videos you will be producing set the expectations for the viewer for your video.

How can you know how to start your video if you don’t even know what expectations the viewers have of you?

AVD

As with almost every video on Youtube, the first minute has the most loss (go look). This is why we freak out so much about the first minute and go so above and beyond to make it the best we freakin can.

We also want to do something around the 3 minute mark called a 3 minute re-engagement. A re-engagement can be described as content that is highly interested that fits the story and makes people genuinely impressed.

Misc:

Brand Deals Are Content

BRAND DEALS ARE CONTENT! And when treated as such boosts retention. We need to make them in entertaining. Also, fun fact, the last CEO that sponsored a video said that the return was 1.7x the return they get on a NFL championship game ad.

This is Zach Weiner(Author of SMBC)'s AMA, someone asked about his creative process, here's his response:

Ideally, I spend the first 5-8 hours of my day learning science/math, then 3-4 hours writing jokes, then 2-4 hours reading a book, then at the end of the day I draw.

So yeah. Basically, the main thing is to get a lot of good input if you wanna have a lot of good output. Writer's block is bullshit. If you're putting in the time to intake info, process it, and sit at your keyboard fighting for good ideas, you'll never hit a wall.

Why books don't work

Designing media to reflect how people think and learn

The main point of this article can be summarized as follows:

To understand something, you must actively engage with it. However, non-fiction books make an implicit assumption: that people absorb knowledge by reading sentences. Lectures face a similar problem: conveying knowledge through words is difficult. To improve learning, there should be a new medium that embraces the idea of "actively engaging."

However, in my opinion, it is not the medium that matters, but rather the content that can transform a reader from a passive mode into an active one. Take Feynman's book, "Six Easy Pieces" for example. He describes the topics so well that you can visualize what is happening.

The lectures-as-warmup model is a post-hoc rationalization, but it does gesture at a deep theory about cognition: to understand something, you must actively engage with it. That notion, taken seriously, would utterly transform classrooms. We’d prioritize activities like interactive discussions and projects; we’d deploy direct instruction only when it’s the best way to enable those activities.

When books do work, it’s generally for readers who deploy skillful metacognition to engage effectively with the book’s ideas. This kind of metacognition is unavailable to many readers and taxing for the rest.

The main point of this article is to discuss how to use Anki to enhance long-term memory. The primary reason is that Anki aligns with the memory system known as Spaced Repetition. By using Anki, you can significantly improve your ability to remember information. In this article, the author describes how he adapted Anki to learn from the AlphaGo paper. Following this success, he expanded the strategy to broader domains.

The most important reason is that making Anki cards is an act of understanding in itself. That is, figuring out good questions to ask, and good answers, is part of what it means to understand a new subject well. To use someone else's cards is to forgo much of that understanding.

Indeed, I believe the act of constructing the cards actually helps with memory. Memory researchers have repeatedly found that the more elaborately you encode a memory, the stronger the memory will be. By elaborative encoding, they mean essentially the richness of the associations you form.

My cards are always one of two types: the majority are simple question and answer; a substantial minority are what's called a cloze: a kind of fill-in-the-blanks test.

Finally, he elaborated on the conflict between book notes and Anki. Creating Anki cards takes time and effort, which can slow down reading. Perhaps the best strategy is to take notes first and then, at the end of the day, turn these notes into Anki cards.

PS: 可以在这里查看中英双语版本: https://readit.vip/a/npBn7

Optimizing for speed is worthwhile. Life is short; if you don’t work quickly enough, you will complete fewer projects, which leads to fewer opportunities for success. Meanwhile, working at a fast pace allows you to dive into projects quickly and gather feedback, which is crucial for the success of our projects.

When I think about speed I think about the whole process - researching, planning, designing, arguing, coding, testing, debugging, documenting etc.

It's also really hard to get better at having good ideas because you get such little feedback. It might take a year to build out a complex idea before finding out if it's good or not, which means you get maybe 40 attempts in your career.

讲述了电影「里斯本丸沉没」背后的故事,方励这个人很有点意思。

Mckay Wrigley (@mckaywrigley)

“Will AI replace programmers?” Perfect take by Lex.

Lex 针对读者问到的「感觉自己的编程能力会/已经被 AI 取代,如何克服这种焦虑感」的回复,挺到位的。

  • ride the wave of code generating LLMs
  • become a big picture architect
  • constantly switch to the best AI tools & models
  • design with natural language 1st
  • don’t compete with the AI, use it to work better

核心思想是拥抱 AI,使其为自己所用。还有就是把自己从「程序员」的角色解放出来,向 CEO, Product Manager 转变。

以后仓库管理员也可以远程办公了···

Jeff Dean (@🏡) (@JeffDean)

Check out NotebookLM! Create a notebook, upload one or more sources (e.g. PDFs of research papers, your favorite PhD thesis, a newspaper article, etc) then click on 'Generate' to create a podcast of two voices talking about the content you've uploaded. https://blog.google/technology/ai/notebooklm-audio-overviews/

NotebookLM, Google 出的这款产品(目前还在内测,有区域和年龄限制),可以让你上传 PDF 文档、论文、文章,然后生成两人聊天的 Podcast,很方便。听了下聊天的效果,非常接近真人(英语)。

体验了下,非常震撼!真的就像两个人在讨论一本书!

作者通过 Cursor AI Editor 快速开发了一个原生 Mac App: VideoSearch,可以搜索视频中出现过的文字。除此之外连截图、说明文案、网页等都可以通过 Cursor 来完成。

该视频演示了他是如何使用 Cursor 来进行开发的,对于没太接触过 Cursor AI 编程的同学应该会有不少启发。

我之前一直纠结于 Xcode 不支持 Cursor,看了视频后,发现解决方案页挺简单的,就是把项目通过 Cursor 打开,然后在 Xcode 中运行,报错后,再回到 Cursor 让它解决。

「言叶之庭」有看过两遍,一直被新海诚精美的画面所吸引,相比之下其中的故事倒没留下太深的印象。听过木鱼水心的解说之后,才发现原来导演藏了那么多的巧思在里面,好的作品果然是可以一品再品的。

Andrew Huberman 关于多巴胺的一期视频,2 个多小时,非常推荐。以下是我的一些摘录:

Dopamine has everything to do with how you feel right now, an hour from now, your level of motivation, your level of desire, and your willingness to push through effort.

Dopamine is the primary determinate of how motivated we are, how excited we are, how outward facing we are and how willing we are to lean into life and pursue things. It's responsible for motivation, drive and craving primarily.

Dopamine is vitally important to movements

Dopamine impacts mood and motivation.

Many drugs and indeed many supplements that increase dopamine will actually make it harder for you to sustain dopamine release over a long periods of time.

How satisfying or exciting or pleasureful a given experience is, doesn't just depend on the height of that peak, it depends on the height of that peak relative to the baseline.

Just increasing your dopamine, it will make you excited for all things. it will make you feel very motivated, but it will also make that motivation very short-lived.

Dopamine doesn't work on its own. Neurons that release dopamine co-release glutamate, which stimulates neurons to be electrically active. it tends to increase our levels of alertness, readiness and desire to pursue things outside the confines of its skin.

If your dopamine is somewhere in the middle, how you feel depends on whether or not you had higher dopamine a few minutes ago or lower dopamine. you experience of life and your level of motivation depends on how much dopamine you have relative to your recent experience.

Chocolate will increase your baseline level of dopamine 1.5 times. sex (pursue or act) increase dopamine two times. Nicotine(smoked)/Cocaine increase dopamine two and a half times above baseline. Amphetamine will increase the amount of dopamine in the bloodstream 10 times above baseline.

As we start to engage with something more and more and what we say about it, what we encourage ourselves to think about it, has a profound impact on its rewarding or non rewarding properties.

Often times we are feeling good because we are layering in different aspects of life, consuming things and doing things that increase our dopamine. but afterward the drop in baseline occurs, and it always takes a little while to get back to our stable baseline.

There's a pool of dopamine that synthesized and you can only release the dopamine that's been synthesized. It's the readily releasable pool.

The problem is that dopamine is not just evoked by one of these activities, dopamine is evoked by all of these activities. And dopamine is the one currency of craving motivation and desire and pleasure.

The way that you replenish the releasable pool of dopamine is to not engage in these dopaminergic seeking behaviors.

Not expect or chase high levels of dopamine release every time we engage in these activities. intermittent reward schedules are the central schedule by which casinos keep you gambling. Intermittent schedules are the way that the internet and social media and all highly engaging activities keep you motivated and pursuing. That intermittent reinforcement schedule is actually the best schedule to export to other activities.

Just do the exercise. Don't do the exercise and expect dopamine to arrive. If you want to maintain motivation for school, exercise, relationships or pursuits of any duration in kind, the key thing is to make sure that the peak in dopamine, if it's very high, doesn't occur too often.

The whole basis of intermittent reinforcement is that you don't really have a specific schedule of when dopamine is going to be high or low. try removing multiple sources of dopamine release from activities that you want to continue to enjoy.

Taking ice baths, exposing oneself to cold water of various kinds can have tremendously beneficial results on your neuromodulator systems, including dopamine. it's a sustained rise in dopamine that took a very long time up to three hours to come back down to baseline.

The effort part is the good part, not the reward or trophy.

Concurrency Step-by-Step: A Network Request

When I was first learning to program I had absolutely no idea what I was doing. I was using C, and I remember desperately putting in * and & characters until things compiled. But, this was pre-Mac OS X. Upon running my horrifically incorrect programs, half the time the screen would become corrupted and the mouse would stop moving. I’d then have to reboot the whole machine via a physical switch. This was … frustrating.

这篇文章通过一个简单直观的场景(从网络加载图片并展示),演示了 Swift Concurrency 和使用 GCD 的差异。会涉及到基本的 Swift Concurrency 概念(如 @MainActory, isolation, async/await 等),没有太深入,但能知道大概是怎么回事,以及如何使用。对于刚接触 Swift 并发的同学来说,非常友好。

Neuroscientist's Tips for Long-Term Brain Health

  • Exercise, even just some walk(能提升心率的有氧运动). it can make your memory work better, improve your mood and improve the function of prefrontal cortex
  • The more people you are regularly interacting with the longer you are living. The strength of your social connections is what brings you happiness.
  • 冷热水交替浴,这个 Andrew Humber 在他的这期关于多巴胺的 podcast 中也有提到(冷水澡能把多巴胺的 baseline 提升到 3 倍,并且持续数小时)。
  • 冥想
  • 地中海饮食

在上一期的 Podcast 中,嘉宾提到了「地中海饮食」 (Mediterranean Diet),check 了下,它还是 the No. 1 Best Diet Overall

The Mediterranean diet is the No. 1 Best Diet Overall. It’s also a top-rated diet for those looking for a heart-healthy diet, a diabetes-friendly diet or to promote bone and joint health

中文的话,这篇文章我觉得讲得还蛮详细的,可以看下。

也可以看下这个视频了解下这些食材是如何分配到早餐、午餐和晚餐的。

Paul Graham 在这篇文章中提到了 "Founder Mode",与之对应的是 "Manager Mode",提出这个概念的背景是一次 YC 会议上的分享。

创业公司在进入增长期时,通常会有「好心人」站出来,让他们 "Hire good people and give them room to do their jobs.",听起来没啥问题,但通常结果都不太理想。

这里就涉及到了两种 Mode:Founder Mode 和 Manager Mode。有一条评论说得挺好的:Founders have to care in a way that managers do not. Founders have to learn things managers do not. Failure to a founder is dream-ending. Failure to most managers is job-ending. Managers 通常做的事情是:

Treat subtrees of the org chart as black boxes. You tell your direct reports what to do, and it's up to them to figure out how. But you don't get involved in the details of what they do. That would be micromanaging them, which is bad.

下次面试时,也可以问下 CEO 每天的 Routine,以此来了解他到底是 Manager Mode 多一些,还是 Founder Mode 多一些。

应用到数码世界的话,这个 Holding Pen 大概就是 Quick Inbox,可以一个快捷键呼出,记录下脑海中想到的事情。

Software estimates have never worked and never will

Since the dawn of computing, humans have sought to estimate how long it takes to build software, and for just as long, they've consistently failed. Estimating even medium-sized projects is devilishly difficult, and estimating large projects is virtually impossible. Yet the industry keeps insisting that the method that hasn't worked for...

为什么「给软件开发估时」这事不靠谱。因为软件开发很大一部分是与未知打交道(比如一个很小的 Bug,可能需要好几天才能找到头绪;一个小改动可能影响很多模块;很多边缘场景要考虑等等),未知的事物如何估时?

The fundamental problem is that as soon as a type of software development becomes so routine that it would be possible to estimate, it turns into a product or a service you can just buy rather than build.

把 Mac Mini 塞到 iMac G4,再定制一个屏幕,实在是太会玩了···

电商的美国游戏,靠卷赢不了

Temu 从来不只是一个关于电商的游戏,更是一个有关城市规划与国家发展的隐喻。

非常细致的一篇关于 Temu 进军美国的分析文章。从中可以一窥电商的工作原理、要点、成本项,以及 Temu 与美亚的差异化竞争。不得不说,电商真的非常复杂,要考虑的因素很多,非常考验战略和执行。

Temu 作为后起之秀,在美国远没有亚马逊那样完善的仓储和物流体系。所以它更多依赖于以轻小件的形式,直接走空运发到美国,然后交给仓储和物流公司。这一方面让 Temu 要比亚马逊多几倍的时间送货,而 75% 的美国消费者愿意支付额外费用以更快地获得商品。

为了解决物流问题,亚马逊依靠十余年的时间在全美建设了 110 个配送中心。有的大型配送中心比故宫还大,里面有一千五百个全职员工。

而 Temu 完全相反,这些加入半托管的卖家们发现发任何信息都有人秒回、有专职人员会教他们如何上新、如何维护链接;Temu 选品的买手也会提前通知这些卖家,告诉他们平台下一步会推什么。有商家说 Temu 的运营和他保证,只要能每天上新一定量的 SKU,就会一直给首页流量。也有商家说 Temu 的运营会指导商家如何上架那些亚马逊不收的商品,整体上要比亚马逊灵活很多。最重要的是 Temu 会帮商家买流量、引流量;亚马逊只会给自己买流量,而平台上的商家则基本分不到亚马逊花钱买广告所带来的流量。

一面是热情似火的 Temu 客服,凡事靠微信都能商量清楚;另一面是干什么都麻烦的亚马逊。中国卖家自然更倾心 Temu。

这也为什么 Temu 在相当长的一段时间里只允许中国和香港地区的卖家开店,因为这足够了。Temu 用中国工厂、亚马逊不要的库存和原本就是他们供应商的中国大卖,以极致的低价从贝佐斯的国度撕开了一条裂缝。

大家都在利用同样的工厂生产商品、同样的卖家在卖货、同样的物流运到美国,这里最耗费成本的关卡也类似:最后一英里。因为美国人可以为了降低成本把一切都转移到境外,唯独最后一英里是实打实的需要在美国境内处理的美国问题。电商游戏追求便宜,把一切成本剥开后,最后一英里依然屹立在成本中心。Temu 无法在这里把全部环节都变成它在国内的供货商那样任其摆布。任何人想要把这个游戏玩的更好,就一定要面对这个问题。

人工成本的挑战是送货的效率,但效率无法无限提高。归根结底,挑战的本质是美国城市规划。Temu 无法像拼多多在国内卷卖家一样的靠卷来解决这个问题,因为最后一英里不是个商业问题,是社会问题。社会问题就像是天气,要面对它。

在美国人眼中 Temu 不光是便宜,而是定位为一个便捷可靠的在线市场,满足消费者的生活便利需求。这样 Temu 在美国有了丰富的用户圈层。但总体而言在美国低收入家庭更有可能在 Temu 购物。任何凭借更低的价格争夺市场份额的平台,受众都注定如此。

快递员们互相分享在 Hood 配送的经验。不过就算是新人,他很快也能学习到其中的技巧:因为几乎每个 Hood 里的订单都会在备注里写上注意事项。最常见的是绝对不要放在前门,永远不要,放了很快就会被人偷走。实际上,Hood 里的很多业主回家都不使用自家前门。

这就是 Temu 和所有电商都要面对的问题。这也是为什么妄想靠机器人和无人驾驶来全面解决送货是不可能的。面对如此复杂的情况却依然认为可以靠机器取代人,要么是愚蠢,要么是无知。既然能融到资的创始人并不愚蠢,那就只能说明大部分生活在良好社区的科技从业者从来不知道这个国家另一部分居民的现实生活。

温暖的艺术品,有想住进去的欲望

Top | KEIJI ASHIZAWA DESIGN

芦沢啓治建築設計事務所

东京的一家设计工作室,成立于 2015 年,网站和作品都蛮喜欢的

「通过改 Bug 的方式来面试」,很好的想法,一方面 Debug 是程序员每天都会做的事,Debug 能力很能体现程序员的功力,最大的问题就是准备题目会比较辛苦。

Here’s a repo you’ve never seen before. Here’s how to build and run the tests in this repo. There’s a bug: what we’re observing is X, but we want to see Y instead. Find the bug and maybe even write some code to fix it.

OAuth from First Principles - Stack Auth

Stack Auth is the open-source Auth0 alternative.

有接触过 OAuth 开发的,应该都会有这么一个疑问:这玩意儿为什么要设计得这么复杂?这篇文章描述了把这个设计的演进过程。其核心思想是假设用户的环境是不安全的,有木马或病毒可以浏览历史记录,监听网络请求,在这种情况下,OAuth 协议依然能保证安全可靠。

第 6 步的 PKCE(Proof Key for Code Exchange) 可能会有点费解,因为在这一步 OAuth Provider 要返回最终的 Access Token,这个 Token 相当于账号和密码的替代,因此在给出之前,先要确认申请方是不是最开始的 OAuth 请求发起者,而不是中间人。流程是这样的,一开始发起申请时,就给 OAuth Provider 一个 hash 过后的随机值,这个随机值只有发起者知道,木马看到这个 hash 后的随机值无法推断出原始的随机值。这个 hash 过后的随机值到了 OAuth Provider 后,会先存着,当需要返回最终的 Access Token 时,会要求发起方传入一开始的随机值,通过公开的 hash 函数 hash 后,对比两个值是否一致,是的话,说明是一开始的发起者。

The secret inside One Million Checkboxes

Teens wrote secret binary messages in One Million Checkboxes. I found them.

非常有意思的一个故事。作者(还在上大学)花了两天时间做了一个「百万格子」(有点像 reddit 的 r/place),每个格子是一个 checkbox,可以 check 和 uncheck,每个 box 的状态会同步到当前在线的其他玩家。功能其实非常简单,但后来的发展就有点戏剧性了。

37 Signals 内部的产品研发周期(Cycle)是 6 周。足够长,可以从 0 开始,实现某个 Feature,又足够短,可以让你看到 Deadline 就在那。6 个星期之后,不会马上进入下一个开发周期,而是会有 1 - 2 周的间歇期,这段时间可以从项目中抽离出来,做一些 side projects,研讨下个周期要做的事,重构代码等等。

Once a six week cycle is over, we take one or two weeks off of scheduled projects so everyone can roam independently, fix up something, pick up a pet project, reflect, and generally wind down prior to starting the next six week cycle. Ample time for context switching. We also use this time to firm up ideas that we’ll be tackling next cycle.

Jason(CEO) 会在每个 Cycle 开始前发一份公告,罗列这个 Cycle 要解决的一些问题,不会涉及到具体的实现或设计,主要描述问题现状以及解决后的状态。

这篇文章 详细阐述了 Six Week Cycle 到底是怎么运作的,比如 Idea 是怎么来的,Pitch 是什么(可以理解为 RFC),谁决定要做哪些 Feature,Jason 和 DHH 是如何参与的,等等,非常详细。

The Baked Data architectural pattern

I’ve been exploring an architectural pattern for publishing websites over the past few years that I call the “Baked Data” pattern. It provides many of the advantages of static site …

Baked Data Architectural Pattern, 这个内容分发模式好像挺不错的,除了有 SSG 的诸多优势外,还支持执行 Server 代码,可以分发到各个 Serverless 平台(如 Vercel)。

核心原理是将 Data 分离出来,打包成一个只读的 Sqlite,放在 Server 端读取。需要额外做的一件事是当数据更新时,要同时更新这个 Sqlite 文件,并重新部署。

Building search-based RAG using Claude, Datasette and Val Town

Retrieval Augmented Generation (RAG) is a technique for adding extra “knowledge” to systems built on LLMs, allowing them to answer questions against custom information not included in their training data. …

这篇文章 详细阐述了如何用 Anthropic 结合 SQLite 的 full-text search 来实现 RAG,流程如下:

  1. 通过 Anthropic 的 tools 功能,将用户的搜索拆分为查询关键字。
  2. 通过这些关键字对 SQLite 进行全文检索得到按 rank 排序的匹配结果。
  3. 将匹配结果作为 assistant 的内容(即私有数据)结合用户的初始问题发送给 Anthropic。
  4. 返回的结果即包含了私有数据集的 LLM 回答结果。

主要使用到了 tools 将语义化的内容结构化,然后用了 full-text search 而不是 vector search,相对其他的 RAG 实现,这种方式好像更简单,不知道效果怎么样。(中文的效果一定不太好,因为 SQLite 的全文索引对中文不友好)。