AI Co-Builder:Arc

AI Co-Builder: Arc(简称 Arc)是直接在 CX Agent Studio 中构建的编码智能体。 它具备构建智能体应用所需的所有技能:

  • 多智能体架构
  • 说明
  • 工具实现(例如:OpenAPI 工具和 Python 工具)
  • 回调实现
  • 保护措施
  • 版本

如需使用 Arc,请点击代理构建器顶部的 Arc 图标,然后向代理提供提示。

上传文件

您可以向消息附加文件,为 Arc 提供更多背景信息: 产品需求文档、抽样数据文件、 需要调用的外部服务的详细信息, 或现有配置的归档。

Arc 会根据文件格式,以三种方式处理文件:

如何使用 格式 具体变化
直接阅读 PDF、PNG、JPG、JPEG、WAV、OGG 文件会按原样提供给模型。
以文本形式朗读 TXT、MD、JSON、CSV、HTML、JS、XML、RTF、CSS 该文件的文本会添加到您的消息中。仅包含前 262,144 个字符;如果文件更长,请让 Arc 继续读取。
未打包 邮编 系统会解压缩归档文件,并使其文本文件可供搜索。归档文件本身不会发送给模型,其中的非文本条目会列出,但不会被读取。如需让 Arc 读取 ZIP 归档文件中的非文本文件(例如 PDF 或图片),请直接上传该文件。

存在以下文件限制:

  • 每条消息最多可上传 5 个文件
  • 文件大小上限为 20 MB
  • ZIP 归档文件大小上限为 500 MB

文件存储

上传的内容会存储到您自己项目中的 Cloud Storage 存储桶内,前缀为 agent-assist-uploads/。该存储桶位于与代理应用位置匹配的 Cloud Storage 位置,并且该位置的所有代理应用都会共享该存储桶:

代理应用位置 存储桶名称 存储桶位置
us PROJECT_ID-agent-assist-artifacts-us US 多区域
eu PROJECT_ID-agent-assist-artifacts-eu EU 多区域

如果存储桶不存在, 当您以登录用户身份上传文件时,控制台会创建存储桶, 该用户需要 storage.buckets.create 权限; 当 Arc 为对话生成文件时, Customer Engagement Suite Service Agent 会创建存储桶。 上传文件需要 storage.objects.create 权限。

Arc 会使用以下设置创建存储桶:

如果存储桶已存在于您的项目中,Arc 会按原样使用它,并应用其自己的生命周期政策。Arc 不会检查或更改其位置、标签或默认密钥。

组织政策和加密密钥

如果您使用 constraints/gcp.resourceLocations 组织政策限制条件来限制资源位置,则该政策必须允许存储桶的位置,例如 EU 多区域的值组 in:eu-locations。否则,Arc 无法创建存储桶,并且上传会失败。

如果您的项目使用客户管理的加密密钥 (CMEK),Arc 会使用您的密钥为智能体应用的位置创建存储桶作为其默认密钥,如果无法使用该密钥,则不会创建存储桶。如需让 Cloud Storage 使用该密钥,请执行以下操作:

  • 在与存储桶位置匹配的密钥位置创建密钥:us 对应 US 多区域,europe 对应 EU 多区域。
  • 向项目的 Cloud Storage 服务代理 service-PROJECT_NUMBER@gs-project-accounts.iam.gserviceaccount.com 授予密钥的 roles/cloudkms.cryptoKeyEncrypterDecrypter 角色。以下命令会创建服务代理(如果尚不存在),并向其授予角色:

    gcloud storage service-agent --project=PROJECT_ID --authorize-cmek=KEY_RESOURCE
    

    将 PROJECT_ID 替换为您的项目 ID,将 KEY_RESOURCE 替换为密钥的完整资源名称。

提前创建存储桶

您可以自行创建存储桶,例如,如果使用 Arc 的用户没有 storage.buckets.create 权限。使用本部分前面表格中的名称和位置,并为存储桶指定与 Arc 相同的设置。首先,将以下生命周期规则保存在名为 lifecycle-63d.json 的文件中:

