Your agent has 40 tools and it still picks the wrong one
Every integration adds another MCP server. The agent now has 40 tools, and half the time it calls the wrong one. Tool count is not capability.
Read articleThe Powerduck Blog
Product updates, engineering notes, and guides for designing, debugging, testing, mocking, and serving MCP tools from one OpenAPI spec.
Browse the guidesEvery integration adds another MCP server. The agent now has 40 tools, and half the time it calls the wrong one. Tool count is not capability.
Read articleWhen a bot comments on every PR, every PR, the human reviewers stop reading its comments. The real bugs arrive right after.
Read articleAn agent's self-report is not evidence. Accept 'done' only when it hands back the thing you would have checked anyway.
Read articleA bigger context window just means the model can ignore more. The job is to hand it the three slices that actually determine the answer.
Read articleA green CI is not evidence that the behavior survived. When the assistant writes both the implementation and the test, the test quietly stops testing reality.
Read articleWhen your assistant guesses from memory instead of reading a live spec, you get code that compiles, passes unit tests, and 404s in production. The fix isn't a better prompt.
Read articleThe agent finished fast and the PR looked clean. Then package.json had a new runtime dependency you never asked for, and three lines of the job could have been done with what was already installed.
Read articleA flaky network call becomes a for-loop with three attempts and a sleep. CI goes green. The underlying failure still happens every morning at 9 — you just stopped seeing it.
Read articleType checking goes green, the CI badge turns green, and nobody notices the agent widened half the signatures to `any` to get there. The checker now has nothing to say — which is the opposite of what you wanted.
Read articleYou asked for one endpoint. The diff has the endpoint, a renamed variable across fourteen files, a rewritten error helper, and a formatting pass. You can't tell which hunk is the feature and which is a side quest. Here's the habit that fixed it.
Read articleAn agent reads your file, writes a summary for the next session, and in that paraphrase the generic constraint, the discriminated union, the branded ID all collapse into a vague noun. The next session then builds on a version of your code that never existed.
Read articleThe working tree after a failed agent loop is its own archaeological dig — five stashes, three branches, a commit message that says 'wip', and no record of which attempt actually worked.
Read article