4 ms·
In addition to having long system prompts, you also need to provide agents with the right composable tools to make it work. I’m having reasonable success with
by SafeDusk 1y ago
In addition to having long system prompts, you also need to provide agents with the right composable tools to make it work.
I’m having reasonable success with these seven tools: read, write, diff, browse, command, ask, think.
There is a minimal template here if anyone finds it useful: https://github.com/aperoc/toolkami https://github.com/aperoc/toolkami
- triyambakam 1y agoReally interesting, thank you
- SafeDusk 1y agoHope you find it useful, feel free to reach out if you need help or think it can be made better.
- alchemist1e9 1y agoWhere does one find the tool prompts that explains to the LLM how to use those seven tools and what each does? I couldn’t find it easily looking through the repo.
- tgtweak 1y agoYou can see it in the cline repo which does prompt based tooling, with Claude and several other models.
- mplewis 1y agoYou can find these here: https://github.com/search?q=repo%3Aaperoc%2Ftoolkami%20%40mcp.tool()&type=code https://github.com/search?q=repo%3Aaperoc%2Ftoolkami%20%40mc...
- SafeDusk 1y agomplewis thanks for helping to point those out!
- alchemist1e9 1y agoI find it very interesting that the LLM is told so little details but seems to just intuitively understand based on the english words used for the tool name and function arguments. I know from earlier discussions that this is partially because many LLMs have been fine tuned on function calling, however the model providers don’t share this training dataset unfortunately. I think models that haven’t been fine tuned can still do function calling with careful instructions in their system prompt but are much worse at it. Thank you for comments that help with learning and understanding MCP and tools better.
- alchemist1e9 1y agoThank you. I find in interesting that the LLM just understands intuitively from the english name of the tool/function and it’s argument names. I had imagined it might need more extensive description and specification in its system prompt, but apparently not.
- wunderwuzzi23 1y agoRelated. Here is info on how custom tools added via MCP are defined, you can even add fake tools and trick Claude to call them, even though they don't exist. This shows how tool metadata is added to system prompt here: https://embracethered.com/blog/posts/2025/model-context-protocol-security-risks-and-exploits/ https://embracethered.com/blog/posts/2025/model-context-prot...
- swyx 1y ago> 18 hours ago you just released this ? lol good timing
- SafeDusk 1y agoI did! Thanks for responding and continue to do your great work, I'm a fan as a fellow Singaporean!
- dr_kiszonka 1y agoMaybe you could ask one of the agents to write some documentation?
- SafeDusk 1y agoFor sure! the traditional craftsman in me still like to do some stuff manually though haha
- darkteflon 1y agoThis is really cool, thanks for sharing. uv with PEP 723 inline dependencies is such a nice way to work, isn’t it. Combined with VS Code’s ‘# %%’-demarcated notebook cells in .py files, and debugpy (with a suitable launch.json config) for debugging from the command line, Python dev finally feels really ergonomic these last few months.
- SafeDusk 1y agoYes, uv just feels so magical that I can't stop using it. I want to create the same experience with this!
- jychang 1y ago> Combined with VS Code’s ‘# %%’-demarcated notebook cells in .py files What do you mean by this?
- ludwigschubert 1y agoIt’s a lighter-weight “notebook syntax” than full blown json based Jupyter notebooks: https://code.visualstudio.com/docs/python/jupyter-support-py#_jupyter-code-cells https://code.visualstudio.com/docs/python/jupyter-support-py...
- darkteflon 1y agoYep, lets you use normal .py files instead of using the .ipynb extension. You get much nicer diffs in your git history, and much easier refactoring between the exploratory notebook stage and library/app code - particularly when combined with the other stuff I mentioned.
- fullstackchris 1y agoOnce I gave claude read only access to the command line and also my local repos, i found that was enough to have it work quite well... I start to wonder if all this will boil down to simple understanding of some sort of "semantic laws" still fuzzily described... I gotta read chomsky...