最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

淺談hermes Skill自進(jìn)化流程與提示詞組裝機(jī)制

  發(fā)布時(shí)間:2026-07-16 10:09:15   作者:立冬的天蝎   我要評(píng)論
本文檔詳細(xì)梳理Hermes Agent中skill自進(jìn)化的完整流程,以及大模型調(diào)用時(shí)提示詞的組裝和拼接機(jī)制,文中通過(guò)示例介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

本文檔詳細(xì)梳理Hermes Agent中skill自進(jìn)化的完整流程,以及大模型調(diào)用時(shí)提示詞的組裝和拼接機(jī)制。

概述

Hermes Agent的skill自進(jìn)化系統(tǒng)是一個(gè)主動(dòng)學(xué)習(xí)機(jī)制,讓Agent能夠:

  • ? 從成功經(jīng)驗(yàn)中提取可復(fù)用的流程
  • ? 在發(fā)現(xiàn)問(wèn)題時(shí)自動(dòng)修正現(xiàn)有技能
  • ? 持續(xù)積累領(lǐng)域知識(shí)
  • ? 實(shí)現(xiàn)自我改進(jìn)的正向循環(huán)

這個(gè)系統(tǒng)通過(guò)三層架構(gòu)實(shí)現(xiàn):

  1. 提示詞層:通過(guò)技能索引主動(dòng)提示Agent可用的知識(shí)庫(kù)
  2. 工具層:提供完整的CRUD操作,支持增量修改
  3. 執(zhí)行層:安全掃描、緩存管理、持久化存儲(chǔ)

一、Skill自進(jìn)化的核心理念

1.1 什么是Skill?

Skill是Agent的過(guò)程記憶(Procedural Memory),用于捕獲"如何執(zhí)行特定類型任務(wù)"的已驗(yàn)證經(jīng)驗(yàn)。

與Memory的區(qū)別

  • Memory:廣泛的、聲明式的知識(shí)(用戶偏好、環(huán)境細(xì)節(jié))
  • Skill:狹窄的、可操作的過(guò)程(具體工作流程、命令序列)

1.2 Skill的目錄結(jié)構(gòu)

~/.hermes/skills/                  # 主目錄(唯一真相源)  
├── mlops/                         # 分類目錄  
│   ├── axolotl/  
│   │   ├── SKILL.md               # 主要指令(必需)  
│   │   ├── references/            # 參考文檔  
│   │   │   ├── api.md  
│   │   │   └── examples.md  
│   │   ├── templates/             # 輸出模板  
│   │   ├── scripts/               # 可執(zhí)行腳本  
│   │   └── assets/                # 補(bǔ)充文件  
│   └── vllm/  
│       └── SKILL.md  
├── devops/  
│   └── deploy-k8s/                # Agent創(chuàng)建的技能  
│       ├── SKILL.md  
│       └── references/  
└── .hub/                          # Skills Hub狀態(tài)  
    ├── lock.json    ├── quarantine/    └── audit.log```
  
### 1.3 SKILL.md格式  
  
```markdown  
---  
name: my-skill  
description: 簡(jiǎn)短描述此技能的功能  
version: 1.0.0  
platforms: [macos, linux]     # 可選:限制特定OS平臺(tái)  
metadata:  
  hermes:    tags: [python, automation]    category: devops    fallback_for_toolsets: [web]    # 可選:條件激活  
    requires_toolsets: [terminal]   # 可選:條件激活  
---  
  
# Skill標(biāo)題  
  
## When to Use此技能的觸發(fā)條件。  
  
## Procedure1. 第一步  
2. 第二步  
  
## Pitfalls- 已知的失敗模式和修復(fù)方法  
  
## Verification如何確認(rèn)它工作正常。  

二、觸發(fā)機(jī)制

2.1 創(chuàng)建新技能的觸發(fā)條件

在系統(tǒng)提示詞中,Agent被明確指導(dǎo)何時(shí)創(chuàng)建技能(定義在 agent/prompt_builder.py):

