我们把 AIAK 百宝箱做成了一个面向如流 IM 的 AI Agent 应用。核心目标不是再做一个聊天机器人,而是把 AIAK infer tools 的算子绘图、性能仿真、数据分析能力封装成可对话、可审计、可运行在沙盒里的工程服务。
当前实现基于四层:如流消息入口、Pi Agent 推理运行时、boxsh 沙盒执行环境、用户级历史与运维保障。用户在如流里发消息,桥接服务接收事件、构造任务上下文、调用 Pi 执行工具,再通过如流 CLI 回复文本,必要时通过 SDK 回复图片。
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 回复用户。状态与运维层是横向支撑,不参与主链路排序。
如流负责用户入口与消息通道。桥接服务只处理三件事:
文本发送已经切到 infoflow-cli,这样后续 Agent 或脚本可以直接复用 CLI,不需要理解 SDK 内部对象。图片发送仍保留 SDK 路径,因为当前 CLI 对私聊图片能力不完整。
Bridge 不直接实现复杂业务逻辑,而是构造高约束 prompt 交给 Pi:
aiak_infer_tools plot。Pi 以 --mode json 运行,Bridge 只解析最终 assistant 消息和 trace。这样 Agent 输出可观测,失败时能追踪到完整 JSONL 事件流。