Skip to main content

使用 Ruby SDK 运行

当你想从 Ruby 中向智能体发送消息时,请使用官方的 fetch_hive gem。该 SDK 封装了公开的 POST /v1/agent/invoke 端点,处理身份验证,通过块支持流式响应,并接受多模态输入。

安装

在 Gemfile 中添加:
然后运行:
或直接安装:
该 gem 在底层使用 faraday,支持 Ruby 3.0+。

身份验证

将 FETCH_HIVE_API_KEY 环境变量设置为你的工作区 API 密钥(客户端会自动读取):
或显式传入密钥:
请参阅 API Keys 了解如何创建和轮换密钥。

基本示例

向智能体发送消息并读取最终响应:
请参阅非流式响应结构。

方法参考

该 SDK 为 invoke_agent 注入 streaming: false。要进行流式调用,请使用 invoke_agent_stream(见下文)。

处理响应

流式

使用 invoke_agent_stream 在事件到达时接收 Server-Sent Events。该方法会将每个解析后的事件 hash 提供给块:
该流会产出在 Invoke Agent → Response 中记录的相同事件类型:summary(在自动摘要触发时)、reasoning、response、tool、最终的 usage 事件,或在提供商在流过程中失败时的 error 事件。 如果省略块,该方法会返回一个可传递的 Enumerator:

多轮对话

持久化线程

将任意字符串作为 thread_id 传入,Fetch Hive 会在首次调用时创建该线程,并在每次使用相同值的后续调用中恢复该线程:

无状态历史

自行管理状态,在 messages 中传入先前的回合。Fetch Hive 会将提供的历史用作上下文,但不会持久化:

多模态输入

使用 attachments 在当前消息上附加图像:
URL 必须以 https:// 开头。

配置

错误

非 2xx 响应会引发带状态码和响应体的 RuntimeError。如果你需要处理失败,请使用 rescue 捕获:
请参阅错误和速率限制了解状态码含义。

链接

下一步

工具审批

当工具需要审批时,调用响应包含 status: "awaiting_approval" 和 pending_tool_approvals。使用 decide_tool_action_approval 做出决定。decision 为 "allow_once" 或 "deny"。用 list_tool_action_approvals 列出待审批项,或用 get_tool_action_approval 获取一条。always_allow 只能在控制台中设置。 API 密钥调用会在决定之后由服务器继续。轮询这次运行,或使用 webhook。不要发送 decided_tool_approvals。 工作区所有者或管理员可以在“设置 → API 密钥”中允许该密钥自动批准操作。在 invoke_agent、invoke_agent_stream 或 invoke_workflow 上把 tool_approval 设为 "auto_approve"。它只作用于这一次调用。省略该字段或传入 "policy" 时,遵循工作区规则以及已保存的自动批准开关。破坏性操作仍然会询问。拒绝规则仍然会阻止操作。参见工具审批。