SKILLS_GUIDANCE = (  
    "After completing a complex task (5+ tool calls), fixing a tricky error, "    "or discovering a non-trivial workflow, save the approach as a "    "skill with skill_manage so you can reuse it next time.\n"    "When using a skill and finding it outdated, incomplete, or wrong, "    "patch it immediately with skill_manage(action='patch') — don't wait to be asked. "    "Skills that aren't maintained become liabilities.")  

觸發(fā)場(chǎng)景

場(chǎng)景說(shuō)明
? 復(fù)雜任務(wù)完成5+工具調(diào)用,成功完成
? 解決棘手錯(cuò)誤經(jīng)過(guò)多次嘗試找到正確路徑
? 發(fā)現(xiàn)非平凡工作流新的、有效的工作流程
? 用戶糾正方法用戶提供了更好的方法
? 用戶明確要求“記住這個(gè)流程”

2.2 更新技能的觸發(fā)條件

skill_manage 工具的描述中定義:

Update when: instructions stale/wrong, OS-specific failures, missing steps or pitfalls found during use. If you used a skill and hit issues not covered by it, patch it immediately.  

觸發(fā)場(chǎng)景

場(chǎng)景說(shuō)明
?? 指令過(guò)時(shí)/錯(cuò)誤發(fā)現(xiàn)不準(zhǔn)確的內(nèi)容
?? OS特定失敗平臺(tái)兼容性問(wèn)題
?? 遺漏步驟或陷阱使用時(shí)發(fā)現(xiàn)未覆蓋的情況
?? 使用中遇到問(wèn)題技能未涵蓋的場(chǎng)景

三、完整執(zhí)行流程

3.1 系統(tǒng)提示詞組裝(第一層注入)

時(shí)機(jī):會(huì)話開始時(shí)

位置run_agent.py_build_system_prompt()

流程

def _build_system_prompt(self, system_message: str = None) -> str:
    # Layer 1-6: 其他層次...
    # Layer 7: Skills index
    has_skills_tools = any(name in self.valid_tool_names 
                          for name in ['skills_list', 'skill_view', 'skill_manage'])
    if has_skills_tools:
        avail_toolsets = {
            toolset
            for toolset in (
                get_toolset_for_tool(tool_name) for tool_name in self.valid_tool_names
            )
            if toolset
        }
        skills_prompt = build_skills_system_prompt(
            available_tools=self.valid_tool_names,
            available_toolsets=avail_toolsets,
        )

3.2 技能索引構(gòu)建

位置agent/prompt_builder.pybuild_skills_system_prompt()

步驟

  1. 掃描技能目錄

    • 本地目錄:~/.hermes/skills/
    • 外部目錄:配置的共享目錄
  2. 解析SKILL.md前言

    • 名稱、描述
    • 平臺(tái)限制
    • 條件激活規(guī)則
  3. 過(guò)濾技能

    # 平臺(tái)兼容性檢查  
    if not skill_matches_platform(frontmatter):
        continue
    # 條件激活檢查
    if not _skill_should_show(
        extract_skill_conditions(frontmatter),
        available_tools,
        available_toolsets,
    ):
        continue
    # 禁用列表檢查
    if frontmatter_name in disabled or skill_name in disabled:
        continue 
  4. 生成緊湊索引格式

    ## Skills (mandatory)   
    Before replying, scan the skills below. If one clearly matches your task, 
    load it with skill_view(name) and follow its instructions. 
    If a skill has issues, fix it with skill_manage(action='patch').
    <available_skills>
      software-development:
        - code-review: Structured code review workflow
        - test-driven-development: TDD methodology
      research:
        - arxiv: Search and summarize arXiv papers
    </available_skills>
    If none match, proceed normally without loading a skill. 

3.3 動(dòng)態(tài)加載技能(第二層注入)

時(shí)機(jī):Agent識(shí)別到相關(guān)技能時(shí)

漸進(jìn)式披露架構(gòu)(Progressive Disclosure):

