站长自营 API 中转

正在比较模型套餐?可以把多个 AI API 接到一个网关里

ZZSwitch 是我自己运营的统一 API 网关,适合需要国内支付、兑换码充值、多模型切换和 OpenAI 兼容接口的开发者。不是 OpenCode 官方服务。

Kiro Prompt 日志记录

Kiro 管理员可以开启 Prompt 日志功能,将用户的内联代码补全请求和聊天对话记录存储到指定的 Amazon S3 存储桶。日志同时记录用户输入和 Kiro 响应,数据保存在管理员自己的 AWS 账户内。开启该功能除 S3 存储费用外无额外收费,可选配 KMS 密钥加密。配置前需先创建符合要求的 S3 存储桶并设置正确的桶策略,授予 Kiro 服务主体写入权限。

Kiro 管理员可以开启对所有内联补全建议和聊天对话的日志记录。这些日志有助于审计、调试、数据分析以及合规要求。

关于 Prompt 日志

开启后,Kiro 会同时记录用户输入的 Prompt 和 Kiro 的响应内容,并将日志存储在管理员指定的 Amazon S3 存储桶中(位于您自己的 AWS 账户内)。

除 S3 存储费用外,Prompt 日志功能本身不产生额外收费;如需使用 KMS 密钥加密存储桶,会有少量密钥管理费用。

开启 Prompt 日志

前提条件

创建一个用于存放 Prompt 日志的 Amazon S3 存储桶,该存储桶须满足以下条件:

  • 与 Kiro Profile 所在的 AWS Region 相同(该 Profile 在首次为用户订阅 Kiro Pro 时创建,详见 概念说明支持的 Region)。
  • 与用户订阅所在的 AWS 账户相同。
  • 配置如下桶策略(将 bucketNameRegionaccountIdprefix 替换为实际值):
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "KiroLogsWrite",
      "Effect": "Allow",
      "Principal": {
        "Service": "q.amazonaws.com"
      },
      "Action": [
        "s3:PutObject"
      ],
      "Resource": [
        "arn:aws:s3:::bucketName/prefix/*"
      ],
      "Condition": {
        "StringEquals": {
          "aws:SourceAccount": "111122223333"
        },
        "ArnLike": {
          "aws:SourceArn": "arn:aws:codewhisperer:us-east-1:111122223333:*"
        }
      }
    }
  ]
}

关于 S3 数据加密保护,请参阅 Amazon S3 用户指南:使用加密保护数据

操作步骤

  1. 打开 Kiro 控制台。
  2. 选择 Settings(设置)
  3. 找到 Kiro Settings > Logging 区域。
  4. 开启 Log Kiro prompts with metadata 开关。
  5. Amazon S3 location 字段中输入 S3 URI,例如:s3://amzn-s3-demo-bucket/kiro-prompt-logs/

日志示例

内联补全日志示例

用户接受一条内联代码建议时,Kiro 会生成如下格式的日志:

{
  "records": [
    {
      "generateCompletionsEventRequest": {
        "leftContext": "import * cdk from 'aws-cdk-lib';\r\nimport * s3 from 'aws-cdk-lib/aws-s3';\r\n...",
        "rightContext": "",
        "fileName": "cdk-modified.ts",
        "customizationArn": null,
        "userId": "d-92675051d5.b8f1f340-9081-70ad-5fc5-0f37151937a6",
        "timeStamp": "2025-01-06T15:09:16.412719Z"
      },
      "generateCompletionsEventResponse": {
        "completions": ["synth() {\n    return cdk.App.prototype.synth.apply(this, arguments);\n  }"],
        "requestId": "797c70ee-abc9-4cc7-a148-b9df17f6ce48"
      }
    }
  ]
}

内联补全日志字段说明:

字段名 说明
records 顶层字段,包含一组内联补全记录。
generateCompletionsEventRequest 描述 Kiro 代表用户发起的内联补全请求。
leftContext 光标左侧的代码上下文,Kiro 用于生成补全建议。
rightContext 光标右侧的代码上下文,Kiro 用于生成补全建议。
fileName 发生内联补全请求的文件名。
userId 发起请求的用户 ID。
timeStamp 请求时间,采用 UTC 格式。
generateCompletionsEventResponse 描述 Kiro 生成的内联补全结果。
completions 用户实际接受的补全代码内容。
requestId 唯一标识本次内联请求的 ID。

聊天对话日志示例

用户在 Kiro IDE 中发起聊天时,会生成如下格式的日志:

{
  "records": [
    {
      "generateAssistantResponseEventRequest": {
        "prompt": "Can you explain how to set up object-level access control in an S3 bucket using AWS CDK?",
        "chatTriggerType": "MANUAL",
        "customizationArn": null,
        "userId": "d-92675051d5.b8f1f340-9081-70ad-5fc5-0f37151937a6",
        "timeStamp": "2025-01-06T15:05:56.313070Z"
      },
      "generateAssistantResponseEventResponse": {
        "assistantResponse": "I'll explain how to set up object-level access control for an S3 bucket using AWS CDK...",
        "followupPrompts": "How can you implement multi-factor authentication for S3 bucket access using AWS CDK?",
        "messageMetadata": {
          "conversationId": "491bd3cd-d70d-40c0-a452-5ef3f0878422",
          "utteranceId": null
        },
        "requestId": "dad38fc0-815c-45f7-970a-db916cb7f131"
      }
    }
  ]
}

聊天日志字段说明:

字段名 说明
records 顶层字段,包含一组 Prompt-响应对记录。
generateAssistantResponseEventRequest 描述用户在聊天窗口中输入的 Prompt。
prompt 用户实际输入的问题或指令。
chatTriggerType MANUAL 表示用户手动输入或点击了建议问题;INLINE_CHAT 表示用户使用了代码编辑区的内联聊天。
userId 发起 Prompt 的用户 ID。
timeStamp Prompt 提交时间,采用 UTC 格式。
generateAssistantResponseEventResponse 描述 Kiro 生成的响应内容。
assistantResponse Kiro 返回给用户的完整响应文本。
followupPrompts 响应末尾展示给用户的后续建议问题。
conversationId 对话 ID,将同一会话中的多条消息归为一组。
utteranceId 单条话语 ID,在对话数据集中区分不同的 Prompt。
codeReferenceEvents 响应中引用的代码来源链接。
supplementaryWebLinksEvent 响应末尾展示给用户的参考网页链接。
requestId 唯一标识本次响应的 ID。

常见问题

Q:Prompt 日志会记录哪些内容?

会同时记录用户输入的 Prompt(包括内联补全的代码上下文和聊天消息)以及 Kiro 返回的响应。日志中包含用户 ID 和时间戳,但不包含 AWS 账号密码等凭证信息。

Q:S3 存储桶必须和 Kiro Profile 在同一 Region 吗?

是的,S3 存储桶必须与 Kiro Profile 所在的 AWS Region 相同,跨 Region 存储不受支持。

Q:如何加密日志文件中的敏感内容?

建议为 S3 存储桶启用服务端加密(SSE),可使用 AWS 管理的密钥(SSE-S3)或客户自管理的 KMS 密钥(SSE-KMS)。KMS 密钥会产生少量额外费用。

站长自营 API 中转

ZZSwitch API 中转

统一接入多家模型,支持兑换码充值。

打开 ZZSwitch