给 Agent 设计结构化输出,不只是为了好看
结构化输出常被理解成排版要求,比如标题、列表、表格。但在 Agent 场景里,它更像是一种接口约定:让结果能被人快速检查,也能被后续流程继续使用。
输出结构就是协作协议
当任务只有一次问答时,自然语言足够。但当任务进入多步骤流程,输出就会变成下一步的输入。如果结果没有固定结构,后续判断会变得困难。
例如一次巡检结果可以固定为:
- 检查项;
- 当前状态;
- 证据;
- 风险等级;
- 建议动作。
这样的格式不仅方便阅读,也方便自动汇总。
避免过度结构化
结构化不是越复杂越好。过多字段会让输出显得僵硬,也增加填写成本。更好的做法是只保留真正会影响决策的字段。
一个实用原则是:如果某个字段不会被人阅读,也不会被程序消费,就可以删除。
给异常留位置
很多输出模板只考虑成功结果。实际任务中,经常会遇到权限不足、网络失败、数据缺失等情况。因此模板里最好保留“未完成项”或“阻塞原因”。
例如:
1 | 已完成:... |
这样 Agent 不必假装完成,也不会把失败藏在长段文字里。
小结
结构化输出的目的不是装饰,而是降低理解和交接成本。好的结构应该简短、稳定、可复用,并且能容纳失败路径。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 xiaobai050!