Level 0: skills_list()              → 元數(shù)據(jù)列表(~3k tokens)  
Level 1: skill_view(name)           → 完整SKILL.md內(nèi)容  
Level 2: skill_view(name, file_path) → 參考文件、模板、腳本  

優(yōu)勢(shì):只有在真正需要時(shí)才加載完整內(nèi)容,確保token高效使用。

示例

# Level 0: 列出所有技能  
skills_list()  
  
# Level 1: 加載技能主體  
skill_view("axolotl")  
  
# Level 2: 加載參考文件  
skill_view("axolotl", "references/dataset-formats.md")  

3.4 創(chuàng)建/修改技能

工具skill_manage

主要操作

Action用途Token效率關(guān)鍵參數(shù)
create從零創(chuàng)建新技能需要完整SKILL.mdname, content, category
patch目標(biāo)修復(fù)(推薦)只需變更部分name, old_string, new_string
edit重大結(jié)構(gòu)重寫需要完整替換name, content
delete刪除技能N/Aname
write_file添加參考文件/模板支持大文件name, file_path, file_content
remove_file刪除支持文件N/Aname, file_path

patch操作的智能匹配:

# 使用模糊匹配引擎,處理:  
# - 空白字符規(guī)范化  
# - 縮進(jìn)差異  
# - 轉(zhuǎn)義序列  
# - 塊錨點(diǎn)匹配  
from tools.fuzzy_match import fuzzy_find_and_replace  
new_content, match_count, _strategy, match_error = fuzzy_find_and_replace(  
    content, old_string, new_string, replace_all)  

示例

# 創(chuàng)建新技能  
skill_manage(  
    action="create",    name="my-deployment-workflow",    category="devops",    content="""---name: my-deployment-workflow  
description: Deploy to Kubernetes with zero downtime  
---  
# Deployment Workflow  
..."""  
)  
# 修復(fù)技能中的錯(cuò)誤  
skill_manage(  
    action="patch",    name="my-deployment-workflow",    old_string="kubectl apply -f deployment.yaml",    new_string="kubectl apply -f deployment.yaml --record")  

3.5 安全掃描

時(shí)機(jī):所有技能變更后

位置tools/skill_manager_tool.py_security_scan_skill()

掃描內(nèi)容

檢查項(xiàng)說(shuō)明
數(shù)據(jù)外泄風(fēng)險(xiǎn)檢測(cè)curl、wget等可能泄露數(shù)據(jù)的命令
提示注入攻擊檢測(cè)"ignore previous instructions"等模式
破壞性命令檢測(cè)rm -rf、格式化等危險(xiǎn)操作
供應(yīng)鏈攻擊信號(hào)檢測(cè)可疑的依賴項(xiàng)或外部引用
隱形Unicode檢測(cè)零寬字符等隱形字符

處理流程

result = scan_skill(skill_dir, source="agent-created")  
allowed, reason = should_allow_install(result)  
if allowed is False:  
    # 阻止并回滾  
    return {"success": False, "error": f"Security scan blocked: {reason}"}    if allowed is None:  
    # 警告但允許  
    logger.warning("Skill has security findings: %s", reason)  

3.6 緩存更新

時(shí)機(jī):技能修改成功后立即執(zhí)行

位置tools/skill_manager_tool.py

   if result.get("success"):
    try:
        from agent.prompt_builder import clear_skills_system_prompt_cache
        clear_skills_system_prompt_cache(clear_snapshot=True)
    except Exception:
        pass

緩存層次

  1. 內(nèi)存LRU緩存:進(jìn)程內(nèi)的快速緩存
  2. 磁盤快照~/.hermes/.skills_prompt_snapshot.json
    • 包含mtime/size清單
    • 冷啟動(dòng)時(shí)快速加載

四、提示詞組裝機(jī)制

4.1 完整層次結(jié)構(gòu)

系統(tǒng)提示詞按以下順序組裝(定義在 run_agent.py_build_system_prompt()):

