VIP 專屬 Agent 開發 實戰

讓 Agent 處理長任務:檢查點、分段與進度回報

需要跑三十分鐘的任務,不能用跑三十秒的架構。

Agent 開發教程封面

長任務(批次處理、大量檔案分析、多階段研究)的挑戰不在模型,而在工程:上下文會爆、中途會失敗、使用者會失去耐性。

三個對策:把任務切成有邊界的階段、每階段結束存檢查點、以及持續回報進度。

階段化設計

STAGES = [
  {'name': 'scan',    'desc': '掃描並列出待處理項目', 'max_steps': 5},
  {'name': 'process', 'desc': '逐項處理',             'max_steps': 3, 'per_item': True},
  {'name': 'verify',  'desc': '檢查結果一致性',       'max_steps': 4},
  {'name': 'report',  'desc': '產出總結報告',         'max_steps': 2},
]

每個階段是一次獨立的 Agent 執行,有自己的上下文與步數上限。階段之間只傳遞結構化結果,不傳遞完整對話歷史——這是控制上下文膨脹的關鍵。

逐項處理的檢查點

def process_stage(items, run_id):
    done = store.completed_items(run_id)        # 續跑時跳過已完成的
    for it in items:
        if it['id'] in done:
            continue
        try:
            result = run_agent(f"處理項目:{it}", max_steps=3)
            store.save_item(run_id, it['id'], result, status='ok')
        except Exception as e:
            store.save_item(run_id, it['id'], None, status='failed', error=str(e))
        emit_progress(run_id, done=len(done) + 1, total=len(items))

注意失敗的項目也要記錄並繼續,不要讓一個壞掉的項目中斷整批。最後在報告階段列出失敗清單。

進度回報的三個層次

  • 階段層級:目前在第幾階段、共幾階段。
  • 項目層級:已完成 47 / 320 項。
  • 當前動作:「正在分析 invoice_0048.pdf」。

第三層特別重要。使用者看到具體的檔名在跳動,就知道系統還活著;只有進度條時,卡住三分鐘就會被當成當機。

上下文預算

def stage_context(prev_results, budget_tokens=6000):
    # 只傳遞摘要與關鍵欄位,不傳完整內容
    summary = summarize_results(prev_results, max_tokens=budget_tokens // 2)
    stats = {'total': len(prev_results),
             'ok': sum(r['status'] == 'ok' for r in prev_results),
             'failed_ids': [r['id'] for r in prev_results if r['status'] != 'ok'][:20]}
    return {'summary': summary, 'stats': stats}

可中斷與可恢復

  1. 使用者可以隨時暫停,已完成的部分保留。
  2. 恢復時從最後一個檢查點續跑,不重做已完成的項目。
  3. 取消時要清楚說明「已完成的部分是否保留」。
長任務的成本要在開始前估算並告知使用者。跑了二十分鐘才發現要花掉整月預算,是無法向使用者交代的。
🔒

訂閱後繼續閱讀全文

本篇為訂閱者專屬內容。訂閱後可取得下列權限:

  • 解鎖全部內容權限
  • 閱讀不限篇數
  • 全站移除廣告
月卡
NT$240
開通 30 天
一次付清,開通 30 天
季卡
NT$620
開通 90 天
一次付清,開通 90 天,每天約 NT$7
年卡
NT$2,160
開通 365 天
一次付清,開通 365 天,每天約 NT$6

一次性付款,付款成功後立即開通,到期自動結束,不會再次扣款,也不需要取消訂閱。

立即訂閱

金額均為新臺幣(TWD),即實際扣款金額,不另收手續費
支援信用卡 · Apple Pay · Google Pay · WebATM · ATM 轉帳
購買須知與退款政策

延伸閱讀

更多Agent 開發 →