However it uses various terms that I'm not sure of the definition for.
E.g. the word "Tool".
How can I learn about the definitions of these words? Will reading prior articles in the series help? Please advise.
However it uses various terms that I'm not sure of the definition for.
E.g. the word "Tool".
How can I learn about the definitions of these words? Will reading prior articles in the series help? Please advise.
you> what's going on?
> It's going great --- how can I help you today?
Tool calls: you> [json blob of available "tools": "ls", "grep", "cat"]
you> what's going on?
> [json blob selecting "ls"]
(you) presumably run "ls"
you> [json blob of "ls" output]
> [json blob selecting "cat foo.c"]
(you) dump "foo.c"
you> [json blob of "cat foo.c"]
> I can see that we're in a C project that does XYZ...
The key thing is just: tools are just a message/conversation abstraction LLMs are trained to adhere to: they know to spit out a standardized "tool call" JSON, and they know to have multi-round conversations with sets of different "tools" (whichever ones are made available to them) to build up context to answer questions with.That's the whole thing.
https://youtu.be/owDd1CJ17uQ?si=Z2bldI8IssG7rGON&t=1330
It's an _incredibly_ important concept to understand if you have even a passing interest in LLMs. You need to understand it if you want to have any kind of mental model for how LLM-powered agents are even possible.
One who lacks the mental capacity to know he is being used. A fool. A cretin. Characterized by low intelligence and/or self-esteem.
Disclaimer: I only cite definitions from Urban Dictionary, but I remain firmly convinced they are correct definitions in context.