Cortex Code Agent SDK 快速入门¶
本主题将带您构建一个 AI 代理,该代理可读取数据管道脚本、发现其中的错误,并使用 Cortex Code Agent SDK 自动修复这些错误。
您将完成以下内容:
使用 Cortex Code Agent SDK 设置项目。
创建一个包含若干错误的数据管道脚本。
运行代理,使其无需人工干预即可自动发现并修复错误。
先决条件¶
设置¶
1.安装 Cortex Code CLI¶
安装 CLI:
验证安装:
2.设置项目¶
创建并进入项目目录:
3.安装 SDK¶
创建数据管道脚本¶
创建一个包含刻意错误的数据管道脚本,供代理修复:
此代码存在两个问题:
computeConversionRate/compute_conversion_rate在未检查是否为零的情况下除以clicks,对于没有点击的活动,会返回NaN或Infinity(TypeScript),或在 Python 中抛出ZeroDivisionError。formatReport/format_report在未检查结果列表是否为空的情况下调用max/reduce,当没有数据行时,会在 Python 中抛出ValueError或TypeError(TypeScript)。
构建一个可自动发现并修复错误的代理¶
该代码包含三个主要部分:
query():创建代理循环的主入口函数。它会返回一个异步迭代器,您可以在对应语言的异步循环中消费该迭代器,以在代理执行过程中实时获取消息流。完整的 API 内容请参考 TypeScript 或 Python 参考。
prompt:您希望代理执行的任务。用于告知代理需要完成的具体工作。
options:代理配置项。
connection用于指定用于身份验证的 Snowflake CLI 连接;allowedTools指定哪些工具可自动批准(无需提示);disallowedTools可用于完全阻止某些工具。其他选项还包括model、mcp_servers等。
流式循环在代理思考、调用工具、观察结果并决定下一步操作时持续运行。每次迭代都会输出一条消息:包括代理推理、工具调用、工具结果或最终结果。SDK 负责整体编排。
运行代理¶
运行完成后,请检查报告文件。您将看到防御性代码,用于处理空结果和零点击活动等情况。您的代理可自主执行以下操作:
读取 文件以理解代码。
分析 逻辑并识别可能导致崩溃的边界情况。
编辑 文件并加入合理的错误处理机制。
多轮对话¶
在需要共享上下文并进行交互会话的场景中,请使用 客户端 API:
尝试其他提示¶
代理配置完成后,您可以尝试不同的提示:
"Add comprehensive type hints to all functions in report.py""Write a SQL query that finds the top 10 campaigns by conversion rate""Add input validation to all functions in report.py""Create a README.md documenting the functions in report.py"
关键概念¶
权限模式¶
权限模式用于控制工具调用时的人类干预级别:
模式 |
行为 |
用例 |
|---|---|---|
执行所有工具调用而无需提示确认。需要 |
沙盒化 CI,完全可信环境 |
|
|
使用标准权限检查。在 SDK 会话中,可通过配置 |
使用显式权限策略的受控工作流 |
|
自动批准计划请求及计划退出确认。它不会绕过常规工具权限。 |
适用于需要自动通过计划审批的特定工作流 |
|
从规划开始;批准 |
代码审查、分析 |
要对单个工具调用进行精细控制,请使用 canUseTool 回调。请参阅 处理审批与用户输入 了解详细信息。
后续步骤¶
处理审批与用户输入:通过
canUseTool回调控制代理可使用的工具。TypeScript SDK 参考:
query()、createCortexCodeSession()、类型及事件的完整 API 文档。Python SDK 参考:
query()、CortexCodeSDKClient、MCP、工具及 Hook 的完整 API 文档。
法律声明¶
如果 Cortex Code 配置使用 模型和服务直通条款 中提供的模型,则您对该模型的使用将进一步受该页面上该模型的条款的约束。
输入和输出的 Data Classification 如下表所示。
输入 Data Classification |
输出 Data Classification |
名称 |
|---|---|---|
Usage Data |
客户数据 |
涵盖的 AI 功能 [1] |
有关更多信息,请参阅 Snowflake AI 和 ML。