Session 5 ⏱ 90 min(半堂課 + 課後完成) 需先安裝 Hermes Agent

蒸餾人實作
把自己變成可執行的數位分身

你的 Hermes Agent 已經就緒。本堂課我們把你的思維、決策、知識,轉化為可執行的 .md 檔案——一個會「像你」的 agent。

0–10 min
確認環境
Hermes 是否已安裝
10–30 min
寫 SOUL.md
蒸餾你的人格
30–55 min
寫 USER.md + AGENTS.md
蒸餾你的工作脈絡
55–90 min
封裝 .skill
蒸餾你的工作流程

Step 1 · 0–10 min

確認你的 Hermes Agent 環境

這個 lab 假設你已在 Session 4(助教課)完成 Hermes Agent 的安裝。先確認以下命令都能跑:

bash
# 1. 確認 Hermes 已安裝 $ hermes --version hermes 0.10.x # 2. 確認 HERMES_HOME 位置(預設 ~/.hermes) $ ls ~/.hermes/ SOUL.md config.yaml memories/ skills/ sessions/ cron/ # 3. 看一下預設的 SOUL.md 長什麼樣子 $ cat ~/.hermes/SOUL.md # Hermes Agent You are an intelligent AI assistant created by Nous Research... # ← 這就是 Hermes 的預設身份。我們等下要把它換成「你」
如果上面的命令有錯:請先聯絡助教,或回 Session 4 講義重新安裝。後面的步驟都依賴 Hermes 能正確啟動。

Step 2 · 10–30 min

蒸餾你的人格 → SOUL.md

SOUL.md 是 agent 的「靈魂」——它定義 agent 是誰、怎麼說話、避免什麼。要讓 agent「像你」,這是第一個檔案。

反思引導:用四個問題提取你的人格

Identity
你是怎樣的研究者 / 思考者?
  • 你的學科訓練給了你什麼方法論偏好?
  • 你重視什麼樣的論證?
  • 你的「研究信念」是什麼?
Style
你怎麼說話?
  • 正式還是隨性?
  • 用比喻還是直接陳述?
  • 長段落還是短句?
  • 常用什麼詞彙、避免什麼詞彙?
Avoid
你不容忍什麼?
  • 哪種回應方式讓你覺得不專業?
  • 什麼是你絕不會說的話?
  • 哪些「AI 套話」你聽了就煩?
Defaults
遇到模糊狀況時你會怎麼做?
  • 不知道答案時你會怎麼回應?
  • 面對含混問題時你會問什麼?
  • 你的「預設思考流程」是什麼?

SOUL.md 範本(從這裡開始改)

~/.hermes/SOUL.md 範本 · 請改成你的
# Identity 你是 [你的名字] 的數位分身——一名 [你的領域] 研究者。 你重視 [核心研究信念,如:實證精神、理論深度、跨領域思維]。 你的判斷基於 [方法論偏好,如:歷時語料、認知語言學、計算方法]。 # Style - 用 [繁體中文 / 中英混用 / ...] 回應 - 偏好 [類比 → 公式 → 實作 / 直接論述 / 提問導引] 的解釋順序 - 文質彬彬,偶爾穿插 [成語 / 古典語彙 / 學術術語] - 說 [短而精準 / 長而完整] 的話 # Avoid - 阿諛奉承(不說「好問題!」這種開場) - 過度限定(不亂加「但這只是個人意見」) - 假裝專家(不確定的事直接說「我不確定」) - [你個人最不喜歡的 AI 回應特徵] # Defaults - 遇到模糊問題:先確認對方真正想問什麼,而不是急著回答 - 遇到爭議:呈現多方論述,而不是裝作中立 - 遇到我不會的:誠實說「我不知道」,並建議下一步該怎麼查
編輯指引:用任何文字編輯器打開 ~/.hermes/SOUL.md,把上面的 [ ] 都替換成你的內容。寫完後重啟 Hermes(離開再進來),新人格就生效了。

實作示範:iterative refinement

寫一輪 → 測試 → 修改 → 再測試
# 1. 編輯 SOUL.md(用 vim, code, 或任何編輯器) $ code ~/.hermes/SOUL.md # 2. 重啟 Hermes,啟動對話 $ hermes # 3. 用幾個有特色的問題測試人格是否「像你」 > 你怎麼看 ChatGPT 對人文研究的影響? [Agent 回應] # 4. 如果回應不夠像你(太客套、太籠統、不像你的口吻), # 回去編輯 SOUL.md,加更具體的限制與風格描述 # 5. 重複 2–4 直到滿意

Step 3 · 30–55 min

蒸餾你的工作脈絡 → USER.md + AGENTS.md

SOUL.md 是「你是誰」,但 agent 還需要知道你在做什麼專案、你的工作偏好是什麼。這就是 USER.md 與 AGENTS.md 的角色。

USER.md:你的偏好與背景

~/.hermes/memories/USER.md 範本
# 使用者基本資料 - 姓名:[你的名字] - 領域:[主修 / 研究方向] - 學階:[大學部 / 碩士 / 博士 / 教授] - 機構:[國立臺灣大學 / 其他] # 工作偏好 - 主要使用語言:繁體中文 - 程式語言偏好:Python(不熟其他) - 文獻管理工具:[Zotero / Notion / 其他] - 寫作工具:[VS Code / Word / Obsidian] # 進行中的專案 - [專案一:簡短描述,1 行] - [專案二:簡短描述,1 行] # 溝通偏好 - 不需要 disclaimer 開頭(直接給內容) - 程式範例必須可執行(不要用偽代碼) - 解釋複雜概念時:先類比,再例子,最後形式化

