Kagi Search, human connection, and why LLMs are not a good search replacement
I switched to Kagi search maybe 1 to 2 months ago, and I’ve noticed a significant life quality improvement. The amount of AI slop web pages I have to click through before getting to a real answer has dropped significantly. Sadly, for certain searches I still get the AI slop summary pages, but it’s a lot more manageable since switching. The biggest surprise for me has been the friends I made along the way.
Kagi search exposes me to a lot more blog based solutions
I’ve found that searching for solutions to technical problems in Kagi brings me to many more blogs. Recently I’ve been learning Zig, coming from a mainly Rust/C++ background. As with any language, I’ve been searching for the idiomatic approach to solving different problems to make sure I understand the Zig “philosophy.” With Kagi I feel like I get taken to more blogs where I can read the struggles and solutions of real human beings.
One recent example was my struggle with parsing JSON in Zig, particularly around the std.json.Parsed type.
Nice posts from Karl Seguin1 gave me a good overview as well as a deeper dive into the Parsed type.
Most helpful was that it seemed like he had the same distaste about passing around a Parsed(T) instead of T and gave a decent solution.
This was a better solution than what ChatGPT recommended which I really appreciated.
Human connection through blogs
In addition to reading the actual unique voice and experience of a human being, I found that most blogs (including mine) have a reply by email option. I really wish I had saved the source, but some time ago I read a blog post telling people to respond via email when you see a good blog post. I’ve been making an effort to do it when I find a post that has been very helpful. Most times it’s just a short “Thank you for your post on X, it really helped me out with my issues!” Every time I’ve done this, I get a short response from the blog owner mentioning that they are happy their blog was helpful. It’s a pretty small bit of human contact, but I feel like it’s just a small positive interaction that brightens the internet wasteland. Now for my maybe more controversial take.
Why I don’t think LLMs are a good search replacement
I’ve refined a simple philosophy around LLMs after using them pretty much full time and trying to go down the Agentic Engineering™️ rabbit hole2. In my view, use of LLMs is a direct trade between current velocity and long term growth, with continual reliance dropping you down to the mean without you even realizing it. This trade is obviously not straightforward. I use LLMs and agentic tools daily in my job because keeping up velocity is important. Gone are the days when you can spend 1 week searching online/reading your code for the 100th time to try and find the issue (for better or worse). But I try to pull out the moments where the task offers growth potential and I have the time budget to spend.
In general, I think the safest use of LLMs is when you already know exactly what you want and you just need the clanker to implement or find the small tidbit of missing info. In the context of learning Zig, I’m not satisfied using LLMs because I don’t know what I want. I may know that I need to parse a specific JSON payload, but I don’t know what the right way to implement that is. With that in mind, I hesitate to just ask ChatGPT/Codex “How do I parse this specific JSON to get this result” for the following reasons:
- LLMs are designed to convince you. Many studies3 exist that show an LLM can basically convince anyone of anything.
- If you don’t have a strong opinion coming into LLM usage, you likely will just accept the LLM solution. Even if you have issues and try to refine the solution, you are still locked into the solution space provided by the LLM/your knowledge.
- That combined solution space is not necessarily the correct solution space.
That’s why I think doing real search and finding real sources has a better chance of giving you an optimal solution, since you are exploring a potentially larger solution space. You also avoid the whole issue of getting your understanding psyoped by the sycophancy machine. This only works though if the search provider is focused on providing good search instead of providing good ads or forcing LLM interactions4. Thank goodness for Kagi.
This only matters if you care
There are plenty of situations where I have to do something that I really don’t care about. Maybe I need to write a one-off script quickly, create a custom file parser for an atrocious file format, or just need some answer even if it isn’t the best answer. In those situations I use LLMs without hesitation. But I’m always honest with myself that using LLMs is sacrificing growth for convenience. And the particularly insidious part of this, is that you don’t know what you are giving up. While researching solutions for one specific problem, you may accidentally come across a transformative idea or a technical concept that may help with another problem.
https://www.openmymind.net/Reading-A-Json-Config-In-Zig/ and https://www.openmymind.net/Zigs-std-json-Parsed/ ↩︎
Here’s a blog post describing my descent and recovery from an AI doomer spiral: https://www.alexselimov.com/posts/let_no_crisis_go_to_waste/ ↩︎
Theoretical proof: https://arxiv.org/abs/2602.19141 and real world example: https://www.science.org/doi/10.1126/sciadv.adw5578. ↩︎