一、为什么 AI 系统需要设计输入层在上一篇文章中总结了 AI 系统测试的六层模型输入层 → 规则层 → LLM层 → Tool层 → 状态层 → 输出层其中容易被忽视的一层是输入层。很多 AI 应用会直接把用户输入发送给模型例如用户输入 → LLM → 返回结果存在问题与风险输入表达不稳定模型调用成本高行为不可预测敏感操作难以控制在实际 Agent 系统中通常会先设计输入处理层。二、WorkLog Agent 的输入层设计项目 github 链接放最后。在这个项目中Agent 的主要能力包括记录工作日志查询历史记录生成日报用户输入基本都是自然语言例如今天修复登录Bug 昨天写了接口测试 帮我看看上周做了什么如果直接交给模型处理会有几个问题1️⃣ 输入表达不稳定2️⃣ 日期信息不规范3️⃣ 意图不明确因此系统在进入 LLM 前增加了一层输入处理逻辑。主要包括1 输入归一化例如昨天 上周五 前天需要转换成2025-03-10否则后续查询和记录都会出问题。2 基础输入过滤例如你好 哈哈 天气怎么样这些输入与系统能力无关需要提前过滤。否则会增加模型调用影响系统稳定性3 基础意图判断例如今天修复了登录Bug可以直接判断为记录日志而不必调用 LLM。这也是后续规则优先 LLM兜底设计的基础。三、输入层如果设计不好会发生什么输入层问题会直接导致1 模型调用成本暴涨如果所有输入都交给 LLM你好 哈哈 帮我看看天气这些无效输入也会触发模型调用。在实际系统中这会带来明显成本问题。2 意图识别错误例如昨天干啥来着如果输入信息不完整模型可能产生不同理解查询日志请求总结普通聊天这会导致行为不稳定。3 数据记录错误例如昨天修复了登录Bug如果日期没有正确解析日志可能会记录在今天。四、输入层测试应该关注什么输入层测试的重点其实是验证系统是否能稳定处理真实用户输入。主要包括四类场景。1 输入表达多样性例如昨天修复Bug 昨天修bug 昨天修复了登录问题系统是否能识别为同一类行为。2 时间表达例如昨天 前天 上周五是否能正确解析。3 垃圾输入例如你好 哈哈 测试一下系统是否能正确拒绝。4 模糊输入例如那天我干啥来着系统是否能够请求补充信息或交给 LLM 处理五、输入层测试的工程经验在项目中输入层的设计往往决定了系统稳定性。经验总结有三点1 不要把所有输入交给模型高频、确定的输入可以直接规则处理。2 尽量提前规范数据例如日期用户ID操作类型这样可以减少后续系统复杂度。3 输入层是成本控制关键良好的输入过滤可以明显减少LLM调用次数系统延迟六、小结在很多 AI 应用中开发人员主要关注Prompt模型能力Agent循环实际上输入层往往是稳定性的第一道防线。所以不要把用户原始输入直接交给模型。先通过输入层进行归一化基础过滤初步意图判断这样才能构建稳定的 AI Agent 系统接下来继续梳理1️⃣LLM决策层测试2️⃣状态层测试JSONL并发Bug