Cool Stuff I read over the past month¶
LLMs as Dangerous Lossy Compressions¶
- LLM as a lossy encylopedia analogy
- Don't expect LLMs to have knowledge of specific facts, expect them to be able to act on facts that are shown.
In the words of Simon Willison:
treat it as a tool that can act on facts presented to it.
- This analogy combines perfectly with this idea of ChatGPT as a sort of lossy jpeg of the web's knowledge with the added factor that because the output is in text the 'bluriness' of it's content is not immediately recognizable
- This analogy however dismissive can be used to minimize people's tendency to anthropomorphize LLMs like ChatGPT
- There are bluriness that are acceptable when one restates the same thing with different words, and then bluriness that masks hallucination which is dangerous
- Compression seems to be some sort of tool to reaching through AI because the greatest level of it involves understanding the text
- An example of that is a calculator which through enforcing the rules of arithmetics, can 'compress' infinite examples in a file containing math operations and so on.
- This same logic would apply to knowledge of the web compressed into a slice of wikipedia, the more one knows about a topic, the more words it can remove from a wikipedia page because it can easily reconstruct it.
- Funny enough, when it comes to language, lossy compression seems smarter that lossless because it gives the impression that the person speaking actually understood the materia rather than regurgitating the source
Context Engineering Notes¶
Context Engineering is the discipline of designing and building dynamic systems that provides the right information and tools, in the right format, at the right time, to give a LLM everything it needs to accomplish a task.
- The wording of context engineering is a useful abstraction for the new types of challenges involved in building useful ai based applications
- Context engineering seems to be a craft of filling the LLM's context window
- Everything that goes into the 'context' of LLMs:
- System prompt; User input; chat history; long term memory/retrieved information; Tools & definitions; Responses from tools; structured outputs; global state/context
-
Context engineering is about selecting the right context and making it fit into the context window (I would also say is about managing it to keep or maintain performance at a useful level)
AI as Augmentation¶
- Gen AI can be a tool to support creativity but it's not creative on its own
- Interesting term 'Cognitive Shortcut Paradox' discussing how even though AI can make a good engineer faster, the skills to become a 'good engineer' require not using it, therefore, leveraging AI at the early stages of one's development might hinder their ability to truly learn and become a good developer/programmer/engineer.
- Quotes I liked from this article:
- Experience builds judgement required to evaluate, debug, and improve AI-generated code.
- the missing skills stay hidden until the gap is too wide to close
- If developers turn to AI at the first sign of difficulty, they skip the work that builds the pattern recognition and systematic thinkging senior engineers depend on The question isnt' whether to use AI in learning, but how to use it in ways that build rather than bypass the critical thinking abilities that separate effective developers from code generators.
- Quotes I liked from this article:
Claude Skills¶
- Agents skills are composable resources to augment agents like claude
- A skill is a directory containing a SKILL.md file that contains organized folders of instructions, scripts, and resources that give agents additional capabilities.
- Skills have a first level of 'progressive disclosure' which allows it to disclose just enough information to the agent so that it knows when each skills should be used without loading all of the information.
- Skills allow you to run code and extract data from files like pdfs without loading all of that into context (nor the python script nor the pdf)
- To develop skills:
- evaluate on recurring tasks; identify gaps of performance
- structure splitting a big SKILL.md file into preferably mutually exclusive files (like this forms.md file from the pdf skill)
- Skills docs and cookbook
Agentic Engineering¶
- Concept of 'blast radius' which is like the extend of the influence of a code modification done by some AI agent
- Interestingly this developer does not use git worktrees, an approach that has seen some popularity among aclaimed AI devs like Simon Willison
- Here is how to use git worktrees with claude code
- Claude Code has more features but this dev argues for why Codex is a better coding agent, arguments involve: bigger ctx window, more efficient token usage, message queuing, faster and codex seems to be better at understanding language according to him
- Cool visual shared by the author shows that the optimal balance between complexity and time spent writing to the coding agent seems to involve:
- Using 8 agents at same time
- complex orchestration with multiple checkouts
- chaining agents together
- custom subagent workflows
- library of 18 different slash commands
- large full-stack features