随着 Goose 开源 AI Agent 的发布,以及 Snowflake Cortex 集成的落地,我们正步入一个由数据驱动的 AI 新时代。本文将深入探讨如何利用 Goose 与 Snowflake 强大的组合,将大型语言模型 (LLM) 的能力与 Snowflake 的数据仓库无缝连接,从而构建更智能、更高效的 agentic 流程和工作流。

Goose:连接 LLM 与现实世界的桥梁

Goose 是一个开源、可扩展的 AI Agent,它充当了 LLM 与现实世界行动之间的桥梁。它支持多种 LLM 提供商和前沿模型, democratized AI 的使用,并允许用户构建 agentic 流程和工作流。 Goose 基于 Model Context Protocol (MCP) 开放标准构建,Block 是该标准的早期采用者和贡献者。这意味着 Goose 能够与各种工具集成,访问广泛的功能。例如,Goose 可以连接到内容仓库和业务应用程序,从而实现更复杂、更自动化的任务。

想象一下,你需要从多个在线资源中收集信息,并根据这些信息撰写一份报告。使用传统的流程,你需要手动搜索、筛选和整理数据,这可能非常耗时且容易出错。但是,使用 Goose,你可以创建一个 agentic 流程,自动完成这些任务。 Goose 可以使用不同的 LLM 来理解你的目标,利用其内置的扩展程序来访问必要的工具,并最终生成一份高质量的报告。

Snowflake Cortex:赋能 Goose 的数据智能引擎

Snowflake Cortex 提供了一套强大的模型服务,包括 Cortex Complete (文本生成)、Cortex Search (模糊搜索) 和 Cortex Analyst (文本到 SQL)。通过与 Goose 集成,Snowflake Cortex 能够为 Goose 提供强大的数据智能支持,使其能够基于 Snowflake 中的数据进行分析、推理和决策。

Snowflake Labs 开源的 MCP 服务器支持以下功能:

  • Cortex Complete: 使用支持的语言模型生成完成响应。这允许 Goose 根据 Snowflake 中存储的数据生成文本内容。例如,可以利用 Cortex Complete 生成营销文案、产品描述或客户支持回复。
  • Cortex Search: 提供低延迟、高质量的 “模糊” 搜索,用于检索非结构化数据。这意味着 Goose 可以快速找到 Snowflake 中与用户查询相关的文档、日志或其他文本数据。例如,可以使用 Cortex Search 来查找与特定客户或产品相关的投诉。
  • Cortex Analyst: 将自然语言转换为 SQL 查询,从而实现对结构化数据的轻松访问。这使得 Goose 可以用自然语言查询 Snowflake 中的数据,而无需编写复杂的 SQL 代码。例如,可以使用 Cortex Analyst 来查询客户的购买历史记录或产品的库存水平。

Goose 与 Snowflake 集成:实战指南

要开始使用 Goose 和 Snowflake,请按照以下步骤操作:

  1. 安装 Goose: 按照 Goose 的安装说明进行操作。安装完成后,系统会提示你配置 Goose 的 provider,选择 Snowflake。

  2. 配置 Snowflake Provider: 配置 Snowflake 作为 provider,只需提供主机名和程序化访问令牌 (PAT)。

  3. 启用 Snowflake 扩展: 在 Goose 中启用 Snowflake 扩展,以便 Goose 能够访问 Snowflake Cortex 的功能。

配置完成后,你就可以开始使用 Goose 与 Snowflake 进行交互了。例如,你可以向 Goose 提出有关 Snowflake 中数据的自然语言问题,Goose 会自动调用 Snowflake Cortex 的相应服务来回答你的问题。

案例分析:利用 Goose 和 Snowflake 进行财务数据分析

假设你是一家金融机构的分析师,你需要分析公司的财务数据以检测异常情况。你可以使用 Goose 和 Snowflake 来自动执行此过程。

首先,你可以配置 Goose 连接到 Snowflake,并访问包含财务数据的数据库。然后,你可以创建一个 agentic 流程,该流程执行以下步骤:

  1. 数据提取: 使用 Goose 从 Snowflake 中提取财务数据,例如收入、支出和利润。
  2. 异常检测: 使用 Goose 调用 Snowflake Cortex 的分析服务,例如异常检测模型,来识别财务数据中的异常情况。
  3. 问题诊断: 如果检测到异常情况,则使用 Goose 调用其他扩展程序来进一步诊断问题,例如访问日志文件或数据库审计记录。
  4. 报告生成: 使用 Goose 生成一份报告,概述检测到的异常情况及其潜在原因。

通过使用 Goose 和 Snowflake,你可以大大提高财务数据分析的效率和准确性。

拓展应用:Goose 与 Snowflake 的无限可能

Goose 与 Snowflake 的集成不仅仅局限于财务数据分析。它还可以在许多其他领域发挥作用,例如:

  • 客户服务: 使用 Goose 和 Snowflake 来自动回答客户的问题,并提供个性化的支持。例如,当客户提出问题时,Goose 可以访问 Snowflake 中存储的客户数据,并根据客户的个人情况提供量身定制的答案。
  • 市场营销: 使用 Goose 和 Snowflake 来创建更有针对性的营销活动。例如,可以使用 Goose 来分析 Snowflake 中存储的客户数据,并识别具有相似兴趣和需求的客户群体。然后,可以使用这些信息来创建针对特定客户群体的个性化广告。
  • 风险管理: 使用 Goose 和 Snowflake 来识别和减轻风险。例如,可以使用 Goose 来分析 Snowflake 中存储的交易数据,并检测欺诈行为。
  • 软件开发: Goose 自带的 Developer 扩展提供了关键的软件开发工具,可以激活 Computer Controller 和 Memory 集成等选项。