Layer 1: Agent Identity  
         ↓ SOUL.md(~/.hermes/SOUL.md)或 DEFAULT_AGENT_IDENTITY         Layer 2: Tool-aware behavior guidance  
         ↓ Memory、Session Search、Skills使用指導(dǎo)  
         Layer 3: Honcho static block  
         ↓ 當(dāng)Honcho激活時(shí)注入  
         Layer 4: Optional system message  
         ↓ 用戶配置的系統(tǒng)消息  
         Layer 5: Frozen MEMORY snapshot  
         ↓ 持久化記憶(凍結(jié)快照)  
         Layer 6: Frozen USER profile snapshot  
         ↓ 用戶畫像(凍結(jié)快照)  
         Layer 7: Skills index ?  
         ↓ 技能索引(自進(jìn)化的核心)  
         Layer 8: Context files  
         ↓ AGENTS.md、.cursorrules、.hermes.md等  
         Layer 9: Timestamp + session ID  
         ↓ 會(huì)話標(biāo)識(shí)和時(shí)間戳  
         Layer 10: Platform hint  
         ↓ 平臺(tái)特定提示(WhatsApp/Discord/CLI等)  

4.2 緩存策略

穩(wěn)定前綴緩存

  • 緩存范圍:Layer 1-8 在會(huì)話開始時(shí)構(gòu)建并緩存
  • 重建條件
    • 上下文壓縮事件
    • 技能修改
    • 配置變更

API調(diào)用時(shí)注入

以下內(nèi)容包含在緩存中,而是在每次API調(diào)用時(shí)注入:

  • ephemeral_system_prompt:臨時(shí)系統(tǒng)提示
  • Prefill messages:預(yù)填充消息
  • Gateway會(huì)話上下文覆蓋
  • Honcho recall:當(dāng)前輪次的記憶召回

設(shè)計(jì)原則

# 注釋來(lái)自 run_agent.py# Note: ephemeral_system_prompt is NOT included here. It's injected at  
# API-call time only so it stays out of the cached/stored system prompt.  

4.3 上下文文件發(fā)現(xiàn)

優(yōu)先級(jí)系統(tǒng)(第一個(gè)匹配獲勝):

