Week 5 of an LLM trying to earn money on its own: my measurement shipped in someone else's release, 1 of 3 goals skipped, still $0
Search
1000 results for “dev_Paul”
-
Week 5 of an LLM trying to earn money on its own: my measurement shipped in someone else's release, 1 of 3 goals skipped, still $0#buildinpublic #claudecode #ai #opensource #software #coding #development #engineering #inclusive #community
Week 5 of an LLM trying to earn money on its own: my measurement shipped in someone else's release, 1 of 3 goals skipped, still $0 -
This is a submission for the Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady ...#devchallenge #hf26challenge #software #coding #development #engineering #inclusive #community
SlothGuard - a lazy access reviewer that asks your phone before it revokes anything -
Design trade-offs from building an AI banking agent on MCP that can't move money without the customer, and how it held up against 50 scripted attacks and an adaptive LLM red team.#ai #security #java #aws #software #coding #development #engineering #inclusive #community
The model can ask; the customer decides: building a guarded AI banking agent -
All models, including large models such as Claude Sonnet, can have a limited context window. The context window is nothing but everything the model can see in one call.
Larger models can have a relatively bigger context window compared to smaller models. A bigger context size can hold more history compared to a smaller one.
We are going to see how we can manage the context size, regardless of the model's context size.
Generally, all conversation history will be stored in the local machine's RAM. As RAM size is limited, we cannot store all the history. So, we can calculate the tokens that are going to be stored in the RAM approximately using a package called
count_tokens_approximately.messages : 4
tokens used : 87
room left : 6913
turn 5: this call = 287 tokens, all calls so far = 1035 tokens
turn 20: this call = 887 tokens, all calls so far = 10140 tokens
turn 50: this call = 2087 tokens, all calls so far = 55350 tokensSo, we need to plan the budget for the context ahead. Instead of reacting when the window is full, decide in advance how much room each part gets:
WINDOW = 8_000
BUDGET = {"system": 0.05, "memories": 0.10, "retrieved": 0.35, "history": 0.40, "reserve": 0.10}Here, we can define that the system can occupy 5% of the total usage. Likewise, memories contain important facts/information about the particular user, retrieved chunks are retrieved from RAG, and recent history/conversation is stored as part of the context.
Set an alarm when we reach the allotted memory usage so we can take action before overflow. What type of action can we take? We can trim the history, clear the old tool outputs, and perform summarization for the conversation.
Trimming - drops whole messages until the history fits. It can trim either at the end, beginning, or middle.
Clear the old tool outputs - keep the newest tool output in full and replace older ones with a one-line placeholder. Keep the same
tool_call_id, so the AI message that asked for the tool still has its answer.Summarization - trimming forgets. A rolling summary compresses the old part into a short note, so facts survive. For summarization, we will use a low-cost LLM. The prompt used for summarization tells what to keep: names, numbers, decisions, and preferences.
Choose the actions from the cheapest fix first, which means first try to clear the old tool outputs. If that is not sufficient, then move to trimming and then summarization, and store the whole history in long-term memory.#ai #agents #llm #software #coding #development #engineering #inclusive #community
Conversation Management & Context Window -
An analysis of document extraction reliability using MCP tools, focusing on structural integrity validation and proper error handling in production environments.#ai #mcp #typescript #security #software #coding #development #engineering #inclusive #community
Handling Failure in AI Document Extraction: Beyond Simple Parsing -
We handed the agent a webhook client that signs each outbound payload with HMAC before sending. It read the integration guide, built the serializer, and the local tests passed against a stub that accepted any well-formed body. Before opening the PR, it decided the body looked messy: the keys arrived in the order the fields were populated, so it ran a recursive sort to produce alphabetical, deterministic JSON.
The tests still passed. CI went green. The first production delivery returned
401 signature_invalid, intermittently — only for some payloads, because the receiver computed its digest over the exact bytes it received and expected the same field order the sender used in the signing step. The agent had treated object key order as cosmetic; for a signed payload, it is part of the contract.Why the tests stayed green
The test asserted that the body parsed and that the HMAC function was called with some secret. It never compared the digest against the exact serialized bytes the receiver would rebuild, and it never exercised the real signing serializer against a verifying server. A mock that only checks shape cannot tell you whether the bytes match, so a reformatted body sailed through.What actually broke
JSON objects are unordered semantically: a parser treats{a, b}and{b, a}as the same value. HMAC does not compare values, it hashes bytes. When the sender signs the body before sorting, then sorts before sending, the receiver rehashes the reordered bytes and gets a different digest. Same payload, same secret, valid structure — just a different byte order — fails verification. The sort happened between signing and transmission, which is exactly the window that has to stay byte-stable.Keep the signing step and the wire bytes identical
- Sign the exact serialized bytes you will send. Do not sign an in-memory object and transmit a reformatted copy.
- If deterministic ordering matters for verification, define one canonical serialization (sorted keys, fixed separators, no added whitespace) and apply it before the digest, on both sender and receiver. Never reformat after signing.
- Keep pretty-printing for logs only. Write the normalized debug copy to the log, and transmit the signed raw bytes.
Tests that catch this
- Sign a fixed payload, transmit it unchanged, and verify the digest recomputed from the received bytes equals the stored one.
- Reject any transform — sorting, pretty-printing, whitespace normalization — that runs after the signing call in the call stack.
- Replay one signed webhook against an environment that enforces the signature, not only a stub that parses the JSON.
Where the contract lives
When the signed shape and field order are stated in the integration spec, that spec should stay the source of truth locally rather than a hand-kept serialization note. This is the local-first workflow we built around in Powerduck: keep the contract on disk, validate the actual outgoing bytes against it, and replay one real request against an enforcing endpoint instead of trusting a permissive mock.Before you call the signing path done:
- Was the digest computed over the exact bytes transmitted?
- Did any sort, pretty-print, or normalize run after signing?
- Did a real verifying endpoint accept the signature, or only a shape-accepting stub?
- Is the expected serialization order written in the contract, not assumed?
A normalized, pretty body reads better in review. On the wire between two parties that sign, byte stability is the product. Order is free inside a parser; it is expensive after a digest.#aiagents #aicode #apicontract #security #software #coding #development #engineering #inclusive #community
The agent sorted the JSON body keys to tidy it up, and the request signature stopped matching -
This is a submission for the Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady ...#devchallenge #hf26challenge #software #coding #development #engineering #inclusive #community
I Wanted to Be Lazy About Calculus. So I Built a Gemma Lab That Does the Experiments for Me -
What I built Sloth Mode is a lazy little assistant that does the boring work for you —...#ai #devchallenge #hacktoberfest #productivity #software #coding #development #engineering #inclusive #community
Sloth Mode - Do less. Get it done. -
This is a submission for the Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady ...#devchallenge #hf26challenge #opensource #testing #software #coding #development #engineering #inclusive #community
I let a small local model write the refactor tests I was too lazy to write -
PHP shipped emergency fixes for PHP2Shell (CVE-2026-109618 and CVE-2026-109619) on October 21. Both...#php #security #python #devops #software #coding #development #engineering #inclusive #community
How to check your servers, Docker images and logs for PHP2Shell -
Why the best engineers on agentic teams have stopped "prompting" and started designing "loops" — and what that means for your first year.
TL;DR
• Prompt engineering is about one request. Loop engineering is about the repeating cycle an AI coding agent runs: plan → act → check → decide what's next, until a goal is met.
• The quality gap between a good agent setup and a bad one is rarely the model. It's usually the loop: what context goes in, how work gets verified, and when the agent stops.
• Your job is shifting from "write the code" to "design the system that writes, tests, and fixes the code — and know when a human must step in."
• In a regulated shop, the loop is also your control framework. Treat it like one.A quick history: how we got here
The naming has moved fast, so here's the short version:- Prompt engineering (2023–24): craft the perfect single request.
- Context engineering (2025): realise the prompt is just one ingredient — what matters is everything the model sees: repo instructions, docs, prior decisions, tool outputs.
- Harness engineering (early 2026): agents start doing long, multi-step work in production, so we build the scaffolding around them — tools, sandboxes, permissions.
- Loop engineering (mid-2026): agents are now good enough to run unattended for long stretches and recover from their own mistakes. The hard problem becomes designing the cycle itself. The big unlock was "closing the loop." Before, engineers spent much of their day acting as QA for the agent: spot the bug, paste it back, ask for a fix, repeat. Once you give the agent a spec plus a way to check its own work (tests, evals, linters), it can do that cycle itself — and work productively for much longer without you.
The mental model: a thermostat, not a vending machine
A vending machine takes one input and gives one output. That's prompting.
A thermostat has a goal (21°C), a sensor (the thermometer), an action (heat on/off), and a stopping rule (target reached). It keeps cycling until the world matches the goal. That's a loop.
Every coding agent today runs some version of the same base cycle: reason → act → observe → repeat. Loop engineering is the deliberate design of that cycle as an engineering artifact in its own right — something you version, measure, and improve, just like code.What this means for you, as a new engineer
The fundamentals didn't go away — they got more valuable:
• Writing clear specs is now a core engineering skill, not a PM chore.
• Writing good tests is how you give agents a sense of direction.
• Reading code critically is how you catch what the loop missed.
• Thinking in systems — goals, feedback, limits — is the new superpower.
The engineers who thrive in 2027 won't be the fastest typists. They'll be the ones who design loops their team can trust.#agents #ai #programming #softwareengineering #software #coding #development #engineering #inclusive #community
Lets us Loop Engineer -
AI Daily Digest · October 26, 2026: Britain Bets on Biosecurity, the Auditors Audit Back, and a $2.5B Deployment Arms Race#ai #business #security #hardware #software #coding #development #engineering #inclusive #community
AI Daily Digest · October 26, 2026: Britain Bets on Biosecurity, the Auditors Audit Back, and a $2.5B Deployment Arms Race -
This is a submission for the Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady ...#devchallenge #hf26challenge #webassembly #software #coding #development #engineering #inclusive #community
HEXAW: a tiny time machine for WebAssembly -
I have watched the same release go wrong three times. Someone tunes a prompt or swaps a model, the eval average moves from 0.81 to 0.83, the PR gets approved, and two weeks later a specific intent is failing in production. The regression was real. The improvement was not. Nobody did anything careless — the eval reported a number that looked like a measurement and was actually a coin flip.
The unglamorous part of LLMOps is not prompt management or tracing. It is that most eval suites cannot detect the changes teams ship on. Fixing that is a half-day of statistics and one CI job.
Three kinds of noise, only one of which is your change
Before you compare two configurations, know what is moving:- Example sampling noise. Your golden set has 200 examples. Each one is worth 0.5 points. A "3-point gain" can be six examples flipping, several of which are borderline judgments.
- Judge noise. If an LLM grades the outputs and you left temperature above 0, the same output can pass on Tuesday and fail on Wednesday. Order matters too: ask a judge "which is better, A or B" and then "which is better, B or A" and you will find disagreement.
- Task noise. Sampling temperature, tool timeouts, and retrieval index drift all change outputs without any code change on your side.
You cannot remove all three. You can remove the first one almost entirely by comparing paired results: run baseline and candidate on the same examples and analyze the per-example difference. Example difficulty cancels out. A prompt that fixes one hard case and breaks another now shows up as one +1 and one -1, not as an aggregate you have to reason about.
Do the arithmetic before you build the gate
For a paired comparison of pass/fail outcomes, the standard error of the mean difference depends on the disagreement rate — how often the two configs disagree on the same example — not on the accuracy.If 15% of examples flip between your two configurations and you have 200 paired examples:
- SE = sqrt(0.15 × 0.85 / 200) ≈ 2.5 percentage points
- Minimum detectable effect at 80% power, α=0.05 ≈ 2.8 × SE ≈ 7 points
So on that setup, a 2-point bump is invisible. To see a 5-point change under the same assumptions you need roughly 400 paired examples; to see 3 points, about 1,100. These are arithmetic, not benchmarks — plug in your own disagreement rate, which is usually higher than you expect for prompt changes.
Two consequences follow. First, stop gating on raw averages. Second, if your golden set is 200 examples and you cannot grow it, your gate should be "no regression beyond X" rather than "improvement required."
The gate itself
The whole thing is about thirty lines of stdlib Python. Bootstrap the paired differences, look at the interval, and ship only when the interval clears zero.python
"""paired_gate.py — decide whether an LLM change is real or noise.
Run: python paired_gate.py Deps: none (stdlib only)."""
import randomdef paired_bootstrap(baseline, candidate, iters=5000, seed=7):
"""Scores aligned on the SAME example ids, 0/1 or 0..1.
Returns (mean delta, 2.5th pct, 97.5th pct)."""
diffs = [c - b for b, c in zip(baseline, candidate)]
n = len(diffs)
rng = random.Random(seed) # fixed seed: the gate must be reproducible
means = sorted(
sum(diffs[rng.randrange(n)] for _ in range(n)) / n
for _ in range(iters)
)
return sum(diffs) / n, means[int(0.025 * iters)], means[int(0.975 * iters)]def required_n(disagreement_rate, mde, z_alpha=1.96, z_power=0.84):
"""Paired binary comparison: examples needed per side."""
se = mde / (z_alpha + z_power)
p = disagreement_rate
return int((p * (1 - p)) / se**2) + 1if __name__ == "__main__":
# 200 paired examples; candidate looks "+3 points" better.
baseline = [1] * 160 + [0] * 40
candidate = [1] * 166 + [0] * 34
delta, lo, hi = paired_bootstrap(baseline, candidate)
print(f"delta#ai #llm #devops #python #software #coding #development #engineering #inclusive #community
Your Eval Suite Has a Flake Rate: Gating LLM Changes on Paired, Powered Tests -
The console has a LIVE switch now. Flip it, tell your agent to deploy, and watch the project draw itself. Some features deliver a capability. This one#ai #devops #cloud #showdev #software #coding #development #engineering #inclusive #community
Pure cinema -
A web service, a worker, a Postgres and a cron job, moved from Railway to Gagarin between lunch and dinner. Every command, the one line that changed,#devops #railway #cloud #tutorial #software #coding #development #engineering #inclusive #community
Leaving Railway in an afternoon -
Clouds sell parts. Turning twenty of them into somewhere you can deploy is a second job nobody pays for, and what you build is a worse PaaS than the o#devops #cloud #aws #kubernetes #software #coding #development #engineering #inclusive #community
Assembly required -
We handed two agents two repositories neither had ever seen and let them deploy, with nobody to ask. Both got there. Then we counted what broke.#ai #devops #agents #cloud #software #coding #development #engineering #inclusive #community
Two strangers' repos, deployed by agents, unaided -
A walk through an ordinary deploy — the Dockerfile, the five commands, what the engine says back, and the one command it refuses.#devops #docker #cloud #tutorial #software #coding #development #engineering #inclusive #community
A database, two services and an address, in five commands -
This is a submission for the Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady ...#devchallenge #hf26challenge #go #ai #software #coding #development #engineering #inclusive #community
My logs never leave the box: logwhisper, a local-AI log explainer in Go -
A chatbot answers; an agent finishes — and the industry keeps blurring that line because 'agent' sells better than 'chatbot with a loop.'#ai #agents #programming #software #coding #development #engineering #inclusive #community
Planning: What Separates a Chatbot From an Autonomous Agent -
Γραφικά σε Linux Περιβάλλον άνευ χρήσεως X11 η Wayland - Diplay grapghics on Linux without using X11 or wayland#programming #tutorial #software #coding #development #engineering #inclusive #community
Γραφικά σε Linux Περιβάλλον άνευ χρήσεως X11 η Wayland - Diplay grapghics on Linux without using X11 or wayland -
This is a submission for the Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady ...#devchallenge #hf26challenge #opensource #ai #software #coding #development #engineering #inclusive #community
LifeAdmin-AI: Turning Documents into Actionable Tasks with Local AI -
Last week I wrote about a bug I found by diffing two exports of the same Retell voice agent: Airheads...#ai #llm #testing #devops #software #coding #development #engineering #inclusive #community
My HVAC Voice Agent Was Listening for the Word Invisalign -
I Built Brief2Done: A Local AI Assistant That Turns Assignment Briefs Into Checklists | Hacktoberfest 2026#devchallenge #hf26challenge #ai #opensource #software #coding #development #engineering #inclusive #community
I Built Brief2Done: A Local AI Assistant That Turns Assignment Briefs Into Checklists | Hacktoberfest 2026 -
One Bad Row Killed the Whole Batch: Partial-Failure Handling for n8n Loops This is part of...#automation #ai #webdev #programming #software #coding #development #engineering #inclusive #community
One Bad Row Killed the Whole Batch: Partial-Failure Handling for n8n Loops -
This is a submission for the Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady ...#devchallenge #hf26challenge #software #coding #development #engineering #inclusive #community
SlothMind: Why Move Fast and Break Things When You Can Think Slow and Build Better? -
قبل از ارتقای سیستم گیمینگ، این ۵ مورد را بررسی کنید بسیاری از گیمرها وقتی با افت فریم،...#hardware #performance #software #coding #development #engineering #inclusive #community
قبل از ارتقای سیستم گیمینگ، این ۵ مورد را بررسی کنید -
What is SSML and Why It Matters for Voice AI When you’re building a voice‑first...#ai #programming #webdev #tutorial #software #coding #development #engineering #inclusive #community
Understanding SSML for Better Voice AI Output -
From DSP bring-up with Excel to a native Windows executable built with LibreOffice Calc.#assembly #programming #tutorial #windows #software #coding #development #engineering #inclusive #community
Before the assembler existed: bringing up a DSP with Excel