Ask

agent says done after 3 of 9 steps, is silent early stopping normal

Also look at how much tool output you are stuffing back in. Three steps of full file contents can be 20k tokens and it pushes the instruction out of the region the model is paying attention to. Truncate tool results to what the next decision needs - a diff summary rather than the whole file, 20 rows rather than 2,000 - and the drift gets noticeably better on its own.

66 · in/agents-and-mcp ·

Told to lift for bone density at 48 - what did that look like week to week for you?

Gently disagreeing with heavy from the start, which is where the popular advice goes. Coming from nothing at 48, muscle adapts in weeks and tendons and connective tissue adapt over months, so the first eight weeks want to be about technique and consistency with loads that feel almost too easy. I skipped that and got a very sore elbow that cost me more time than the eight weeks would have. Heavy is the destination, not the starting position.

189 · in/womens-lifting ·

2.76s cold start in production, 130ms locally - prisma client on the node runtime

You have already found it - 980ms of ORM start-up and 410ms of connect are 50% of your cold path and neither is your code. Three things in order of payoff:

  1. Stop opening a TCP connection per cold instance. Use a driver that talks to the database over HTTP or a WebSocket through a pooler rather than a raw socket. That 410ms is DNS plus a TLS handshake plus the Postgres startup exchange, and over HTTP it collapses to one round trip you were paying anyway. On our worst route it went 410ms -> 90ms.
  2. Check what the 480ms of require is actually loading. Run the build with the bundle analyser and look at the server chunk for that route. Ours was pulling a date library, an entire SDK and a logger with 40 transports because one utility file re-exported everything from an index barrel. Deleting the barrel took 480ms to 150ms.
  3. Then reconsider the ORM on that route. A hand-written query through a thin driver has effectively no start-up cost. You do not need to rip it out everywhere - one hot route is enough.

What you cannot fix is the 620ms of runtime init. That one you buy your way out of with minimum instances if the platform offers it.

198 · in/cold-starts ·

agent called search_docs 38 times in one run and burned $4.80 before max_steps

The loop is doing exactly what you built. Nothing in the transcript tells the model it already tried that query, and nothing tells it the results were bad - a tool that returns three irrelevant chunks with status: ok looks identical to a tool that worked. So it rephrases and tries again, forever, which is what a person would do if every attempt came back looking plausible.

Four changes, cheapest first:

  1. Dedupe at the tool boundary. Hash the arguments, and on a repeat return already called at step 4, result was unchanged instead of running the search again. Costs nothing and kills nine of your 38 immediately.
  2. Make failure legible. Return the retrieval scores and say so: 3 results, top score 0.31, below threshold 0.6. A model that can see it is failing will stop; a model that cannot, will not.
  3. Give it a way out. Add an explicit answer_with_gaps or escalate_to_human tool and say in the system prompt that using it after two failed searches is the correct behaviour. Without a legitimate exit, the only action available is another search.
  4. Cap consecutive identical-tool calls at 3 in the loop itself, not in the prompt.

The real fix underneath all of that is retrieval. If step 1 had returned the refund policy, none of this happens.

164 · in/agents-and-mcp ·

Six weeks of daily voice chat with an AI and I still don't know if it counts

Going to push back on the top answer a little. Yes it accommodates you, but below B2 the binding constraint for most adults isn't accuracy, it's total minutes of speech ever produced. Plenty of people who've studied for three years have spoken for maybe four hours cumulatively. A partner who never judges you gets that number up by an order of magnitude, and volume fixes an embarrassing amount on its own. The correction loop you're missing is cheap: record yourself, listen back the next day, write down the three things that made you wince.

64 · in/fluency ·

cron ping every 4 minutes to stay warm, or just run a container for 1,400 req/day

The ping keeps one instance warm. Your traffic is bursty, so at 09:02 when eleven people arrive at once the platform spins up ten more instances and ten of those requests eat the full 1.4s anyway. You will have paid for 4,000 extra invocations a month to fix the experience of exactly one user, which admittedly is the one who complains.

For 1,400 requests a day the container is the honest answer. It is $7, there is no cold start to reason about, and you can stop thinking about this permanently. Warming tricks earn their keep when traffic is high enough that a warm pool actually absorbs the burst, and yours is not.

114 · in/cold-starts ·

40 tools on one mcp server or split into five, schemas eat 11k tokens

Second the descriptions point, and add: name them so a stranger could sort them into piles. warehouse_run_query and tickets_search beat run_query and search by a distance, because the prefix carries domain information into every mention of the tool in the transcript, not just into the definition block.

Costs you nothing, no architecture, and it shows up immediately in the wrong-tool rate.

96 · in/agents-and-mcp ·

model passes a comma string where my tool schema says string[], zod to json schema

If your provider supports a strict or constrained decoding mode for tool arguments, turn it on and this class of bug largely stops existing, because the sampler cannot emit a string where the grammar demands an array. The catch is that strict modes usually support a subset of JSON Schema - no $ref, limited unions, sometimes every property required - so you may end up making the same simplifications anyway. Which is the actual lesson: the schema shapes that models handle well and the ones constrained decoding supports are almost the same list.

71 · in/agents-and-mcp ·

Shirts gape at the bust button on every single button down, fixes that survive a wash?

I am going to disagree with everyone recommending alterations. If every single button down you own does this, you are paying a tailor to correct a garment that was never drafted for your body, and you will pay again on the next shirt and the one after. I stopped buying menswear-cut shirts entirely and switched to knit tops with collars and to shirts with a bit of stretch and princess seams for client days. Nobody has ever commented, my mornings got simpler, and I stopped budgeting for alterations altogether.

97 · in/wardrobe ·

Starting Italian at 54: how much does the age thing actually cost you?

This matches what I see teaching adults. In the first six months the fifty-year-olds usually outperform the teenagers badly, because they already know what a subjunctive is and they actually do the homework. The gap the research talks about shows up much later and mostly in places you said you don't care about.

24 · in/fluency ·

Opened 200g of sencha in March and it tastes like hay, how long do you actually keep green tea?

The freezer works and I have done it for years, but only if you are disciplined. Portion into small airtight bags with as little air as possible, and when you take one out let it come to room temperature while still sealed before opening. Open a cold bag in a warm kitchen and moisture condenses onto the leaf, which is worse than doing nothing. Never refreeze one you have opened. Done properly I have opened a bag a year later that was recognisably the tea I bought.

84 · in/loose-leaf ·

Does the Feynman technique work on things you don't understand yet, or only on things you nearly do?

Explaining to an actual person beats explaining to a notebook or a rubber duck, because a person asks the question you skipped. I run this with students in pairs: eight minutes to explain one topic, and the listener's only job is to ask 'why' twice and 'what would happen if that weren't true' once. The three questions are always the ones the explainer had quietly avoided. It's also much harder to bluff out loud than on paper, which is precisely the value.

94 · in/explain-simply ·