Live data from Hacker News

Better Models: Worse Tools

lucumr.pocoo.org

81–90 of 90 posts

Re: Better Models: Worse Tools

#81

LLM can write programs in any programming language it knows about. So how about askinng it to write a shell-program that does the tool-calls on the client? You might want to run in some kind of sandbox to prevent the LLM from taking over the world, security is an isssue. But apart from that why not make the LLM write shell-programs instead of relying on JSON etc. ? Shell-scripting is the language for controlling the…

Not always shell—Python, often a subset, is common—but a single sandboxed coding-running tool as the way to run all of the other things that would otherwise be their own top-level tools themselves seems an increasingly common approach.

I think Agents need user-accounts on your machine, and for us an easy way to configure the permissions each agent has, and then we dont' have to worry about sandboxing so much. This approach was pioneered by smart-phone OSes like Android.

Once permissions are safe and secure and easy to set up and understand then using shell-programming as a general interface between agents and your PC/OS might be a good option.

Come to think of it I recently read that Microsoft is planning to produce an AI-oriented OS. Maybe agents with user-accounts is something they are aiming for, to solve the problem discussed in the article.

Re: Better Models: Worse Tools

#82
post #77

This is easily solved with good error messages. Claude always gets the syntax wrong on my tool calls. So I did a revolutionary thing and made the error output print helpful guidance on how to correctly call the tool . The agent tries again and always gets it right. Total time “wasted”: 1-2 seconds. It happens every session, but it only happens once per context window. After that the agent holds on to the lesson. To d…

So, is this part of the tool definition, or did you create your own coder agent?

It’s done using Claude Code.

I use hooks to enforce TDD but the agent has to use bash tool calls to call a script before the hooks allow it to do its job.

tdd_log.py is a short python file with a #! at the top to make it executable, that (due to other hooks) the agent must run to declare its intent to make some tests red or green.

Check the info I posted in a sibling comment: https://news.ycombinator.com/item?id=48790589

Re: Better Models: Worse Tools

#84
Suggestion for Pi: capitalize tool names for the Sonnet/Opus models (edit -> Edit, bash -> Bash, ...).

The rationale: Anthropic's own harness (Claude Code) uses PascalCase tool names — Bash, Edit, Read, Write, Glob, Grep. Since the models are post-trained/aligned against that harness, those naming conventions are effectively baked into the model. Matching your harness's tool names to the same casing puts your inputs closer to the training distribution, which lines up with the more reliable tool use I've seen in evaling.

A related pattern that fits the same distribution: for long outputs, have the model reserve placeholders first and complete the work across multiple steps.

Reference: https://github.com/evotai/evot/commit/765151796c43965964a9da...

Re: Better Models: Worse Tools

#85

Suggestion for Pi: capitalize tool names for the Sonnet/Opus models (edit -> Edit, bash -> Bash, ...). The rationale: Anthropic's own harness (Claude Code) uses PascalCase tool names — Bash, Edit, Read, Write, Glob, Grep. Since the models are post-trained/aligned against that harness, those naming conventions are effectively baked into the model. Matching your harness's tool names to the same casing puts your inputs…

[flagged]

Re: Better Models: Worse Tools

#86

When building agent integration for my serverless backend https://saasufy.com/ , I decided to not use MCP but to put curl commands inside skill markdown files instead: https://github.com/Saasufy/skills The curl command is extremely popular so models seem to be really good at using it. Also I like that curl uses a bash syntax and my platform requires JSON payloads; it makes the separation clear to the agent. I find it…

I really like this simplification

Re: Better Models: Worse Tools

#88
post #5

It sounds like harnesses might have to start to have model by model system prompts, though retrying works, I guess. It reminds me of the ancient times when browsers all read HTML and CSS differently, and differently on different devices. In that sense, this is nothing new. I was going to say, at least we don't have different device types, but then, the model still has to output the right variant of `grep` as well.

The problem with hyper targeting harnesses to models is that you end up locking yourself quite quickly into special behaviors of models, and you make your sessions non transferrable. That can be an acceptable trade-off and I know people who do that.

Totally agree. And really, we use the llms to be the universal layer, not the harness. It’s already nigh on impossible to eval a harness with multiple turns (at least as far as I’ve seen), so multiply by specific llm prompt…)

Re: Better Models: Worse Tools

#89
post #7
post #5

It sounds like harnesses might have to start to have model by model system prompts, though retrying works, I guess. It reminds me of the ancient times when browsers all read HTML and CSS differently, and differently on different devices. In that sense, this is nothing new. I was going to say, at least we don't have different device types, but then, the model still has to output the right variant of `grep` as well.

The flip side of this is training models to better understand harness interaction, I suppose, which (if I understand it properly and I am in no way sure I do) appears to be what the Qwen AgentWorld model is doing?

Yeah, that looked pretty cool. But I’m always sceptical of these announcements until I try them.

Re: Better Models: Worse Tools

#90

Suggestion for Pi: capitalize tool names for the Sonnet/Opus models (edit -> Edit, bash -> Bash, ...). The rationale: Anthropic's own harness (Claude Code) uses PascalCase tool names — Bash, Edit, Read, Write, Glob, Grep. Since the models are post-trained/aligned against that harness, those naming conventions are effectively baked into the model. Matching your harness's tool names to the same casing puts your inputs…

> Suggestion for Pi: capitalize tool names for the Sonnet/Opus models (edit -> Edit, bash -> Bash, ...).

Pi is doing that.

Post reply on HN