-
Notifications
You must be signed in to change notification settings - Fork 318
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Rename retreiver
to tool
#96
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
8 files reviewed, 2 total issue(s) found.
The style guide flagged several spelling errors that seemed like false positives. We skipped posting inline suggestions for the following words:
- [Tt]ool_plain
- [Vv]alidators
- [Dd]ocstring
- Pydantic
- [Aa]sync
- [Vv]alidator
It seems to me the only practical difference between a "retrieval" tool and a "structured return value" tool is that the structured return value tool is the actual response, whereas if the model calls a retrieval tool, it gets to continue generating responses, right? If that is right, I feel like it would make sense for the name reflect to this in Model.agent_model. That said, I guess I mean I was thinking |
Deploying pydantic-ai with Cloudflare Pages
|
Done, in the end I went with "Function Tools" as a simple and understandable name, that didn't introduce any philosophy into what they would be used for, and clearly indicated the most obvious distinction between the two types of tools - those based on a function, and those that are not. |
Feedback from numerous people including @intellectronica, @ricklamers, @bllchmbrs and @RamiAwar is that the word "retriever" is confusing, the universal feedback was
I can make the argument that while retrievers user tools, they're a sub-type of tool with a different semantic meaning until I'm blue in the face, but in the end:
So here I've renamed:
@agent.retriever -> @agent.tool
@agent.retriever_plain -> @agent.tool_plain
Open question:
there are some internal places where my wholesale renaming means a confusing number of things are now just called "tool".
Tools are used for two things (this hasn't changed)
@agent.tool
- previously "retrievers", could also be called "optional tools" or "discretionary tools" since the LLM has the option to call them, or "retrieval tools"We probably need a better name than "tool" internally for (1) to differentiate, I've used
retrieval_tool
inModel.agent_model
, any better suggestions? cc @dmontaguTodo: