尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
Claude Code System Prompts 中的 Ruby 工具使用参考:Beta Tool Runner 与手动 Agentic 循环实战指南
文档提示工程人工智能【免费下载链接】claude-code-system-promptsAll parts of Claude Codes system prompt, 27 builtin tool descriptions, sub agent prompts (Plan/Explore/Task), utility prompts (CLAUDE.md, compact, statusline, magic docs, WebFetch, Bash cmd, security review, agent creation). Updated for each Claude Code version.项目地址https://gitcode.com/gh_mirrors/cl/claude-code-system-prompts点击查看免费下载本篇技术指南以开源仓库 claude-code-system-prompts 中提取的 Ruby 工具使用参考文档 为骨架讲解在 Ruby 语言中使用 Claude API 工具Tool Use的两种方式通过 beta 阶段的 Tool Runner 自动执行工具循环以及手动实现 Agentic 循环。读完本文你将掌握如何用Anthropic::BaseTool声明可运行工具、如何调用client.beta.messages.tool_runner让 SDK 自动完成「模型调用 → 工具执行 → 结果回传」的闭环并理解手动循环中内容块Content Block的多态处理与消息序列回传规则。一、参考文档的背景与定位在 Claude Code 的 System Prompts 提取仓库中data-前缀的文档对应 Claude Code 内嵌的各种模板文件其中data-tool-use-reference-ruby.md是面向 Ruby 开发者的工具使用速查卡。它的 frontmatter 记录了以下元信息见 原文档 开头name: Data: Tool use reference — Rubydescription: Ruby tool use reference including the beta tool runner and manual agentic-loop guidanceccVersion: 2.1.246即该模板对应的 Claude Code 版本根据 README.md 的说明这些文件是从 Claude Code npm 包的编译后 JS 源码中通过脚本提取出来的保证与 Claude Code 实际运行时使用的字符串完全一致。模板中的{{OPUS_ID}}属于运行时插值变量由 Claude Code 在注入时替换为实际的模型 ID因此文中示例不可直接复制运行需替换为真实模型标识。该文档的核心结论是一句话Ruby SDK 既支持通过原始 JSON Schema 定义工具也提供了 beta 阶段的 Tool Runner 用于自动执行工具。同时它还强调关于工具定义格式与 Agentic 循环模式的通用概念请参阅 Claude Code 内部共享的shared/tool-use-concepts.md文档该共享文档属于 Claude Code 内嵌模板体系在 system-prompts 提取目录中未单独收录本仓库可确认存在的 Ruby 相关材料为 Ruby API 参考 与 Ruby 流式参考。二、快速上手安装 SDK 与初始化客户端在进入工具使用之前先确保 Ruby SDK 已安装并完成客户端初始化。这一步的完整说明位于仓库中的>gem install anthropicrequire anthropic # 默认使用 ANTHROPIC_API_KEY 环境变量 client Anthropic::Client.new # 显式传入 API key client Anthropic::Client.new(api_key: your-api-key)需要特别注意的是该 Ruby API 参考文档在开头即声明Ruby SDK 目前只提供 beta 版的工具运行器client.beta.messages.tool_runner()Agent SDK 在 Ruby 上尚不可用。这意味着在 Ruby 生态中工具调用的自动化执行主要依赖本文介绍的 Tool Runner 或手动循环。三、使用 Beta Tool Runner 自动执行工具这是关联文档的核心章节。Tool Runner 的价值在于你只需声明「工具长什么样、工具怎么跑」SDK 会自动处理 API 调用、识别模型发起的tool_use、执行对应的 Ruby 方法、再把结果作为tool_result回传反复迭代直到模型给出最终文本答案。3.1 定义工具的输入模型每个工具的第一步是声明它的 JSON Schema 输入通过继承Anthropic::BaseModel并使用required宏完成代码原文见>class GetWeatherInput Anthropic::BaseModel required :location, String, doc: City and state, e.g. San Francisco, CA end这里required :location, String, doc: ...声明了一个必填字符串参数locationdoc:提供该参数的语义描述帮助模型理解应如何填充。required表明该字段将进入 schema 的required列表。3.2 定义可运行的工具随后定义工具本体继承Anthropic::BaseTool通过input_schema挂载输入模型并在call(input)方法中实现真正的业务逻辑class GetWeather Anthropic::BaseTool doc Get the current weather for a location input_schema GetWeatherInput def call(input) The weather in #{input.location} is sunny and 72°F. end end从源码结构可以推断Anthropic::BaseTool承担了三件事把doc描述的字符串作为工具的description上报给模型把input_schema声明的GetWeatherInput转换为工具的参数 JSON Schema在模型请求使用该工具时调用call(input)并返回结果字符串。input是解析后的输入对象可直接以input.location的形式访问参数。3.3 发起一次带工具的对话将工具实例放入tools:数组调用 beta 命名空间下的tool_runner方法并传入模型、max_tokens与消息列表client.beta.messages.tool_runner( model: :{{OPUS_ID}}, max_tokens: 16000, tools: [GetWeather.new], messages: [{ role: user, content: Whats the weather in San Francisco? }] ).each_message do |message| puts message.content end要点拆解model: :{{OPUS_ID}}使用 Symbol 形式指定模型{{OPUS_ID}}为运行时插值占位符tools: [GetWeather.new]传入已实例化的工具对象而非类本身max_tokens: 16000与 Ruby API 参考 中普通请求的max_tokens一致表示生成上限each_message迭代器Tool Runner 会持续驱动整个循环把每一轮产出的消息交给 block。最终消息的content中通常包含:text类型的文本块即为模型基于工具结果给出的最终回答。3.4 一个可运行的天气查询闭环将上述片段组合起来就是一个完整的「查天气」Agentic 应用。模型看到get_weather工具的 schema 后会生成tool_use请求Tool Runner 自动执行GetWeather#call把「sunny and 72°F」作为工具结果反馈给模型模型最终生成自然语言回复。这一体验与仓库中其他语言的 Tool Runner 形态一致例如 C# 参考 提供BetaToolRunnerPHP 参考 提供$client-beta-messages-toolRunner()三个 SDK 都把「API 调用 → 工具执行 → 结果反馈」的循环封装为单一入口。四、手动 Agentic 循环Manual Loop当需要完全掌控每一步例如需要审计工具参数、自定义重试策略、或工具执行有外部副作用需要人工确认时可以选择手动实现循环。关联文档明确指出工具定义格式与 Agentic 循环模式请参阅共享概念文档本文基于仓库中 Ruby API 参考 中关于内容块多态性的说明与 PHP 工具使用参考 的手动循环示例给出 Ruby 语义下的对应实现模式。4.1 理解响应内容块的多态性手动循环的关键前提手动循环要求开发者自己遍历响应content。Ruby SDK 的message.content是一个多态块对象数组TextBlock、ThinkingBlock、ToolUseBlock等其.type是Symbol 而非字符串这一点在 Ruby API 参考 中被特别强调比较类型时必须用block.type :text而不是block.type text.text方法在非TextBlock条目上会抛出NoMethodError因此必须先按类型分支再访问属性。这直接决定了手动循环中识别tool_use块、提取工具名与输入参数的写法。4.2 用原始 Hash 定义工具与 Tool Runner 的面向对象方式不同手动循环中工具可直接以 Hash 形式声明Ruby SDK 全链路使用 snake_case 键名这一点可从 Ruby API 参考 中output_config、task_budget、cache_control等参数名推断并与 PHP 文档 明确记载的「camelCase 键自动映射到 API snake_case」形成对照tools [ { name: get_weather, description: Get the current weather in a given location, input_schema: { type: object, properties: { location: { type: string, description: City and state } }, required: [location] } } ]4.3 循环主体请求 → 执行 → 回传messages [{ role: user, content: What is the weather in SF? }] message client.messages.create( model: :{{OPUS_ID}}, max_tokens: 16000, tools: tools, messages: messages ) while message.stop_reason :tool_use tool_results [] message.content.each do |block| next unless block.type :tool_use result execute_your_tool(block.name, block.input) tool_results { type: tool_result, tool_use_id: block.id, # 必须与 tool_use 块的 id 一一对应 content: result } end # 追加 assistant 回合原样回传 content与携带工具结果的 user 回合 messages { role: assistant, content: message.content } messages { role: user, content: tool_results } message client.messages.create( model: :{{OPUS_ID}}, max_tokens: 16000, tools: tools, messages: messages ) end # 循环结束后输出最终文本 message.content.each do |block| puts block.text if block.type :text end该模式的关键约束tool_use_id必须一一对应每个tool_result通过tool_use_id关联到对应的tool_use块API 会拒绝缺少匹配结果的后续请求这一约束在 C# 参考 中也有明确记载assistant 回合必须原样回传将模型的message.content直接放回消息序列避免服务端因内容被篡改而报错终止条件是stop_reason当message.stop_reason不再是:tool_use时循环结束此时content中通常包含最终文本块。五、与工具使用相关的扩展能力虽然关联文档本身只聚焦工具调用但结合仓库中其他 Ruby 文档可以在手动循环场景中进一步利用以下能力流式输出需要流式呈现工具循环中间结果时可参考 Ruby 流式参考使用client.messages.stream(...)后通过stream.text.each { |text| print(text) }逐段消费文本Beta 特性头betas:参数仅在client.beta.messages.create上有效非 beta 路径不可用例如 Ruby API 参考 中的task-budgets-2026-03-13任务预算特性错误分类工具调用失败时可通过rescue Anthropic::Errors::APIStatusError e并读取e.type如:rate_limit_error、:overloaded_error进行程序化处理见 Ruby API 参考。六、版本与适用前提说明本文示例中的{{OPUS_ID}}是 Claude Code 运行时插值模板变量需替换为实际模型标识后才能运行关联文档对应ccVersion: 2.1.246仓库整体对应 Claude Code v2.1.288见 README.md 的版本声明不同 Claude Code 版本可能调整模板细节CHANGELOG.md 持续追踪各版本的系统提示词变化client.beta.messages.tool_runner属于beta 能力接口形态可能在正式发布时调整手动循环则基于稳定的 Messages API适合对稳定性要求更高的生产环境。七、延伸阅读仓库内参考文件Ruby 工具使用参考关联文档 —— Tool Runner Beta 与手动循环指引的原始出处Ruby Claude API 参考 —— 安装、客户端初始化、扩展思考、提示缓存、停止详情与 Beta 特性Ruby 流式参考 —— 流式文本处理C# 工具使用参考 —— 跨语言对照BetaToolRunner与内容块重建规则PHP 工具使用参考 —— 跨语言对照toolRunner()与完整手动循环实现README.md —— 仓库说明与系统提示词清单总览赞分享文档提示工程人工智能【免费下载链接】claude-code-system-promptsAll parts of Claude Codes system prompt, 27 builtin tool descriptions, sub agent prompts (Plan/Explore/Task), utility prompts (CLAUDE.md, compact, statusline, magic docs, WebFetch, Bash cmd, security review, agent creation). Updated for each Claude Code version.项目地址https://gitcode.com/gh_mirrors/cl/claude-code-system-prompts点击查看免费下载相关推荐Claude Code System Prompts 中的 Claude API Ruby SDK 实战参考安装、客户端初始化、流式消息与 Beta Tool RunnerClaude Code System Prompts 中的 Claude API Ruby SDK 实战参考安装、客户端初始化、流式消息与 Beta Tool文档提示工程人工智能Ruby SDK 中的 Claude Tool Use 实战从 BaseTool 工具定义到 Tool Runner 自动 Agentic LoopRuby SDK 中的 Claude Tool Use 实战从 BaseTool 工具定义到 Tool Runner 自动 Agentic Loop 本篇技术人工智能AI 技能AI 评测使用 Go SDK 为 Claude 构建工具调用Tool Use应用Tool Runner 与手动循环实战使用 Go SDK 为 Claude 构建工具调用Tool Use应用Tool Runner 与手动循环实战 本文基于本仓库 skills/claude人工智能AI 技能AI 评测上一篇为Windows 11 LTSC一键安装微软商店的实战指南下一篇KMS_VL_ALL_AIO一站式解决Windows和Office激活难题的智能方案创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED

相关推荐

WiX Toolset 项目属性页完全指南:Visual Studio 中 Installer、Build、Build Events、Paths 与 Tool Settings 配置详解

WiX Toolset 项目属性页完全指南:Visual Studio 中 Installer、Build、Build Events、Paths 与 Tool Settings 配置详解

开发工具构建工具 【免费下载链接】wix3 WiX Toolset v3.x 项目地址: https://gitcode.com/gh_mirrors/wi/wix3 点击查看 免费下载 WiX Toolset(v3.x)为 Visual Studio 提供了完整的 WiX 项目支持(Votive)&#xff0c…

📅 2026/10/6 2:29:44
TVA智能体技术体系概述(24):双流自适应融合机制的原理与架构

TVA智能体技术体系概述(24):双流自适应融合机制的原理与架构

前沿技术探索:TVA智能体(简称TVA) TVA智能体(亦称“AI智能体视觉”)是依托Transformer架构与“因式智能体”理论构建的新型工业视觉系统,也是当前最具代表性的具身视觉技术之一。它有机融合深度强化学习&a…

📅 2026/10/6 2:29:44
Rust 枚举模式匹配:深入掌握 match 控制流与穷尽性检查(The Rust Programming Language 官方实践)

Rust 枚举模式匹配:深入掌握 match 控制流与穷尽性检查(The Rust Programming Language 官方实践)

教程文档 【免费下载链接】book The Rust Programming Language 项目地址: https://gitcode.com/gh_mirrors/bo/book 点击查看 免费下载 match 是 Rust 中最强大的控制流结构之一:它将一个值与一系列模式逐一比对,并执行首个匹配模式对应的代…

📅 2026/10/6 2:29:44
MORE NEWS

更多资讯

📰

单文件AI编码代理:操控GUI与接入MCP实战

我平时写代码有个习惯,能不动鼠标就不动鼠标。但现实很骨感——很多活儿偏偏卡在图形界面上:某个内部工具只有 GUI 没有命令行、某个桌面软件的批量操作只能靠点、某个调试面板的数据得手动抄下来。于是我就琢磨,能不能让 AI 编码代理顺手把这…

📰

电机控制器母线电容选型实战:容值计算、纹波校核与预充回路设计

先老实交代,我搞电机控制器的头两年,选母线电容基本靠“拍脑袋参考同行”。直到有一回样机做重载测试,母线电压掉到吓人,IGBT差点过压,电容外壳烫得能煎鸡蛋,领导站在旁边脸色铁青,我才老老实实…

📰

FPGA DDR4实战:MIG IP核配置与时序约束全解析

1. 为什么DDR4在FPGA上不是“接上线就能用”的简单外设?在FPGA开发圈里,有个流传甚广的错觉:只要把DDR4内存条插进开发板,照着原理图把引脚连到FPGA管脚上,再调个MIG IP核,数据就该哗哗地读写起来了。我第一…

📰

Agent服务描述优化:3.2万条样本总结的六要素写法

做 Agent 开发的人,很多都有过这种经历:模型选的是当下最强的,框架用的是社区最火的,工具接了一大堆,结果一跑起来,Agent 不是东答西问,就是明明连着十个工具却只用一个。这时候大多数人的第一反…

📰

河道垃圾识别:无人机图像识别的工程化落地实践

1. 这不是“飞起来拍张照就完事”的活儿:为什么河道垃圾识别比你想象中难十倍“无人机河道垃圾图像识别”——光看这九个字,很多人第一反应是:不就是让无人机飞过去,用摄像头拍几张图,再丢进某个现成的AI模型里跑一下&…

📰

大模型decode阶段硬件部署:显存带宽、KV Cache与批处理调优实战

1. 从“decode 阶段”说起:为什么硬件部署的成败往往卡在这一步聊 decode 阶段的硬件部署之前,得先把一个概念掰开揉碎:大模型推理分两个阶段,prefill 和 decode。prefill 是把整段 prompt 一次性喂进去,算力密集、并行…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