Agent编排中JSON结构化输出的隐式截断问题深度排查与修复实践

📅 2026/6/30 14:11:05
Agent编排中JSON结构化输出的隐式截断问题深度排查与修复实践
Agent 缂栨帓涓?JSON 缁撴瀯鍖栬緭鍑虹殑闅愬紡鎴柇闂锛氫竴娆℃繁搴︽帓鏌ヤ笌淇瀹炶返1. 闂鐜拌薄鍦?Harness 鍏眰濉斿疄鎴樹腑锛孏enerator 鐢熸垚鍐呭鍚?Evaluator 鎵撳垎锛屽伓灏斿嚭鐜?Evaluator 杩斿洖鐨?JSON 瑙瀽澶辫触鈥斺€斾笉鏄牸寮忛敊璇紝鑰屾槸 JSON 涓嶅畬鏁达紝瀛楁鍦ㄤ腑闂磋鎴柇锛?{insight_score:4.2,quality_issues:[浜嬪疄寮曡堪涓嶅鍏蜂綋,缂?鐪嬭捣鏉ュ儚 token limit锛屼絾 max_tokens 璁剧疆涓?4096锛屽疄闄呰緭鍑哄彧鏈変笉鍒?200 tokens锛岃繙鏈Е鍙婁笂闄愩€?2. 鎺掓煡杩囩▼Step 1 鈥斺€?鍏堟€€鐤?max_tokens妫€鏌ヨ姹傚弬鏁帮紝max_tokens 4096锛屾帓闄ゃ€?Step 2 鈥斺€?妫€鏌?stop 搴忓垪閰嶇疆浜?stop: [}]锛屽鑷?JSON 鍦ㄧ涓€涓?}澶勬埅鏂紝宓屽瀵硅薄鐩存帴娈嬪簾銆傝繖鏄釜 bug锛屼慨浜嗕箣鍚庤繕鏄伓鍙戙€?Step 3 鈥斺€?鎶撳師濮嬪搷搴旀棩蹇?鍙戠幇鎴柇鏃剁殑 finish_reason 鏄?length锛屼笉鏄?stop銆?Step 4 鈥斺€?鏌ヤ笂涓嬫枃绐楀彛璇勪及鏃惰緭鍏ヤ簡 8000 tokens 鐨勫師鏂? system prompt few-shot examples锛屾€昏绾?11000 tokens銆傛ā鍨嬩笂涓嬫枃绐楀彛 128K锛屾病闂銆?Step 5 鈥斺€?鍙戠幇鐪熷嚩妫€鏌?OpenAI-compatible API 鐨勫疄鐜帮紝max_tokens鍙傛暟鍦ㄦ煇浜?SDK 鐗堟湰閲岃閿欒鏄犲皠涓?max_completion_tokens銆係DK 浼犱簡涓€涓湇鍔涓嶈璇嗙殑鍙傛暟鍚嶏紝鏈嶅姟绔洖閫€鍒伴粯璁ゅ€?256 tokens鈥斺€旇繖灏辨槸涓轰粈涔堝彧鏈?200 tokens 灏卞仠浜嗐€?3. 鏍瑰洜*SDK 鍙傛暟鏄犲皠 bug 榛樿 max_tokens 杩囧皬銆?OpenAI Python SDK v1.x 灏?max_tokens閲嶅懡鍚嶄负max_completion_tokens锛堜粎瀵?reasoning 妯″瀷锛夛紝浣嗛儴鍒嗗吋瀹?API 鎻愪緵鍟嗗苟鏈纭疄鐜板悜鍚庡吋瀹癸紝瀵艰嚧鍙傛暟琚潤榛樺拷鐣ワ紝fallback 鍒?API 渚х殑榛樿鍊硷紙256 tokens锛夈€?4. 瑙喅鏂规鐭湡淇锛氬弻鍙傛暟淇濋櫓鏄惧紡鍚屾椂浼?max_tokens鍜?max_completion_tokens锛?responseclient.chat.completions.create(modelgpt-5,messagesmessages,max_tokens4096,extra_body{max_completion_tokens:4096})鍥犱负涓嶅悓 API 瀹炵幇鍙兘鍙鍏朵腑涓€涓紝涓や釜閮戒紶鏈€瀹夊叏銆?闃插尽鎬х紪绋嬶細JSON 瀹屾暣鎬ф牎楠?鍦?Evaluator 鐨勮緭鍑鸿В鏋愬眰鍔犳牎楠屸€斺€擿json.loads 澶辫触鏃讹紝鐢ㄦ鍒欒ˉ鍏ㄦ渶鍚庝竴涓笉瀹屾暣鐨?key-value锛?importjsonimportredefsafe_json_parse(text:str)-dict:try:returnjson.loads(text)exceptjson.JSONDecodeError:# 灏濊瘯琛ュ叏鎴柇鐨?JSONfixedre.sub(r,\s*[^]*\s*:\s*[^\}\]\s,]*$,},text)returnjson.loads(fixed)鐩戞帶鍛婅瀵?finish_reason length涓斿疄闄?token 鏁? 璇锋眰鐨?max_tokens鐨勬儏鍐靛仛鏃ュ織鏍囪鍜屽憡璀︺€?5. 澶嶇洏鎬荤粨**寰堟槑鏄?寰€寰€鏄敊鐨?*锛氱涓€鍙嶅簲鏄?token limit 鈫?骞朵笉鏄€傛帓鏌ユ椂涓嶈烦杩囦换浣曞亣璁撅紝姣忎釜閮借楠岃瘉**SDK 鐨?鍏煎鎬ф壙璇?涓嶅彲淇?*锛氫笉鍚屾ā鍨?API 鎻愪緵鍟嗗 OpenAI SDK 鐨勫吋瀹圭▼搴﹀弬宸笉榻愶紝鍏抽敭鍙傛暟瑕佸仛鍙岄噸淇濋櫓**Agent 绯荤粺鐨勫閿欒璁¤鏈?鑴忔暟鎹亣璁?**锛歀LM 杈撳嚭鏈川涓婁笉鍙潬鈥斺€旀埅鏂€佸够瑙夈€佹牸寮忔紓绉婚兘浼氬彂鐢熴€備笉瑕佸亣璁捐繑鍥炰竴瀹氭槸鍚堟硶 JSON锛岃鍦ㄦ瘡涓€灞傚姞闃插尽**寤朵几鎬濊€?*锛氬鏋滄湭鏉?Harness 鐨?Evaluator 瑕佹敮鎸佹祦寮忚瘎鍒嗭紙杈圭敓鎴愯竟璇勪及锛夛紝鎴柇闂鐨勫鐞嗕細鏇村鏉傗€斺€旈偅鏃跺€欎笉鏄ˉ鍏?JSON锛岃€屾槸瑕佽€冭檻 schema-aware streaming parser銆?**鍏抽敭璇?*锛欰gent 缂栨帓銆丣SON Schema銆乵ax_tokens銆丼DK 鍏煎鎬с€佺粨鏋勫寲杈撳嚭銆侀槻寰℃€х紪绋?