Cortex Code Agent SDK 参考 – TypeScript¶
本主题提供了适用于 TypeScript 的 Cortex Code Agent SDK(包括所有函数、类型和接口)的完整 API 参考。
安装¶
需要 Node.js 18 或更高版本。该包仅适用于 ESM。SDK 需要单独安装 Cortex Code CLI。如果它不在你的 PATH 上,请在会话选项中设置 CORTEX_CODE_CLI_PATH=/path/to/cortex 或传递 cliPath。
函数¶
query()¶
与 Cortex Code 交互的主要函数。创建一个异步生成器,用于在消息到达时流式传输消息。
参数
参数 |
类型 |
描述 |
|---|---|---|
|
|
单个用户提示,或用于流式输入的 SDK 用户消息的异步可迭代对象。 |
|
|
可选配置对象(请参阅 选项) |
返回
一个 Query 对象,它通过额外的控制方法扩展 AsyncGenerator<CortexCodeEvent>。
示例
createCortexCodeSession()¶
为多轮对话创建持久会话。
示例
查询对象¶
由 query() 返回。扩展 AsyncGenerator<CortexCodeEvent>
方法 |
描述 |
|---|---|
|
将 SIGINT 发送至底层过程 |
|
为活动查询中的后续轮次更改权限模式 |
|
为后续轮次更改模型 |
|
从 CLI 返回初始化握手元数据 |
|
当 CLI 通告支持时,从初始化响应中返回斜杠命令的元数据 |
|
当 CLI 通告支持时,从初始化响应中返回模型元数据 |
|
当 CLI 通告支持时,从初始化响应中返回自定义代理元数据 |
|
当 CLI 通告支持时,从初始化响应中返回账户元数据 |
|
将额外的 SDK 用户消息流式传输到活动查询中 |
|
通过 ID 取消正在运行的后台任务 |
|
关闭会话并终止过程 |
CortexCodeSession 接口¶
由 createCortexCodeSession() 返回。支持多轮对话,并实现了用于 await using 的 ``AsyncDisposable``(Node.js 24+ 及以上版本)。
属性/方法 |
描述 |
|---|---|
|
底层 CLI 过程的 PID |
|
发送纯文本或结构化 SDK 用户消息 |
|
从代理处流式传输事件 |
|
从 CLI 返回初始化握手元数据 |
|
发送中断信号 |
|
为会话中的后续轮次更改权限模式 |
|
在会话期间更改模型 |
|
通过 ID 取消正在运行的后台任务 |
|
结束会话并终止过程 |
|
调用 |
选项¶
传递给 query() 或 createCortexCodeSession() 的配置。
选项 |
类型 |
默认值 |
描述 |
|---|---|---|---|
|
|
当前的过程工作目录 |
会话的工作目录。如果省略,则 SDK 会继承当前过程工作目录。 |
|
|
CLI 默认值 |
要使用的模型。使用 |
|
|
CLI 默认值 |
来自 Snowflake CLI 连接设置的 Snowflake 连接名称,通常为 |
|
|
|
配置文件名称(加载自 |
|
|
|
用于恢复先前对话的会话 ID |
|
|
|
继续最近的对话。无需会话 ID 即可恢复上一个会话。 |
|
|
|
将恢复的会话派生到新的会话 ID 中,而不是在原位置继续执行。配合 |
|
|
|
用于对话的显式会话 ID。如果省略,则 CLI 会自动生成一个。 |
|
|
|
|
|
|
|
使用 |
|
|
|
无需提示即可自动批准的工具 |
|
|
|
始终拒绝的工具 |
|
|
在每次工具执行之前调用的自定义权限处理程序。请参阅 canUseTool 回调。 |
|
|
|
|
用于权限提示的 MCP 工具名称。提供 |
|
|
|
停止前的最大代理轮次数。达到最大次数后,会话会发出 |
|
|
|
模型的思考工作量级别。 |
|
|
|
可提供给会话使用的额外工作目录。 |
|
|
|
要加载的插件目录。接受路径为字符串或 |
|
|
|
将环境变量合并到生成的过程环境中。将键设置为 |
|
|
|
通过调用控制器上的 |
|
|
|
自定义系统提示。传入字符串可完全替换默认提示,或传入 SystemPromptPreset 以对其进行扩展。 |
|
|
|
追加到默认系统提示的文本。使用此文本可添加说明,而无需替换内置提示。 |
|
|
|
用于拦截工具执行及其他代理事件的 Hook 回调。请参阅 Hook。 |
|
|
|
要加载的设置来源。 |
|
|
|
包含令牌级别的流式传输事件 |
|
|
|
外部 MCP 服务器配置。键为服务器名称,值为服务器配置(例如 |
|
|
|
禁用 MCP 服务器 |
|
|
|
结构化输出 – 根据 JSON 模式验证最终响应 |
|
|
|
自定义 CLI 二进制文件的路径。如果省略,SDK 会首先检查 |
|
|
|
以键值对形式提供的额外 CLI 参数。 |
canUseTool 回调¶
在每次工具执行之前调用的自定义权限处理程序。返回允许或拒绝的结果,以控制工具调用是否继续执行。
对于许多常规的工具权限检查,回调输入包含诸如 { action, resource } 之类的字段。允许/拒绝结果和可选的拒绝消息用于这些检查。updatedInput 用于 SDK 路由的伪工具(例如 AskUserQuestion 和 ExitPlanMode),这些工具包含特定于工具的字段。
示例
SystemPromptPreset¶
使用预设对象来扩展内置提示,而不是完全替换系统提示。
示例
Hook¶
Hook 允许您拦截代理事件,例如工具执行。每个 Hook 事件映射到一个匹配器数组,每个匹配器包含一个可选的模式,以及一次或多次回调。
示例
消息类型¶
由 query() 和 session.stream() 生成的事件:
SDKAssistantMessage¶
当代理产生响应时发出。包含一个或多个内容块。
SDKResultMessage¶
当代理完成一次轮转时发出。检查 subtype 以确定成功或错误。
SDKUserMessage¶
处理用户消息时回显。
SDKSystemMessage¶
系统事件,例如会话初始化。
内容块¶
类型 |
字段 |
|---|---|
|
|
|
|
|
|
|
|
流式传输事件¶
类型 |
描述 |
|---|---|
|
部分文本/思维流(需要 |
|
|
|
|
针对部分文本和思维块发出 SDKPartialAssistantMessage。完整的工具调用仍然以 AssistantMessage 块的形式到达,工具结果仍然以 UserMessage 块的形式到达。
结构化输出¶
强制代理返回与 JSON 模式匹配的响应:
有关更多信息,请参阅 结构化输出。
错误处理¶
法律声明¶
如果 Cortex Code 配置使用 模型和服务直通条款 中提供的模型,则您对该模型的使用将进一步受该页面上该模型的条款的约束。
输入和输出的 Data Classification 如下表所示。
输入 Data Classification |
输出 Data Classification |
名称 |
|---|---|---|
Usage Data |
客户数据 |
涵盖的 AI 功能 [1] |
有关更多信息,请参阅 Snowflake AI 和 ML。