代理執行環境
這是什麼
各入口會自行建立這個頂層 AIAgent 物件,保存該入口的設定,再把訊息送入共用的代理迴圈。
白話解釋
一棟大樓的每個入口可以各有服務人員,卻都把工作送往同一套後勤流程。Hermes 也是如此:CLI、閘道與 cron 各自建立並設定 AIAgent,再匯入共用的對話處理機制,而不是共用同一個存活中的物件。
為什麼重要
Hermes 會在不同入口重用 AIAgent 類別與後續的回合處理路徑,但不會讓每個 CLI 指令、閘道對話與 cron 執行共用同一個 AIAgent 實例。釐清這項差異,才能理解各入口如何保有自己的工作階段、平台欄位、回呼與憑證,同時沿用相同的回合處理機制。
運作方式
AIAgent(run_agent.py)是 Python 類別,集中保存每個回合可能需要的設定,包括提供者與模型、串流與工具進度回呼,以及 platform、chat_id、gateway_session_key 等平台識別欄位。它的建構函式只把工作轉交給 agent/agent_init.py 完成實際初始化。CLI 指令、cron/scheduler.py 的排程項目,以及 gateway/run.py 處理的即時連線,會以不同平台值與回呼各自建立 AIAgent;之後則全都呼叫同一個 agent.run_conversation(...) 方法處理訊息,因此底層物件無須知道請求來自哪個入口。
具體範例
使用者有一項每週撰寫電子報草稿的技能:
- 使用者在終端機輸入要求時,
hermes_cli會建立綁定該使用者工作階段的AIAgent。 - 每週一上午 6 點,
cron/scheduler.py會為同一項技能建立另一個獨立的AIAgent,並直接呼叫run_conversation。 - 兩個物件之後都走相同的上下文組裝與工具執行流程,因此無論由人員或計時器觸發,都能以相同機制產生草稿。
如何連結
「代理執行環境」屬於「執行期」系列。最直接相關的概念包括:「對話狀態」、「對話輪次循環」與「個人作業系統」。
來源證據
run_agent.py#run_agent.AIAgent—agent_runtime的已驗證來源目標(targetId)標記。vendor/hermes-agent/run_agent.py:1892-1902#AIAgent._flush_messages_to_session_db— 已驗證的AIAgentSource Map證據。AIAgent以薄轉接方法把系統提示詞建構交給agent.system_prompt.build_system_prompt、把 API 參數建構交給聊天完成輔助函式,並把串流請求交給interruptible_streaming_api_call。
工作流程
- 目前尚無第一輪工作流程對應;此概念仍透過文章與來源證據出現在知識庫圖譜中。
