View in English

  • Apple 开发者
    • 入门汇总

    探索“入门汇总”

    • 概览
    • 学习
    • Apple Developer Program

    及时了解最新动态

    • 最新动态
    • 开发者你好
    • 平台

    探索“平台”

    • Apple 平台
    • iOS
    • iPadOS
    • macOS
    • Apple tvOS
    • visionOS
    • watchOS
    • App Store

    精选

    • 设计
    • 分发
    • 游戏
    • 配件
    • 网页
    • Home
    • CarPlay 车载
    • 技术

    探索“技术”

    • 概览
    • Xcode
    • Swift
    • SwiftUI

    精选

    • 辅助功能
    • App Intents
    • Apple 智能
    • 游戏
    • 机器学习与 AI
    • 安全性
    • Xcode Cloud
    • 社区

    探索“社区”

    • 概览
    • “与 Apple 会面交流”活动
    • 社区主导的活动
    • 开发者论坛
    • 开源

    精选

    • WWDC
    • Swift Student Challenge
    • 开发者故事
    • App Store 大奖
    • Apple 设计大奖
    • Apple Developer Centers
    • 文档

    探索“文档”

    • 文档库
    • 技术概述
    • 示例代码
    • 《人机界面指南》
    • 视频

    发布说明

    • 精选更新
    • iOS
    • iPadOS
    • macOS
    • watchOS
    • visionOS
    • Apple tvOS
    • Xcode
    • 下载

    探索“下载”

    • 所有下载
    • 操作系统
    • 应用程序
    • 设计资源

    精选

    • Xcode
    • TestFlight
    • 字体
    • SF Symbols
    • Icon Composer
    • 支持

    探索“支持”

    • 概览
    • 帮助指南
    • 开发者论坛
    • “反馈助理”
    • 联系我们

    精选

    • 《开发者账户帮助》
    • 《App 审核指南》
    • 《App Store Connect 帮助》
    • 即将实行的要求
    • 协议和准则
    • 系统状态
  • 快速链接

    • 活动
    • 新闻
    • 论坛
    • 示例代码
    • 视频
 

视频

打开菜单 关闭菜单
  • 专题
  • 所有视频
  • 关于