{"rule": [{"action": {"type": "Delete"}, "condition": {"age": 63}}]}

然后创建存储桶并添加标签和生命周期规则:

gcloud storage buckets create gs://PROJECT_ID-agent-assist-artifacts-LOCATION \
    --project=PROJECT_ID --location=LOCATION --default-storage-class=STANDARD \
    --uniform-bucket-level-access --public-access-prevention
gcloud storage buckets update gs://PROJECT_ID-agent-assist-artifacts-LOCATION \
    --update-labels=goog-drz-ces-app-id=APP_ID,goog-drz-ces-app-location=LOCATION \
    --lifecycle-file=lifecycle-63d.json

对于使用 CMEK 的项目,请先向服务代理授予对密钥的访问权限,如上一部分所述。然后,将 --default-encryption-key 标志添加到 create 命令,使该密钥成为存储桶的默认密钥:

gcloud storage buckets create gs://PROJECT_ID-agent-assist-artifacts-LOCATION \
    --project=PROJECT_ID --location=LOCATION --default-storage-class=STANDARD \
    --uniform-bucket-level-access --public-access-prevention \
    --default-encryption-key=KEY_RESOURCE

将 PROJECT_ID 替换为您的项目 ID,将 LOCATION 替换为 us 或 eu,将 APP_ID 替换为该位置中某个代理应用的 ID,将 KEY_RESOURCE 替换为密钥的完整资源名称。

在位置感知存储功能推出之前上传的文件

Arc 于 YEAR 年 MONTH 月开始在代理应用的位置存储文件。如果您是在此之后设置 Arc 的,则可以跳过此部分。

在 Arc 将文件存储在代理应用的位置之前,它会将每个上传的文件保存在 US 多区域中的单个存储桶 PROJECT_ID-agent-assist-artifacts 中,以供每个位置的代理应用使用。该存储桶的名称没有位置后缀。

如需区分这些文件,请查看存储这些文件的存储桶:

  • 在位置感知存储功能推出之前上传的文件位于 PROJECT_ID-agent-assist-artifacts 存储桶中。
  • 自此之后上传的文件将存储在代理应用所在位置(PROJECT_ID-agent-assist-artifacts-LOCATION)的存储桶中,如文件存储中的表格所示。Arc 在您首次上传后显示的通知中会指明存储桶名称。 在发送邮件之前,您可以将指针悬停在附加文件上,查看文件的存储位置。

在位置感知存储功能推出之前开始的对话,会继续将 Arc 为其生成的文件保存在 PROJECT_ID-agent-assist-artifacts 存储桶中。Arc 不会更改存储桶或移动其文件,因此其生命周期规则仍会在上传 75 天后删除文件,并且一旦这些对话停止使用该存储桶,该存储桶就会自行清空。 无论您将文件附加到哪个对话,附加的文件都会进入代理应用所在位置的存储桶。

如需将您上传到这些对话中的文件保留更长时间,请将其复制到您自己的不会自动删除文件的存储桶中:

gcloud storage cp -r gs://PROJECT_ID-agent-assist-artifacts/agent-assist-uploads \
    gs://ARCHIVE_BUCKET/

将 ARCHIVE_BUCKET 替换为符合您要求的存储桶。该副本只是一个归档;这些对话会继续从 PROJECT_ID-agent-assist-artifacts 存储桶中读取。

在最后一次使用这些对话 60 天后,删除 PROJECT_ID-agent-assist-artifacts 存储桶;Arc 会在最后一次活动 60 天后删除对话。如需删除存储桶及其中的文件,请运行以下命令:

gcloud storage rm -r gs://PROJECT_ID-agent-assist-artifacts

思维链

在处理过程中,Arc 会分段展示其思维链。 您可以展开其中任何一个部分,详细了解代理的推理过程。

选择上下文

在提示对话框中,您可以点击选择上下文按钮,然后添加您希望 Arc 在提示中使用的其他上下文。例如,您可以点击此按钮, 然后在代理构建器中点击特定代理, 接着让 Arc 为您解释该代理。