主题
AI Runtime 为什么拆成 Agent、RAG、Tool、Memory、Model 与 Ingestion?
题型:追问 · 回答重点是职责、变化方向和可替换性。
建议回答
拆分依据不是技术组件名称,而是不同的业务职责和变化频率。Agent 负责流程编排与状态迁移;RAG 负责检索策略和引用;Tool 负责能力注册、授权与执行;Memory 负责上下文生命周期;Model 隔离不同厂商协议;Ingestion 负责离线文档知识化。上层 Agent 只依赖这些模块的稳定接口,不直接耦合 Milvus、PostgreSQL、某个模型 SDK 或 MCP 客户端,因此可以分别演进、测试和替换。
边界判断
- 在线执行与离线知识化分离,避免文档处理拖慢问答链路。
- 编排决策与工具执行分离,便于权限控制和审计。
- 模型能力接口与厂商实现分离,避免供应商锁定。
- 记忆管理不散落在 Prompt 拼装代码中,统一控制窗口、摘要和持久化。
易错点
- 模块化不等于一开始就拆成多个微服务。
- 接口抽象应围绕稳定业务语义,不能只是给 SDK 再包一层。