如何使用Anthropic Claude调用无输入参数的工具
解决Anthropic Claude无输入参数工具调用问题
可行配置方案
方案1:规范空对象Schema(推荐)
保持input_schema为object类型,明确properties为空、required为空数组,同时在描述里强调无需传参。这样Claude能正确识别不需要输入:
tools = [ { "name": "pinecone_query", "description": "执行Pinecone数据库查询,无需传入任何参数,依赖初始化时加载的用户特征向量", "input_schema": { "type": "object", "properties": {}, "required": [] } } ]
方案2:添加占位符可选参数(兼容特殊场景)
如果Claude仍要求传递参数,可以加一个无实际作用的可选占位符,工具逻辑里忽略即可:
tools = [ { "name": "pinecone_query", "description": "执行Pinecone数据库查询,无需传入有效参数,若需占位可传空对象", "input_schema": { "type": "object", "properties": { "placeholder": { "type": "string", "description": "无实际作用的占位符,可传空字符串或省略" } }, "required": [] } } ]
方案3:指定Schema为null类型
部分Anthropic客户端版本支持将input_schema设为"type": "null",明确表示不需要输入:
tools = [ { "name": "pinecone_query", "description": "执行Pinecone数据库查询,无需传入任何参数", "input_schema": { "type": "null" } } ]
调用格式验证
调用Claude时,工具调用的参数部分传空对象{}即可,示例格式:
{ "name": "pinecone_query", "parameters": {} }
额外说明
- Claude 3系列模型要求工具定义为数组格式,不能传单个工具对象。
- 工具逻辑直接使用初始化阶段加载的
self.profile_embedding,无需处理输入参数。
内容的提问来源于stack exchange,提问作者Redcoatwright
相关产品推荐
相关产品推荐