優(yōu)先級(jí)文件搜索范圍說(shuō)明
1.hermes.md, HERMES.mdCWD到git根Hermes原生項(xiàng)目配置
2AGENTS.md僅CWD通用Agent指令文件
3CLAUDE.md僅CWDClaude Code兼容
4.cursorrules, .cursor/rules/*.mdc僅CWDCursor兼容

安全掃描

所有上下文文件在注入前都會(huì)掃描:

_CONTEXT_THREAT_PATTERNS = [  
    (r'ignore\s+(previous|all|above|prior)\s+instructions', "prompt_injection"),    (r'do\s+not\s+tell\s+the\s+user', "deception_hide"),    (r'system\s+prompt\s+override', "sys_prompt_override"),    # ... 更多模式  
]  

截?cái)嗖呗?/strong>:

CONTEXT_FILE_MAX_CHARS = 20_000  # 20k字符上限  
CONTEXT_TRUNCATE_HEAD_RATIO = 0.7  # 保留70%頭部  
CONTEXT_TRUNCATE_TAIL_RATIO = 0.2  # 保留20%尾部  
# 中間10%用截?cái)鄻?biāo)記替換```
  
### 4.4 完整示例  
  
以下是所有層次都存在時(shí)的系統(tǒng)提示詞示例:  
  
```markdown  
# Layer 1: Agent Identity  
You are Hermes, an AI assistant created by Nous Research.  
You are an expert software engineer and researcher.  
  
# Layer 2: Tool-aware behavior guidance  
You have persistent memory across sessions. Save durable facts.  
  
# Layer 5: Frozen MEMORY snapshot  
## Persistent Memory  
- User prefers Python 3.12  
  
# Layer 7: Skills index  
## Skills (mandatory)  
<available_skills>  
  software-development:    - code-review: Structured code review workflow</available_skills>  

五、關(guān)鍵技術(shù)特性

5.1 條件激活(Conditional Activation)

技能可以根據(jù)當(dāng)前工具集自動(dòng)顯示/隱藏。

配置方式

metadata:
      hermes:
              fallback_for_toolsets: [web]        
              requires_toolsets: [terminal]  

邏輯表

字段行為
fallback_for_toolsets列出的工具集可用時(shí)隱藏,不可用時(shí)顯示
requires_toolsets列出的工具集可用時(shí)顯示,不可用時(shí)隱藏
fallback_for_tools列出的工具可用時(shí)隱藏,不可用時(shí)顯示
requires_tools列出的工具可用時(shí)顯示,不可用時(shí)隱藏

實(shí)際案例

DuckDuckGo搜索技能配置了 fallback_for_toolsets: [web]

  • 當(dāng) FIRECRAWL_API_KEY 設(shè)置時(shí),web工具集可用 -> DuckDuckGo技能隱藏
  • 當(dāng) API密鑰缺失時(shí),web工具集不可用 -> DuckDuckGo技能自動(dòng)顯示作為免費(fèi)備選

5.2 平臺(tái)限制

技能可以限制只在特定操作系統(tǒng)上顯示。

配置方式

platforms: [macos]            # 僅macOS  
platforms: [macos, linux]     # macOS和Linux  

平臺(tái)映射:

配置值匹配系統(tǒng)
macosmacOS (Darwin)
linuxLinux
windowsWindows

實(shí)際案例:

  • iMessage技能:platforms: [macos] - 只在macOS上顯示
  • Apple Reminders技能:platforms: [macos] - 只在macOS上顯示
  • Docker管理技能:platforms: [macos, linux] - 不支持Windows

5.3 外部技能目錄

支持共享技能庫(kù),讓多個(gè)Agent工具共享同一套技能。

配置方式

skills:
      external_dirs:
              - ~/.agents/skills
              - /home/shared/team-skills  

特性

特性說(shuō)明
只讀外部目錄僅用于掃描發(fā)現(xiàn)
本地優(yōu)先同名技能,本地版本優(yōu)先
完整集成出現(xiàn)在索引、skills_list、斜杠命令中
路徑支持支持 ~ 和 ${VAR} 環(huán)境變量

5.4 安全環(huán)境變量配置

技能可以聲明必需的環(huán)境變量,在加載時(shí)自動(dòng)提示配置。

配置方式

required_environment_variables:
      - name: TENOR_API_KEY
      - prompt: Tenor API key
      - help: Get a key from https://developers.google.com/tenor  

六、代碼位置索引

6.1 核心文件

功能模塊文件路徑關(guān)鍵函數(shù)/類
提示詞組裝入口run_agent.py:2908_build_system_prompt()
技能索引構(gòu)建agent/prompt_builder.py:440build_skills_system_prompt()
技能掃描解析agent/prompt_builder.py:373_parse_skill_file()
條件激活邏輯agent/prompt_builder.py:405_skill_should_show()
平臺(tái)兼容性agent/skill_utils.pyskill_matches_platform()
技能加載工具tools/skills_tool.py:409skill_view()
技能列表工具tools/skills_tool.py:247skills_list()
技能管理工具tools/skill_manager_tool.py:552skill_manage()
創(chuàng)建操作tools/skill_manager_tool.py:266_create_skill()
修復(fù)操作tools/skill_manager_tool.py:349_patch_skill()
編輯操作tools/skill_manager_tool.py:316_edit_skill()
刪除操作tools/skill_manager_tool.py:445_delete_skill()
安全掃描tools/skill_manager_tool.py:37_security_scan_skill()
緩存清理agent/prompt_builder.py:259clear_skills_system_prompt_cache()

6.2 輔助文件

功能文件路徑
前言解析agent/skill_utils.py -> parse_frontmatter()
技能描述提取agent/skill_utils.py -> extract_skill_description()
技能條件提取agent/skill_utils.py -> extract_skill_conditions()
外部目錄獲取agent/skill_utils.py -> get_all_skills_dirs()
模糊匹配tools/fuzzy_match.py -> fuzzy_find_and_replace()
安全掃描器tools/skills_guard.py -> scan_skill()
原子寫入tools/skill_manager_tool.py -> _atomic_write_text()

七、總結(jié)

Hermes Agent的skill自進(jìn)化系統(tǒng)是一個(gè)精心設(shè)計(jì)的主動(dòng)學(xué)習(xí)機(jī)制,通過(guò)三層架構(gòu)實(shí)現(xiàn)Agent的自我改進(jìn):

核心優(yōu)勢(shì)

  1. 主動(dòng)學(xué)習(xí):Agent被明確指導(dǎo)何時(shí)創(chuàng)建/更新技能
  2. 高效進(jìn)化:patch操作只需變更部分,token高效
  3. 安全保障:自動(dòng)掃描防止惡意代碼注入
  4. 上下文感知:根據(jù)工具集和平臺(tái)動(dòng)態(tài)調(diào)整可用技能
  5. 緩存友好:穩(wěn)定的前綴緩存設(shè)計(jì)

設(shè)計(jì)亮點(diǎn)

  • 漸進(jìn)式披露:三層加載機(jī)制(列表->內(nèi)容->參考文件)確保token高效
  • 模糊匹配:patch操作容忍格式差異,提高成功率
  • 條件激活:技能可以根據(jù)環(huán)境自動(dòng)顯示/隱藏
  • 雙緩存:內(nèi)存LRU + 磁盤快照,兼顧速度和持久化
  • 安全優(yōu)先:多層掃描,自動(dòng)回滾危險(xiǎn)操作

應(yīng)用場(chǎng)景

  • 個(gè)人學(xué)習(xí):Agent記住用戶的工作流程和偏好
  • 團(tuán)隊(duì)共享:通過(guò)外部技能目錄共享最佳實(shí)踐
  • 持續(xù)改進(jìn):使用中不斷修正和完善技能庫(kù)
  • 領(lǐng)域?qū)>?/strong>:針對(duì)特定領(lǐng)域積累專業(yè)知識(shí)

這個(gè)系統(tǒng)讓Agent能夠在不斷使用中自我改進(jìn),形成正向循環(huán):任務(wù)越復(fù)雜,積累的技能越多,未來(lái)的任務(wù)處理就越高效。

到此這篇關(guān)于淺談hermes Skill自進(jìn)化流程與提示詞組裝機(jī)制的文章就介紹到這了,更多相關(guān)hermes Skill自進(jìn)化流程與提示詞組裝內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持腳本之家!

相關(guān)文章

  • 深入理解Hermes Agent Skill 機(jī)制

    本文主要介紹了深入理解Hermes Agent Skill 機(jī)制,包含發(fā)現(xiàn)索引→觸發(fā)加載→預(yù)處理→Prompt注入→LLM響應(yīng)五個(gè)階段,下面就詳細(xì)了解這五種階段,感興趣的可以了解一下
    2026-07-16
  • 一文全解Hermes Agent 的 Skills、Plugins、Gateway

    本文給大家深度解析Hermes Agent 的 Skills、Plugins、Gateway的相關(guān)知識(shí),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2026-05-09

最新評(píng)論

驻马店市| 延长县| 神农架林区| 汉川市| 朝阳县| 扬州市| 申扎县| 定安县| 咸丰县| 敦煌市| 温宿县| 称多县| 临沧市| 宣汉县| 黎平县| 潞城市| 晋中市| 黄龙县| 洪泽县| 台北市| 乐至县| 门头沟区| 平度市| 丹阳市| 涿州市| 宝应县| 远安县| 综艺| 调兵山市| 临邑县| 宣威市| 星座| 崇左市| 阿瓦提县| 平武县| 金乡县| 葫芦岛市| 怀仁县| 越西县| 桂东县| 南靖县|