smolagents 文件
人在環路:以互動方式自定義智慧體計劃
加入 Hugging Face 社群
並獲得增強的文件體驗
開始使用
人在環路:以互動方式自定義智慧體計劃
本頁面演示了 smolagents 庫的高階用法,特別關注用於互動式計劃建立、使用者驅動的計劃修改以及智慧體工作流程中記憶體保留的**人在環路 (Human-in-the-Loop, HITL)** 方法。該示例基於 `examples/plan_customization/plan_customization.py` 中的程式碼。
概述
本示例將教您如何實現人在環路策略以:
- 在計劃建立後中斷智慧體執行(使用步驟回撥)
- 允許使用者在執行前審查和修改智慧體的計劃(人在環路)
- 在保留智慧體記憶體的同時恢復執行
- 根據使用者反饋動態更新計劃,保持人類的控制權
關鍵概念
用於計劃中斷的步驟回撥
智慧體被配置為在建立計劃後暫停。這是透過為 `PlanningStep` 註冊一個步驟回撥來實現的。
agent = CodeAgent(
model=InferenceClientModel(),
tools=[DuckDuckGoSearchTool()],
planning_interval=5, # Plan every 5 steps
step_callbacks={PlanningStep: interrupt_after_plan},
max_steps=10,
verbosity_level=1
)
人在環路:互動式計劃審查與修改
當智慧體建立計劃時,回撥會顯示該計劃並提示人類使用者:
- 批准該計劃
- 修改該計劃
- 取消執行
互動示例
============================================================
🤖 AGENT PLAN CREATED
============================================================
1. Search for recent AI developments
2. Analyze the top results
3. Summarize the 3 most significant breakthroughs
4. Include sources for each breakthrough
============================================================
Choose an option:
1. Approve plan
2. Modify plan
3. Cancel
Your choice (1-3):
這個人在環路的步驟使人類能夠在執行繼續前介入並審查或修改計劃,並確保智慧體的行動符合人類的意圖。
如果使用者選擇修改,他們可以直接編輯計劃。更新後的計劃將用於後續的執行步驟。
記憶體保留與恢復執行
透過使用 `reset=False` 執行智慧體,所有之前的步驟和記憶體都會被保留。這允許您在中斷或計劃修改後恢復執行。
# First run (may be interrupted)
agent.run(task, reset=True)
# Resume with preserved memory
agent.run(task, reset=False)
檢查智慧體記憶體
您可以檢查智慧體的記憶體以檢視目前為止採取的所有步驟。
print(f"Current memory contains {len(agent.memory.steps)} steps:")
for i, step in enumerate(agent.memory.steps):
step_type = type(step).__name__
print(f" {i+1}. {step_type}")
人在環路工作流示例
- 智慧體從一個複雜的任務開始
- 建立計劃步驟,執行暫停以供人類審查
- 人類審查並可選擇修改計劃(人在環路)
- 使用批准/修改後的計劃恢復執行
- 所有步驟都為未來的執行保留,保持透明度和控制力
錯誤處理
該示例包括針對以下情況的錯誤處理:
- 使用者取消
- 計劃修改錯誤
- 恢復執行失敗
環境要求
- smolagents 庫
- DuckDuckGoSearchTool (smolagents 自帶)
- InferenceClientModel (需要 HuggingFace API 令牌)
教育價值
本示例演示了:
- 用於自定義智慧體行為的步驟回撥實現
- 多步智慧體中的記憶體管理
- 智慧體系統中的使用者互動模式
- 用於動態智慧體控制的計劃修改技術
- 互動式智慧體系統中的錯誤處理
要檢視完整程式碼,請參閱 examples/plan_customization
。