1. 摘要

我们把 AIAK 百宝箱做成了一个面向如流 IM 的 AI Agent 应用。核心目标不是再做一个聊天机器人,而是把 AIAK infer tools 的算子绘图、性能仿真、数据分析能力封装成可对话、可审计、可运行在沙盒里的工程服务。

当前实现基于四层:如流消息入口、Pi Agent 推理运行时、boxsh 沙盒执行环境、用户级历史与运维保障。用户在如流里发消息,桥接服务接收事件、构造任务上下文、调用 Pi 执行工具,再通过如流 CLI 回复文本,必要时通过 SDK 回复图片。

2. 一图流架构

flowchart TB
    U["1 用户入口层<br/>用户 / 如流 IM / WebSocket Listener"]
    B["2 Bridge 编排层<br/>事件解析 / 快速 ACK / 去重 / 历史注入 / 路由"]
    S["3 沙盒执行层<br/>boxsh / COW workspace / Python venv / AIAK tools"]
    A["4 Agent 与模型层<br/>Pi Agent --mode json / Claude Sonnet 4.6 / oneapi-comate"]
    R["5 回复出口层<br/>Bridge 分片 / Infoflow CLI 文本 / SDK 图片 / 回到用户"]
    O["6 状态与运维层<br/>用户历史 / Pi trace / 服务日志 / systemd / aiak_ds_tool 定时同步"]

    U -->|用户消息| B
    B -->|任务上下文| S
    S -->|隔离执行| A
    A -->|结果或文件路径| R
    R ~~~ O

    B -.读写状态.-> O
    S -.依赖环境.-> O

    classDef entry fill:#E8F1FF,stroke:#3B82F6,color:#0F172A;
    classDef bridge fill:#E9FBEF,stroke:#22C55E,color:#0F172A;
    classDef sandbox fill:#FFF7ED,stroke:#F97316,color:#0F172A;
    classDef model fill:#F3E8FF,stroke:#A855F7,color:#0F172A;
    classDef ops fill:#F1F5F9,stroke:#64748B,color:#0F172A;

    class U entry;
    class B,R bridge;
    class S sandbox;
    class A model;
    class O ops;

这个图按从上到下的主链路读:用户消息进入如流,Bridge 做编排,boxsh 做隔离执行,Pi 调用模型和工具,最后由 Bridge 通过如流 CLI/SDK 回复用户。状态与运维层是横向支撑,不参与主链路排序。

3. 核心工程思路

3.1 把 IM 当成应用入口

如流负责用户入口与消息通道。桥接服务只处理三件事:

  1. 接收如流 WebSocket 事件。
  2. 把事件转换为稳定的任务摘要,包括聊天类型、发送者、文本、引用消息。
  3. 把 Agent 输出拆分为如流可接受的文本或图片消息。

文本发送已经切到 infoflow-cli,这样后续 Agent 或脚本可以直接复用 CLI,不需要理解 SDK 内部对象。图片发送仍保留 SDK 路径,因为当前 CLI 对私聊图片能力不完整。

3.2 把 Agent 当成任务执行器

Bridge 不直接实现复杂业务逻辑,而是构造高约束 prompt 交给 Pi:

Pi 以 --mode json 运行,Bridge 只解析最终 assistant 消息和 trace。这样 Agent 输出可观测,失败时能追踪到完整 JSONL 事件流。