| ▲ | normie3000 5 days ago |
| Why are any of the tools beyond the bash tool required? Surely listing files, searching a repo, editing a file can all be achieved with bash? Or is this what's demonstrated by https://news.ycombinator.com/item?id=45001234? |
|
| ▲ | the_mitsuhiko 4 days ago | parent | next [-] |
| Technically speaking, you can get away with just a Bash tool, and I had some success with this. It's actually quite interesting to take away tools from agents and see how creative they are with the use. One of the reasons why you get better performance if you give them the other tools is that there has been some reinforcement learning on Sonne with all these tools. The model is aware of how these tools work, it is more token-efficient and it is generally much more successful at performing those actions. The Bash tool, for instance, at times gets confused by bashisms, not escaping arguments correctly, not handling whitespace correctly etc. |
| |
| ▲ | 4 days ago | parent | next [-] | | [deleted] | |
| ▲ | normie3000 4 days ago | parent | prev | next [-] | | > The model is aware of how these tools work, it is more token-efficient and it is generally much more successful at performing those actions. Interesting! This didn't seem to be the case in the OP's examples - for instance using a list_files tool and then checking if the json result included README vs bash [ -f README ] | | |
| ▲ | the_mitsuhiko 4 days ago | parent [-] | | > Interesting! This didn't seem to be the case in the OP's examples - for instance using a list_files tool and then checking if the json result included README vs bash [ -f README ] There is no training on a tool with that name. But it likely also doesn't need training because the parameter is just a path and that's a pretty basic tool. On the other hand to know how to execute a bash command, you need to know bash. Bash is a known tool to the Claude models [1] and so is text editing [2]. You're supposed to reference those in the tool listing but at least from my testing, the moment you call a tool "bash", Claude makes plenty of assumptions about what the point of this thing is. [1]: https://docs.anthropic.com/en/docs/agents-and-tools/tool-use... [2]: https://docs.anthropic.com/en/docs/agents-and-tools/tool-use... |
| |
| ▲ | dotancohen 4 days ago | parent | prev [-] | | > The Bash tool, for instance, at times gets confused by bashisms, not escaping arguments correctly, not handling whitespace correctly etc.
This was the only informative sentence in the reply. Can you please go on in this manner - it was an important question. |
|
|
| ▲ | zarzavat 5 days ago | parent | prev | next [-] |
| Separate tools is simpler than having everything go through bash. If everything goes through bash then you need some way to separate always safe commands that don't need approval (such as listing files), from all other potentially unsafe commands that require user approval. If you have listing files as a separate tool then you can also enforce that the agent doesn't list any files outside of the project directory. |
| |
| ▲ | normie3000 4 days ago | parent [-] | | > you need some way to separate always safe commands that don't need approval (such as listing files), from all other potentially unsafe commands that require user approval. This is a very strong argument for more specific tools, thanks! |
|
|
| ▲ | ghuntley 4 days ago | parent | prev | next [-] |
| Yeah, you could get away with a coding agent just using the Bash tool and the Edit tool (tbh somewhat optional but not having it would be highly inefficient). I haven't tried it, but it might struggle with the code search functionality. It would be possible with the right prompting. For example, you could just prompt the LLM to say "If you need to search the source code, use ripgrep with the Bash tool." |
| |
| ▲ | normie3000 4 days ago | parent [-] | | > Edit tool (tbh somewhat optional but not having it would be highly inefficient) If you need to edit the source, just use patch with the bash tool. What's the efficiency issue? |
|
|
| ▲ | BenderV 5 days ago | parent | prev | next [-] |
| Why do humans need a IDE when we could do anything in a shell?
Interface give you the informations you need at a given moment and the actions you can take. |
| |
| ▲ | normie3000 4 days ago | parent [-] | | To me a better analogy would be: if you're a household of 2 who own 3 reliable cars, why would you need a 4th car with smaller cargo & passenger capacities, higher fuel consumption, worse off-road performance and lower top speed? |
|
|
| ▲ | kissgyorgy 4 days ago | parent | prev | next [-] |
| This is explained in 3.2 How to design good tools? This saves the LLM from having to do multiple low level clicking and typing and keeps it on track. Help the poor model out, will ya!?
|
| |
| ▲ | normie3000 4 days ago | parent [-] | | I'm not sure where this quote is from - it doesn't seem to appear in the linked article. | | |
|
|
| ▲ | faangguyindia 5 days ago | parent | prev [-] |
| >Why are any of the tools beyond the bash tool required? My best guess is they started out with a limited subset of tools and realised they can just give it bash later. |