结论:拥抱 Goose 与 Snowflake,开启 AI Agent 的未来

GooseSnowflake Cortex 的结合代表了 AI Agent 领域的一个重要里程碑。通过将 LLM 的强大功能与 Snowflake 的数据仓库无缝连接,我们能够构建更智能、更高效的 agentic 流程和工作流。无论是分析财务数据、提供客户支持还是进行市场营销,Goose 和 Snowflake 都能帮助你提高效率、降低成本并做出更明智的决策。随着 Goose 和 Snowflake 的不断发展,我们有理由相信,它们将在未来的 AI 发展中发挥越来越重要的作用。

我个人一直在使用 Goose 来分析我们团队的 Snowflake 查询使用情况,以检测异常情况。接下来,我可以使用其他扩展程序来总结并帮助我编写查询,以进一步诊断异常情况。将 Goose 会话转换为可重复使用的配方,其中包含你使用的工具、目标和设置,将其打包成一个新的 agent,其他人(或你未来的自己)只需单击一下即可启动。

我很高兴能为 Goose 做出贡献,并为该项目的用户启用此 Snowflake 功能。我迫不及待地想看看这些集成在未来如何发展。同时,我希望你能查看 Goose 并试用新的扩展程序!

深入 MCP 服务器:Cortex Complete, Cortex Search 和 Cortex Analyst 的协同作用

Snowflake Lab 新开源的 MCP 服务器 提供了 Cortex CompleteCortex SearchCortex Analyst 三大核心功能,它们共同构成了 Goose 与 Snowflake 交互的强大基石。

为了更清晰地理解这三者是如何协同工作的,让我们结合具体的代码示例和应用场景来进行分析。

1. Cortex Complete:文本生成的无限可能

Cortex Complete 允许 Goose 利用 Snowflake 内部的语言模型来生成文本。这为自动化内容创作、数据摘要和报告生成等任务打开了无限可能。

例如,我们可以使用 Cortex Complete 基于 Snowflake 中存储的客户评论数据生成产品总结:

# 假设已经配置好 Goose 和 Snowflake 连接
goose_instance = Goose(snowflake_config)

prompt = "根据以下客户评论,总结产品的主要优点和缺点:\n" + get_customer_reviews_from_snowflake()  # 从 Snowflake 获取评论

summary = goose_instance.complete(prompt, model="snowflake_cortex_complete")

print(summary)

这段代码首先从 Snowflake 获取客户评论数据,然后将其作为 prompt 传递给 Goose 的 complete 方法。complete 方法会调用 Snowflake Cortex Complete 服务,利用其内部的语言模型生成产品总结。

2. Cortex Search:精准定位关键信息

Cortex Search 提供了低延迟、高质量的 “模糊” 搜索功能,使得 Goose 能够快速找到 Snowflake 中与用户查询相关的非结构化数据。这对于知识库检索、信息挖掘和威胁情报分析等任务至关重要。

以下是一个使用 Cortex Search 查找与特定客户相关的支持文档的示例:

customer_id = "12345"
query = f"查找与客户 ID {customer_id} 相关的支持文档"

results = goose_instance.search(query, service_name="SUPPORT_DOCUMENTS_SEARCH")  # 指定搜索服务

for result in results:
    print(f"文档标题:{result['title']}")
    print(f"文档内容:{result['content'][:200]}...") # 打印部分内容

这段代码使用 Goose 的 search 方法在名为 “SUPPORTDOCUMENTSSEARCH” 的搜索服务中查找与特定客户相关的支持文档。search 方法会调用 Snowflake Cortex Search 服务,返回与查询相关的文档列表。

3. Cortex Analyst:自然语言驱动的数据分析

Cortex Analyst 能够将自然语言转换为 SQL 查询,从而实现对 Snowflake 中结构化数据的轻松访问。这使得非技术用户也能够使用自然语言查询数据,进行分析和决策。

以下是一个使用 Cortex Analyst 查询特定产品的销售额的示例:

product_name = "Awesome Product"
query = f"查询产品 {product_name} 的总销售额"

sql_query = goose_instance.translate_to_sql(query, service_name="SALES_DATA_ANALYST") # 指定分析服务

sales_data = snowflake_execute_query(sql_query) # 执行 SQL 查询

print(f"{product_name} 的总销售额为:{sales_data['total_sales']}")

这段代码使用 Goose 的 translate_to_sql 方法将自然语言查询转换为 SQL 查询,然后在 Snowflake 中执行该查询,获取特定产品的销售额。translate_to_sql 方法会调用 Snowflake Cortex Analyst 服务,将自然语言查询转换为 SQL 查询。

总结

Cortex CompleteCortex SearchCortex Analyst 三者并非孤立存在,而是相互协作,共同为 Goose 提供强大的数据智能支持。例如,我们可以先使用 Cortex Search 找到与特定主题相关的文档,然后使用 Cortex Complete 总结这些文档的内容,最后使用 Cortex Analyst 查询与这些文档相关的结构化数据。这种协同作用使得 Goose 能够处理复杂的任务,并提供更深入的洞察力。

通过深入理解并灵活运用这三大功能,我们可以充分释放 Goose 与 Snowflake 的潜力,构建更智能、更高效的 AI Agent 应用。