跳到主要内容

构建 Agent 载体

这篇指南展示公开开发者路径:安装 Edge Studio,用 CLI 证明设备 Agent,再导出 Edge Scaffold 项目,最后在真机上验证载体。

场景是一个私有理财助手。用户说:

我不喜欢高风险推荐,我更关注现金流和稳健收益。

载体 App 应该把这个偏好留在设备上,把它恢复进兼容的模型 session,并保持基础模型包不变。App 是表面,设备 Agent 拥有本地学习状态。

你会构建什么

你会创建一个 iOS 载体,包含:

  • 通过 Edge Kit 和 Edge Engine 加载的本地 LLM;
  • Edge Scaffold 提供的理财样例数据和只读 demo tools;
  • Edge Halo binary package 集成,用于 Neural Imprint 恢复 hooks;
  • 载体自有的学习状态和删除设置界面;
  • 不依赖模拟器运行时的真机构建。

Edge Scaffold 是模板,不是运行时依赖。Edge Studio 会解析公开 edge-scaffold 模板,把它复制到新的 App 目录,重写 App 名称和模型配置,运行 XcodeGen,然后给你一个 ZIP。

1. 安装 Edge Studio

创建 Python 3.11 环境并安装公开软件包:

python3.11 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install --upgrade --pre edge-studio
edge doctor

Edge Studio 仍以 release candidate 发布时,需要保留 --pre。如果 edge doctor 报告环境或模型路径问题,请先修复,再导出 App。

2. 下载演示模型

CLI 证明和导出的 App 使用同一个模型:

edge models fetch qwen3.5-9b-4bit --source auto
edge models where qwen3.5-9b-4bit --json

模型约 5 GB。第一次加载模型可能需要几十秒,MLX 会初始化并映射模型文件。

3. 先在本地证明学习

构建 iOS 载体前,先运行 CLI 学习演示:

edge demo learn run \
--sample finance_conservative_cashflow_v1 \
--model qwen3.5-9b-4bit \
--max-tokens 160 \
--include-text

内置样本是合成数据,可以安全查看。它证明的是机制:纠错写入隔离的本地状态, 生成 Neural Imprint 产物,回执记录学习前/学习后的回答,以及用于恢复的产物路径。 这是 构建第一个设备 Agent 使用的同一条理财信号。

需要比较行为时,直接把回执传给 chat:

edge demo chat \
--model qwen3.5-9b-4bit \
--interactive \
--with-imprint "/path/to/learn_receipt.json"

在理财载体中,同样的生命周期会映射到用户自有的理财偏好和本地分类事实。 App 决定记录什么、用户如何查看、以及用户如何删除。

4. 启动 Edge Studio

启动本地工作台:

edge studio

打开:

http://127.0.0.1:18842

加载你下载的模型,然后打开 Export,选择 Edge iOS App。App name 可以使用 CashFlowCoach。除非你在测试另一个领域的 model-matched A-library,否则保留默认 finance direction set。

导出使用公开 Edge Scaffold 模板。如果本机没有 edge-scaffold checkout,Edge Studio 会下载一个固定的公开模板 archive 并缓存。高级本地测试可以用 EDGE_SCAFFOLD_DIR=/path/to/edge-scaffold 指向本地模板。

5. 检查导出的 App

下载并解压 ZIP 后,结构应该类似这样:

CashFlowCoach/
+-- CashFlowCoach.xcodeproj/
+-- project.yml
+-- CashFlowCoach_model_config
+-- README.md
+-- Resources/
+-- CashFlowCoach/
+-- App/
| +-- ScaffoldConfig.swift
+-- AI/
+-- Chat/
+-- Settings/
+-- Business/

这里重复出现 App 名称是预期结构。第一个 CashFlowCoach/ 是 App 项目根目录, 第二个 CashFlowCoach/ 是 Xcode target 的 Swift 源码目录。

先读生成的 README.md。它是针对这一次导出生成的实例文档,会指向需要修改的具体文件。

6. 先构建应用壳

在 Xcode 中打开项目,选择开发者团队,设置唯一 bundle identifier,并选择真实 iPhone 或 iPad。

不复制模型权重时,可以先运行命令行构建检查:

xcodebuild -project CashFlowCoach.xcodeproj \
-scheme CashFlowCoach \
-configuration Release \
-destination 'generic/platform=iOS' \
SKIP_MODEL_COPY=1 \
build

这会验证签名、Swift Package Manager 解析、XcodeGen 输出和应用壳。它不验证模型加载或学习质量。

如果 Swift Package Manager cache 状态看起来不对,清理本地构建状态后重新 resolve:

rm -rf .build
rm -rf ~/Library/Developer/Xcode/DerivedData
xcodebuild -resolvePackageDependencies -project CashFlowCoach.xcodeproj

7. 加入模型并在真机运行

打开 CashFlowCoach_model_config,确认模型文件夹:

MODEL_NAME=Qwen3.5-9B-4bit
MODELS_SOURCE_DIR=$HOME/Documents/mlx-community
MODEL_COPY="true"

然后去掉 SKIP_MODEL_COPY=1 再构建。对于较大模型,请启用 Increased Memory Limit entitlement,并在计划支持的最低设备类别上验证 Release 构建。

在设备上验证:

区域检查内容
首次启动App 可以打开,不引用开发者本地路径。
模型加载模型能从本地、bundle、ODR 或缓存路径加载。
流式输出回复可以流式输出并完成。
本地数据理财样例事实和载体自有工具 schema 能在 App 界面中看到。
Neural Imprintmetadata 不匹配时,恢复保持 fail-closed。
删除能力用户可以清理本地模型缓存和学习状态。

8. 定制理财助手

从这些文件开始:

文件用途
CashFlowCoach/App/ScaffoldConfig.swiftApp 名称、system prompt、model ID、生成默认值、finance sample domain、Neural Imprint runtime settings。
CashFlowCoach/AI/AIManager.swift模型加载、生成和 Edge Kit session 集成。
CashFlowCoach/AI/EdgeDataBootstrap.swiftApp 自有 schema、facts 和 tool registration。
CashFlowCoach/AI/PersonalizationManager.swift学习状态界面和 Neural Imprint 恢复接线。
CashFlowCoach/Chat/DemoChatView+LLM.swift流式聊天行为和用户交互。
Resources/SampleData/参考 App 使用的合成理财数据。请替换成你的 App 自有本地事实。

对于理财场景,增加让用户查看或修改偏好的产品界面,例如风险承受度、现金流周期和收益稳定性。 不要把用户 transcript、账户细节或偏好产物上传到 analytics 或远程支持系统。

9. 生产检查清单

  • 固定 Edge Kit、Edge Engine 和 Edge Halo binary package 版本。
  • 在计划支持的真实设备类别上测试。
  • 模拟器只用于 UI 迭代,不用于 MLX runtime 验证。
  • Neural Imprint 恢复失败时,基础模型路径仍然可用。
  • 学习状态要足够可检查,便于建立用户信任,并可从 App 设置中删除。
  • 用 App 自有的理财 schema 和只读工具策略替换 scaffold 样例工具和数据。
  • App Store 隐私回答必须与 App 实际存储、传输和删除的内容一致。

下一步