[HN Gopher] Anti-patterns while working with LLMs
___________________________________________________________________
Anti-patterns while working with LLMs
Author : mkagenius
Score : 52 points
Date : 2025-11-28 17:16 UTC (5 hours ago)
(HTM) web link (instavm.io)
(TXT) w3m dump (instavm.io)
| sharkjacobs wrote:
| This post is a mess. The best advice is clear and specific, and
| this is neither.
|
| The examples are at best loosely related to the points they're
| supposed to illustrate.
|
| It's honestly so bad that I cynically suspect that this post was
| created solely as a way to promote click3, in the first bullet,
| and then 4 more bullets were generated to make it a "whole" post
| CGMthrowaway wrote:
| The five anti-patterns (or remedies, rather)-
| 1. Don't re-send info you've already sent (be resourceful)
| 2. Play to model strengths (e.g. generating an image of text vs
| generating text in an image, or coding/executing a string
| counter rather than counting a search string) 3. Stay
| aware of declining accuracy as context window fills up 4.
| Don't ask for things it doesnt know (e.g. obscure topics or
| outside cutoff window) 5. Careful with vibe coding
| meander_water wrote:
| Yeah I was hoping for a lot more from the title.
| isodev wrote:
| Perhaps we can add that using LLMs for logical, creative or
| reasoning tasks (things the technology isn't capable of doing) is
| an anti-pattern.
| johnfn wrote:
| I use LLMs for those purposes all the time and they seems to
| work for me.
| qsort wrote:
| What would be examples of tasks of that type? I hate hype as
| much as the next guy, but frankly I don't think you can support
| that assertion.
| xgulfie wrote:
| It is at the very least an anti-pattern in the same way
| hiring an assistant to do the work for you is an anti-pattern
| shermantanktop wrote:
| I agree, moving into management is definitely an anti-
| pattern.
| pan69 wrote:
| I use LLMs as a sounding board for logical, creative or
| reasoning tasks all the time as it can provide different points
| of view that make ME think about a problem differently.
| Yoric wrote:
| In my experience, LLMs work pretty nicely as rubber ducks, for
| logical, creative or reasoning tasks. They'll make lots of
| mistakes, but if you know the field, they are often (not
| always, though) easy to detect and brush off.
|
| Whether that's worth the environmental or social cost, of
| course, remains open for debate.
| epolanski wrote:
| > reasoning tasks
|
| Please provide a definition of reasoning.
| fluoridation wrote:
| Reasoning is the manipulation and transformation of symbols
| (i.e. stand-ins for real objects) by well-defined rules,
| often with the object to find equivalences or other classes
| of relationships between seemingly unrelated things.
|
| For example, logical reasoning is applying common logical
| transformations to propositions to determine the truth
| relationship between different statements. Spatial reasoning
| is applying spatial transformations (rotation, translation,
| sometimes slight deformation) to shapes to determine their
| spatial relationship, such "can I fit this couch through that
| doorway if I rotate it in some way?"
|
| Reasoning has the property that a valid reasoning applied to
| true data always produces a correct answer.
| Scotrix wrote:
| I played a lot with LLMs over the last year and built a multitude
| of products with it and it's always just the same bottom line
| outcome: - be specific - keep it small - be precise when adding
| context - don't expect magic and shift deterministic requirements
| to deterministic code execution layers
|
| All this is awfully painful to manage with current frameworks and
| SDKs, somehow a weird mix of over-engineered stuff while missing
| the actual point of making things traceable and easy changeable
| once it gets complex (my unpopular personal opinion, sorry). So I
| have built something out of my own need and started to offer it
| (quite successfully so far)to family & friends to get a handle on
| it: Have a look: https://llm-flow-designer.com
| pedropaulovc wrote:
| This post resonates a lot with me. I've been experimenting with
| Claude Code to write code that interacts with the SolidWorks SDK.
| It is both extremely complex (method calls with 15+ bools,
| doubles, strings; abbreviated parameters; etc) and obscure. It
| has been like pulling teeth. Claude would hallucinate methods,
| parameters etc.
|
| I tried using Context7 MCP with the SolidWorks docs but the
| results were not satisfactory. I ended up crawling SW's
| documentation in HTML, painstakingly translating it to markdown
| and organizing it to optimize greppability [1]. I then created a
| Claude skill to instruct CC to consult the docs before writing
| code [2]. It is still stubborn and sometimes does not obey my
| instructions but it did improve the quality of the code. Claude
| would need 5 to 10 rounds of debugging before getting code to
| compile. Now it gets it in 1 to 2 rounds.
|
| [1] https://github.com/pedropaulovc/offline-solidworks-api-docs
|
| [2] https://github.com/pedropaulovc/harmonic-
| analyzer/blob/main/...
| willvarfar wrote:
| I have had both frustration and joy working with AI. Just some
| anecdata:
|
| I have found it is far better at understanding - and, with
| prodding, determining the root causes of bugs - big sprawling
| codebases than it is at writing anything in even simple code
| bases.
|
| Recently I asked an AI to compare and contrast two
| implementations of the same API written in different languages to
| find differences, and it found some very subtle things and
| impressed me. It got a lot wrong, but that was because one of the
| implementations had lots of comments that it took at face value.
| I then wrote a rough spec of what the API should do and it
| compared the implementations to the API and found more problems.
| Was a learning experience for me writing specs too.
|
| I repeated the exercise of comparing two implementations to track
| down a nasty one-line bug in a objc -> swift port. I wasn't
| familiar with the codebase, or even remember much about those
| languages, so it was a big boon and I didn't have to track down
| people who owned code until I was fairly sure that the bug had
| been found.
|
| Also recently I asked an AI to compare two sets of parquet files
| and it did sensible things like downloading just bits of them and
| inspecting metadata and ended up recommending that I change some
| of the settings when authoring one of the sets of parquet files
| to dramatically improve compression. It needed esc and prodding
| at the halfway point but still it got there. Was great to watch.
|
| And finally I've asked an AI a detailed question about database
| internals and vectorising predicates and it got talking about
| 'filter masks' and then, in the middle of the explanation,
| inserted an image to illustrate. Of 'filter masks' in the PPE
| sense. Hilariously wrong!
| butlike wrote:
| Can someone espouse some positive LLM use? Correlating data seems
| useful, but...
|
| ...I've been negative on LLM use recently. I've somewhat mentally
| decided an LLM is a google search which tries to make you feel
| good (like you're collaborating with other people), and if you
| strip that away, you get essentially a (admittedly decent)
| wikipedia search on a topic. The data correlation can give new
| insights, but I'm struggling to see how an LLM is creating
| anything _new_. If the LLM is fed it's own correlated data, it
| gets confused after a while (e.g. context poisoning or whatever).
|
| So if I strip away the platitudes, isn't an LLM just a wikipedia
| search which gets confused after a time to most people, and a
| research assistant which might lie to you (by also having the
| context get confused) after a time to researchers?
| hamasho wrote:
| > For example, the other day, it completely forgot about a
| database connection URL I had given it and started spitting
| someone else's database URL in the same session.
|
| Something similar happened to me. Our team managed multiple
| instances for our develop environment. I was working with the
| instance named <product>-develop-2, and explicitly told Claude
| Code to use that one. $ aws ec2 describe-
| instances ... <product>-develop # shared develop
| instance <product>-develop-2 # a development instance
| where a developer can do anything <product>-develop-3 #
| another development instance <product>-staging
| <product>-production
|
| Claude used the correct instance for a while, and wrote multiple
| python one-off scripts to operate on it. But at some point,
| without any reason, it switched the target to the shared one,
| <product>-develop. I should have checked the code more carefully,
| but I didn't pay enough attention to the first few lines of
| dozens lines of code where all config were written, because it
| seemed always the same and I was mostly focuced the main
| function. import boto3 import os ...
| AWS_REGION=xxx AWS_PROJECT=yyy
| EC2_INSTANCE=<product>-develop # <- at some point this changed
| without any reason S3_BUCKET=zzz ... def
| main(): # <- all my attention is here # ~100 lines of
| code
|
| As a result, it modified the shared instance and caused a little
| confusion to my team. Luckily it wasn't a big issue. But I was
| very scared if it targeted the production, and now I'm paying
| most attention to the config part rather than the main logic.
___________________________________________________________________
(page generated 2025-11-28 23:00 UTC)