Live data from Hacker News

Claude Advanced Tool Use

anthropic.com

41–50 of 280 posts

Re: Claude Advanced Tool Use

#41
Programmatic tool invocation is a great idea, but it also increasingly raises the question of what the point of well-defined tools even is now.

Most MCP servers are just wrappers around existing, well-known APIs. If agents are now given an environment for arbitrary code execution, why not just let them call those APIs directly?

Re: Claude Advanced Tool Use

#42

The "Tool Search Tool" is like a clever addition that could easily be added yourself to other models / providers. I did something similar with a couple of agents I wrote. First LLM Call: only pass the "search tool" tool. The output of that tool is a list of suitable tools the LLM searched for. Second LLM Call: pass the additional tools that were returned by the "search tool" tool.

Since its a tool itself, I dont see the benefit of relying on Anthropic for this. if anything it now becomes vendor lock in.

Correct, I wouldn't use it myself as it's a trivial addition to your implementation. Personally I keep all my work in this space as provider agnostic as I can. When the bubble eventually pops there will be victims, and you don't want a stack that's hard coded to one of the casualties.

Re: Claude Advanced Tool Use

#43
post #41

Programmatic tool invocation is a great idea, but it also increasingly raises the question of what the point of well-defined tools even is now. Most MCP servers are just wrappers around existing, well-known APIs. If agents are now given an environment for arbitrary code execution, why not just let them call those APIs directly?

Tools are more reproducible than prompts w/ instructions to hit apis. They are helpful for agentic workflows that you intend to run multiple times or without supervision.

They aren't worth bothering with for one off tasks or supervised workflows.

The major advantage is that a tool can provide a more opinionated interface to the API then your openAPI definition.If the API is generic, then it may have more verbose output or more complex input then is ideal for the use case. Tools are a good place to bake any opinion in that might make it easier to use for the LLM

Re: Claude Advanced Tool Use

#44
post #24

Our agentic builder has a single tool. It is called graphql. The agent writes a query and executes it. If the agent does not know how to do particular type of query then it can use graphql introspection. The agent only receives the minimal amount of data as per the graphql query saving valuable tokens. It works better! Not only we don't need to load 50+ tools (our entire SDK) but it also solves the N+1 problem when u…

[deleted]

Re: Claude Advanced Tool Use

#45
post #32

Earlier quoted context omitted.

I do think that using graphql will solve a lot of problems for people but it's super surprising how many people absolutely hate it.

GraphQL is just a typed schema (good) with a server capable of serving any subset of the entire schema at a time (pain in the ass).

It doesn’t actually require that second part. Every time I’ve used it in a production system, we had an approved list of query shapes that were accepted. If the client wanted to use a new kind of query, it was performance tested and sometimes needed to be optimized before approval for use.

If you open it up for any possible query, then give that to uncontrolled clients, it’s a recipe for disaster.

Re: Claude Advanced Tool Use

#46
post #45
post #32

Earlier quoted context omitted.

GraphQL is just a typed schema (good) with a server capable of serving any subset of the entire schema at a time (pain in the ass).

It doesn’t actually require that second part. Every time I’ve used it in a production system, we had an approved list of query shapes that were accepted. If the client wanted to use a new kind of query, it was performance tested and sometimes needed to be optimized before approval for use. If you open it up for any possible query, then give that to uncontrolled clients, it’s a recipe for disaster.

Oh, we have that too! But we call it HTTP endpoints.

Re: Claude Advanced Tool Use

#47

Earlier quoted context omitted.

Don't see whats wrong in letting llm decide which tool to call based on a search on long list of tools (or a binary tree of lists in case the list becomes too long, which is essentially what you eluded to with sub-agents)

I was referring to letting LLM's search github and run tools from there. That's like randomly searching the internet for code snippets and blindly running them on your production machine.

For that, we need sandboxes to run the code in an isolated environment.

Re: Claude Advanced Tool Use

#48
post #45
post #32

Earlier quoted context omitted.

GraphQL is just a typed schema (good) with a server capable of serving any subset of the entire schema at a time (pain in the ass).

It doesn’t actually require that second part. Every time I’ve used it in a production system, we had an approved list of query shapes that were accepted. If the client wanted to use a new kind of query, it was performance tested and sometimes needed to be optimized before approval for use. If you open it up for any possible query, then give that to uncontrolled clients, it’s a recipe for disaster.

[deleted]

Re: Claude Advanced Tool Use

#49
post #24

Our agentic builder has a single tool. It is called graphql. The agent writes a query and executes it. If the agent does not know how to do particular type of query then it can use graphql introspection. The agent only receives the minimal amount of data as per the graphql query saving valuable tokens. It works better! Not only we don't need to load 50+ tools (our entire SDK) but it also solves the N+1 problem when u…

Reading this was such an immediate "aha" for me. Of course we should be using GraphQL for this. Damn. Where was this comment three months ago!

Re: Claude Advanced Tool Use

#50
post #45
post #32

Earlier quoted context omitted.

GraphQL is just a typed schema (good) with a server capable of serving any subset of the entire schema at a time (pain in the ass).

It doesn’t actually require that second part. Every time I’ve used it in a production system, we had an approved list of query shapes that were accepted. If the client wanted to use a new kind of query, it was performance tested and sometimes needed to be optimized before approval for use. If you open it up for any possible query, then give that to uncontrolled clients, it’s a recipe for disaster.

Without wishing to take part in a pile on - I am wondering why you're using graphql if you are kneecapping it and restricting it to set queries.
Post reply on HN