结构化输出常被理解成排版要求,比如标题、列表、表格。但在 Agent 场景里,它更像是一种接口约定:让结果能被人快速检查,也能被后续流程继续使用。

输出结构就是协作协议

当任务只有一次问答时,自然语言足够。但当任务进入多步骤流程,输出就会变成下一步的输入。如果结果没有固定结构,后续判断会变得困难。

例如一次巡检结果可以固定为:

  • 检查项;
  • 当前状态;
  • 证据;
  • 风险等级;
  • 建议动作。

这样的格式不仅方便阅读,也方便自动汇总。

避免过度结构化

结构化不是越复杂越好。过多字段会让输出显得僵硬,也增加填写成本。更好的做法是只保留真正会影响决策的字段。

一个实用原则是:如果某个字段不会被人阅读,也不会被程序消费,就可以删除。

给异常留位置

很多输出模板只考虑成功结果。实际任务中,经常会遇到权限不足、网络失败、数据缺失等情况。因此模板里最好保留“未完成项”或“阻塞原因”。

例如:

1
2
3
4
已完成:...
未完成:...
阻塞原因:...
下一步需要:...

这样 Agent 不必假装完成,也不会把失败藏在长段文字里。

小结

结构化输出的目的不是装饰,而是降低理解和交接成本。好的结构应该简短、稳定、可复用,并且能容纳失败路径。