更多视频

  • 简介
  • 概要
  • 代码
  • 保护你的 App:智能体功能的风险缓解

    了解如何评估因间接提示词注入而导致的威胁,例如数据外泄和意外操作。探索在使用 App Intents 和 Foundation Models 框架时需要注意的系统防护措施与安全最佳做法,包括用户确认、安全提示词设计和身份验证等风险缓解措施。

    章节

    • 0:00 - Introduction
    • 2:06 - Risks
    • 6:32 - Threat modeling
    • 11:56 - Implementing mitigations
    • 12:03 - Foundation Models
    • 17:55 - App Intents

    资源

    • Security Overview
      • 高清视频
      • 标清视频

    相关视频

    WWDC26

    • 使用 App Schemas 打造智能 Siri 体验
    • 使用 Foundation Models 框架构建智能体 App 体验
    • 探索适用于 Siri 和 Apple 智能的 App Intents 高级功能

    WWDC25

    • 探索设备端基础模型的提示设计和安全

    WWDC20

    • 保护你的 app 威胁建模和反面模式
  • 搜索此视频…
    • 12:50 - Tools

      // Tools
      
      struct OrderTeaTool: Tool {
        let name = "orderTeaTool"
        let description: String = "Orders a particular quantity of a tea from the store."
        // Arguments
        // Implementation
      }
      
      struct PostAndFetchPublicFeedTool: Tool {
        let name = "postAndFetchPublicFeedTool"
        let description: String = "Posts a message to the public feed.”
        // Arguments
        // Implementation
      }
    • 13:13 - Profile

      // Profile
      
      class LooseLeafAgent {
        struct DefaultProfile: LanguageModelSession.DynamicProfile {
          var body: some DynamicProfile {
            Profile {
              Instructions("You are a helpful, tea-loving assistant ... ")
      
              OrderTeaTool()
              PostAndFetchPublicFeedTool()
            }
            .model(SystemLanguageModel())
          }
        }
      }
    • 13:28 - Session

      // Session 
      
      class LooseLeafAgent {
        struct DefaultProfile: LanguageModelSession.DynamicProfile {
          var body: some DynamicProfile {
            Profile {
              Instructions("You are a helpful, tea-loving assistant ... ")
      
              OrderTeaTool()
              PostAndFetchPublicFeedTool()
            }
            .model(SystemLanguageModel())
          }
        }
      
        let session: LanguageModelSession
      
        public init() {
          self.session = LanguageModelSession(profile: DefaultProfile())
        }
      }
    • 14:33 - Confirmation via onToolCall

      // Confirmation via onToolCall
      
      var body: some DynamicProfile {
        Profile {
          Instructions("You are a helpful, tea-loving assistant ... ")
      
          OrderTeaTool() // Financial impact; risky tool.
          // Other Tools
        }
        
        .onToolCall { call in
          guard call.toolName == "orderTeaTool" else {
            return
          }
          guard ConfirmationAction.confirmWithUser() else {
            throw LooseLeafError.userConfirmationDenied
          }
        }
      }
    • 15:56 - Spotlighting via historyTransform

      // Spotlighting via historyTransform
      
      var body: some DynamicProfile {
        Profile {
          Instructions("You are a helpful, tea-loving assistant ... ")
      
          PostAndFetchPublicFeedTool() // Returns untrusted data; requires spotlighting
          // Other Tools
        }
      
        .historyTransform {γentries in
          entries.map { entry in
            guard case .toolOutput(var toolOutput) = entry,
              toolOutput.toolName == "postAndFetchPublicFeedTool"
            else {
              return entry
            }
          }
          toolOutput.segments = toolOutput.segments.map { segment in
            delimit(segment: segment,
                    startDelimiter: "<<UNTRUSTED>>",
                    endDelimiter: "<</UNTRUSTED>>")
          }
          return .toolOutput(toolOutput)
        }
      }
      
      func delimit(segment: Transcript.Segment,
                   startDelimiter: String,
                   endDelimiter: String) -> Transcript.Segment
    • 16:48 - Redaction via historyTransform

      // Redaction via historyTransform
      
      var body: some DynamicProfile {
        Profile {
          Instructions("You are a helpful, tea-loving assistant ... ")
      
          PostAndFetchPublicFeedTool() // Returns untrusted data; requires spotlighting
          // Other Tools
        }
      
        .historyTransform {γentries in
          entries.map { entry in
            guard case .toolOutput(var toolOutput) = entry,
              toolOutput.toolName == "postAndFetchPublicFeedTool"
            else {
              return entry
            }
          }
          toolOutput.segments = toolOutput.segments.map { segment in
            redactPII(segment: segment,
                      placeHolder: "[REDACTED]")
          }
          return .toolOutput(toolOutput)
        }
      }
      
      func redactPII(segment: Transcript.Segment,
                     placeHolder: String) -> Transcript.Segment
    • 23:08 - Intent authentication policy

      // Intent authentication policy
      
      struct DeletePhotoIntent: DeleteIntent {
          var entities: [LooseLeafPhoto]
      
          static var authenticationPolicy: IntentAuthenticationPolicy = .requiresAuthentication
      
          func perform() async throws -> some IntentResult {
              // Implementation
          }
      }
    • 23:27 - Schema authentication policy

      // Schema authentication policy
      
      @AppIntent(schema: .photos.deleteAssets)
      struct DeletePhotoIntent {
          var entities: [LooseLeafPhoto]
      
          // Example: Schema default authentication policy is .requiresAuthentication
      
          func perform() async throws -> some IntentResult {
              // Implementation
          }
      }
    • 0:00 - Introduction
    • Agentic features introduce new security risks. We cover how to identify those risks and introduce techniques and APIs to protect your users.

    • 2:06 - Risks
    • Understand new risks that come with using agentic systems in your app.

    • 6:32 - Threat modeling
    • A threat-modeling exercise for your app can help identify which context sources are untrusted and which actions are potentially risky.

    • 11:56 - Implementing mitigations
    • Learn about concrete tools that you can use to secure your agentic app.

    • 12:03 - Foundation Models
    • If you use the Foundation Models framework, learn how to inject security checkpoints into your agent execution.

    • 17:55 - App Intents
    • Learn about security mitigations available when integrating with Apple Intelligence using App Intents.

Developer Footer

  • 视频
  • WWDC26
  • 保护你的 App:智能体功能的风险缓解
  • 打开菜单 关闭菜单
    • iOS
    • iPadOS
    • macOS
    • Apple tvOS
    • visionOS
    • watchOS
    打开菜单 关闭菜单
    • Swift
    • SwiftUI
    • Swift Playground
    • TestFlight
    • Xcode
    • Xcode Cloud
    • SF Symbols
    打开菜单 关闭菜单
    • 辅助功能
    • 配件
    • Apple 智能
    • App 扩展
    • App Store
    • 音频与视频 (英文)
    • 增强现实
    • 设计
    • 分发
    • 教育
    • 字体 (英文)
    • 游戏
    • 健康与健身
    • App 内购买项目
    • 本地化
    • 地图与位置
    • 机器学习与 AI
    • 开源资源 (英文)
    • 安全性
    • Safari 浏览器与网页 (英文)
    打开菜单 关闭菜单
    • 完整文档 (英文)
    • 部分主题文档 (简体中文)
    • 教程
    • 下载
    • 论坛 (英文)
    • 视频
    打开菜单 关闭菜单
    • 支持文档
    • 联系我们
    • 错误报告
    • 系统状态 (英文)
    打开菜单 关闭菜单
    • Apple 开发者
    • App Store Connect
    • 证书、标识符和描述文件 (英文)
    • 反馈助理
    打开菜单 关闭菜单
    • Apple Developer Program
    • Apple Developer Enterprise Program
    • App Store Small Business Program
    • MFi Program (英文)
    • Mini Apps Partner Program
    • News Partner Program (英文)
    • Video Partner Program (英文)
    • 安全赏金计划 (英文)
    • Security Research Device Program (英文)
    打开菜单 关闭菜单
    • 与 Apple 会面交流
    • Apple Developer Center
    • App Store 大奖 (英文)
    • Apple 设计大奖
    • Apple Developer Academies (英文)
    • WWDC
    阅读最近新闻。
    获取 Apple Developer App。
    版权所有 © 2026 Apple Inc. 保留所有权利。
    使用条款 隐私政策 协议和准则