第三十二章:Profile 多環境管理 — ~/.hermes/profiles/ 隔離設定、技能、記憶、排程

各位終極駭客、系統架構師們,歡迎來到 Hermes Agent 的「深水核心區」!🤿

在前面的章節,我們教你換大腦(模型)、換手腳(技能),但如果你對管家的「記憶海馬迴」或「消化系統」不滿意呢?

Hermes 的架構設計極度模組化,就像是一台組裝電腦。如果你覺得內建的記憶系統(Memory Component)太笨,或者是你想自己寫一個全新的工具模組(Tool Component),你可以直接寫一段 Python 程式碼,把原廠的零件「拔下來」,換上你自己做的超強魔改版!

🧩 Component 的逆襲:什麼都能換

在 Hermes 的底層世界裡,萬物皆 Component。最常被魔改的元件有這三個:

1. 記憶元件 (Memory Component)

預設的記憶系統可能只是把對話存在本地的檔案裡。如果你想把記憶存到雲端的 Vector Database(向量資料庫,例如 Pinecone 或 Chroma),你只需要實作一個新的 Memory Component,然後告訴系統:「以後管家的記憶都存到我這裡!」

2. 工具元件 (Tool Component)

覺得內建的網頁搜尋工具不夠力?你可以自己刻一個 Tool 元件,接上你自己寫的超級爬蟲程式。一旦註冊成功,管家就能在聊天中自由呼叫你寫的爬蟲。

3. 供應商元件 (Provider Component)

上一章教的 custom_providers.yaml 只能接「相容 OpenAI」的 API。如果某家新創公司發明了一種全新的 API 格式,你就可以直接寫一個 Provider Component 來對接它!


🛠️ 指令教學:在 Python 中進行器官移植

由於自訂 Component 涉及到底層的 Python 程式碼,這次的練習我們不只在終端機下指令,而是要看一點點 Python 的「概念碼」。

介紹指令:使用 Python SDK 註冊自訂 Component

💡 應用練習例子

練習 1:實作一個假的「金魚腦」記憶元件 想像你寫了一段 Python 程式,讓管家只能記住最後一句話(純粹為了搞笑):

# 概念演練 (在你的 Python 腳本中):
from hermes_agent import Hermes, MemoryComponent

class GoldfishMemory(MemoryComponent):
    def save(self, message):
        self.memory = message # 永遠只存最新的一句,蓋掉前面的

# 註冊你的魔改零件
agent = Hermes()
agent.register_component("memory", GoldfishMemory())

幽默小提示:千萬不要真的把它用在生產環境,否則你的管家會變成真正的金魚,三秒鐘就忘記你是誰!

練習 2:註冊一個自製的「講笑話」工具元件 你想給管家加點幽默感?

# 概念演練:
from hermes_agent import ToolComponent

class JokeTool(ToolComponent):
    name = "tell_joke"
    def execute(self, topic):
        return f"這是一個關於 {topic} 的冷笑話..."

agent.register_component("tool", JokeTool())

只要短短幾行程式碼,你的管家就多了一個講冷笑話的神級天賦。

練習 3:透過 CLI 載入你的魔改腳本 寫好了 Python 魔改腳本(假設叫 my_hack.py),要怎麼讓終端機的 Hermes 吃到它呢?通常你可以透過參數指定載入自訂腳本:

# 假設你的自訂腳本會自動註冊元件,然後執行任務
hermes run --load-script my_hack.py "請幫我講一個關於工程師的笑話"

看著管家順利呼叫你剛剛用 Python 寫的冷笑話工具,這就是全端工程師的浪漫啊!


🎉 太硬核了!你現在已經觸及了 Hermes 的靈魂深處!

學會自訂 Component,代表這個世界上已經沒有任何框架能限制你了。你是這台機器的絕對主宰!

不過,隨著我們把系統魔改得越來越強大,安全性問題也浮出水面。如果管家變聰明了,它會不會自己偷偷上網把你賣了?下一章《安全與隔離機制》,也就是本手冊的最後一章,我們將教你如何為這頭猛獸套上韁繩!我們第三十三章見!🛡️