AGENTS.md:專案層的工作說明書

把 AGENTS.md 放在你某個具體專案的資料夾下(不是 ~/.hermes/,是專案根目錄)。當你在那個資料夾啟動 Hermes 時,這個檔案會自動載入。

~/research/your-project/AGENTS.md 範本 · 請改成你的專案
# [專案名稱] ## 專案目標 [一段簡短描述,例如:分析魯迅小說中的革命書寫,產出對照表與視覺化] ## 資料夾結構 - `corpus/` — 原始文本(**不可修改!**) - `scripts/` — Python 分析腳本 - `notes/` — 研究筆記(Markdown) - `output/` — 結果輸出 ## 工作流程 當我說「整理今天的進度」時: 1. 讀取 `notes/` 下今日修改的檔案 2. 摘要主要進展 3. 列出 unresolved questions 當我說「分析這份文本」時: 1. 確認文本在 `corpus/` 下 2. 跑 `scripts/analyze.py` 3. 把結果存到 `output/YYYY-MM-DD/` ## 工具偏好 - 文本處理:用 Python + jieba(中文斷詞) - 視覺化:用 matplotlib,標題用繁中 - 統計:scipy / scikit-learn ## 限制 > 不得修改 `corpus/` 下的任何檔案 > 不得自動推送 git commit(必須我手動執行) > 不得使用會送資料到雲端的工具(這個專案資料敏感)
檔案位置決定生效範圍:USER.md 跟著你的人格走,AGENTS.md 只在那個專案資料夾啟動 Hermes 時載入。在不同專案間切換時,AGENTS.md 會自動更換,但 SOUL.md 與 USER.md 不變。

Step 4 · 55–90 min

蒸餾你的工作流程 → 一個 .skill 檔

這是最進階也最有趣的一步:把你反覆做的某件事封裝成可重用的技能。Hermes 之後可以自動或手動呼叫這個 skill。

挑選一個你常做的事

建議從一個小而具體的任務開始。以下是幾個適合「蒸餾」的範例:

Skill 檔範本

~/.hermes/skills/paper-summary.skill 範本 · 論文摘要技能
# 論文摘要技能 description: | 把一篇學術論文(PDF 或文字)蒸餾成我習慣的摘要卡格式。 trigger: - 「幫我摘要這篇論文」 - 「summarize this paper」 - 「做摘要卡」 inputs: - paper_text: 論文全文或 PDF 路徑 steps: 1. 確認文本:如果是 PDF,先用 pdftotext 抽取文字 2. 識別關鍵資訊: - 作者、年份、期刊 - 研究問題(research question) - 主要論點(thesis) - 方法(method) - 主要發現(findings) - 三句可引用的關鍵句 3. 用我偏好的格式輸出: output_template: | ## [Author Year] Title **問題**:(一句話) **論點**:(一句話) **方法**:(一句話,包含資料與分析方法) ### 主要發現 - 發現一 - 發現二 - 發現三 ### 可引用的句子 > 句子一(頁碼) > 句子二(頁碼) ### 我的評估 - 與 [其他文獻] 的關係: - 對 [我的研究] 的意義: constraints: - 不要編造論文沒提到的內容 - 引用必須有頁碼 - 「我的評估」段如果沒把握就留空,不要瞎填
測試你的 skill:把一篇你最近讀過的論文丟給 Hermes,加上「用 paper-summary skill 處理」,看看輸出是否符合你的預期。如果不符合,回去調整 .skill 檔的 steps 與 output_template。這是 iterative refinement——通常需要 3–5 輪迭代才會穩定。

繳交規定

繳交內容與評分標準

繳交清單

把以下檔案打包成一個 zip 上傳到課程平台:

反思題目(reflection.md)

不需要全部回答,挑 2–3 題深入寫:

評分標準

項目說明分數
檔案完整性四個 .md 檔 + 一個 .skill 檔都齊全且格式正確20
SOUL.md 個性化程度不只是套用範本——能看出你的真實風格與限制20
Skill 可執行性截圖證明 agent 可成功觸發並執行你寫的 skill20
反思深度有實質的元認知,不只是描述步驟25
創意/突破嘗試非典型 skill、利用 cron、整合 Gemini API 等15

延伸挑戰(選做)

還有時間?來試試這些

⏰

加上 Cron

讓你的 agent 每天早上 8 點自動產生今日待辦摘要,送到 Telegram。

☁️

串 Gemini API

把 SOUL.md 的內容當 system_instruction 送給 Gemini,做一個雲端版的你。

🔗

多 Agent 對話

蒸餾另一個人(同學、老師、想像中的學者),讓兩個 agent 對同一問題辯論。

🪝

加 Hook

寫一個 hook 攔截危險指令(例如:寫入研究資料目錄前要求確認)。

哲學作業:當你完成蒸餾,存在的就不只是「一份檔案」——而是一個有結構的「自我表徵」。把你寫的 SOUL.md 給一個熟悉你的人看,問他:「這像我嗎?」他的回答會比 agent 的回應更有意義。