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

Hermes-Agent 自定義工具開發(fā)實戰(zhàn)

  發(fā)布時間:2026-04-24 10:45:27   作者:Ts-Drunk   我要評論
本文詳細介紹了如何在Hermes-Agent中快速開發(fā)自定義工具,通過5分鐘實現文件查詢功能,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

今天直接上實戰(zhàn)——教你5分鐘快速開發(fā)一個自定義工具,集成到Hermes中,讓AI智能體擁有你想要的專屬功能!全文代碼可直接復制,新手也能零失敗上手,建議先收藏+關注,避免開發(fā)時迷路~

?? 前言:為什么要自定義工具?

Hermes-Agent自帶40+內置工具(搜索、文件操作、瀏覽器自動化等),但實際使用中,我們常常需要適配自己的場景:比如對接公司內部系統(tǒng)、操作本地軟件、調用專屬API,這時候就需要開發(fā)自定義工具。

好在Hermes的工具系統(tǒng)采用插件化設計,開發(fā)門檻極低——無需修改核心源碼,只需繼承基類、實現2個核心方法,就能快速集成,甚至可以直接打包供他人使用!

? 一、開發(fā)前準備(環(huán)境確認)

確保你已經成功安裝Hermes-Agent(參考上一篇安裝教程),并確認開發(fā)環(huán)境:

# 1. 激活Hermes虛擬環(huán)境(手動安裝用戶)
source ~/.hermes/venv/bin/activate
# 2. 確認hermes命令可用
hermes version
# 3. 安裝必要依賴(若未安裝)
pip install pydantic  # 工具參數校驗(Hermes內置依賴,一般已安裝)

??? 二、自定義工具開發(fā)步驟(核心流程)

我們以「開發(fā)一個本地文件查詢工具」為例(功能:根據文件路徑,查詢文件內容并返回),一步步演示開發(fā)全過程。

Step 1:找到工具存放目錄

Hermes的工具分為「內置工具」和「自定義工具」,自定義工具建議放在 \~/\.hermes/skills/ 目錄下(自動被Hermes識別):

# 創(chuàng)建自定義工具目錄(若不存在)
mkdir -p ~/.hermes/skills/my_custom_tools
cd ~/.hermes/skills/my_custom_tools

Step 2:編寫工具代碼(核心文件)

創(chuàng)建文件 file\_query\_tool\.py,代碼如下(注釋詳細,可直接復制):

from hermes.tools.base import BaseTool
from pydantic import Field
from typing import Optional
# 自定義工具類,必須繼承BaseTool
class FileQueryTool(BaseTool):
    # 1. 工具基礎信息(必填)
    name: str = "file_query"  # 工具唯一標識(調用時用這個名字)
    description: str = "用于查詢本地文件的內容,需要傳入文件的絕對路徑;如果文件不存在,會返回錯誤提示"  # LLM用來判斷是否調用該工具
    return_direct: bool = False  # 是否直接返回結果(無需LLM二次處理)
    # 2. 工具參數(必填,用pydantic校驗)
    file_path: str = Field(
        description="本地文件的絕對路徑,例如:/home/user/test.txt、C:/Users/test.txt(WSL2中用Linux路徑)"
    )
    encoding: Optional[str] = Field(
        default="utf-8",
        description="文件編碼格式,默認utf-8,若出現亂碼可嘗試gbk"
    )
    # 3. 核心執(zhí)行方法(必填,實現工具邏輯)
    async def execute(self) -> str:
        """執(zhí)行工具,查詢文件內容并返回"""
        try:
            # 讀取文件內容
            with open(self.file_path, "r", encoding=self.encoding) as f:
                content = f.read()
            # 處理長文本(避免超過LLM上下文限制)
            if len(content) > 1000:
                return f"文件內容(前1000字符):\n{content[:1000]}\n\n提示:文件內容過長,已截取前1000字符,如需完整內容請指定截取范圍。"
            else:
                return f"文件內容:\n{content}"
        except FileNotFoundError:
            return f"錯誤:未找到文件,請檢查路徑是否正確(路徑:{self.file_path})"
        except Exception as e:
            return f"讀取文件失?。簕str(e)}"
# 注冊工具(Hermes啟動時會自動掃描并加載)
def register_tools(tool_manager):
    tool_manager.register_tool(FileQueryTool())

Step 3:關鍵代碼解析(必看)

  • 繼承BaseTool:所有自定義工具必須繼承Hermes的BaseTool基類,否則無法被識別
  • 基礎信息:name(唯一標識)、description(給LLM看的說明,決定LLM是否調用該工具)、return_direct(是否直接返回結果)
  • 參數定義:用pydantic的Field定義參數,description會告訴LLM需要傳入什么參數
  • execute方法:工具的核心邏輯,必須是async異步方法(Hermes底層是異步執(zhí)行),返回字符串結果(LLM可直接處理)
  • 注冊工具:通過register_tools函數,將工具注冊到ToolManager,Hermes啟動時會自動掃描執(zhí)行

Step 4:驗證工具是否加載成功

# 1. 重啟Hermes(加載新工具)
hermes stop  # 若已啟動,先停止
hermes       # 重新啟動
# 2. 在Hermes交互界面,查看所有工具
/hermes tools list

如果輸出中包含file\_query,說明工具加載成功!

?? 三、測試自定義工具(實戰(zhàn)驗證)

在Hermes交互界面,直接輸入指令,讓AI調用我們的自定義工具:

# Hermes交互界面輸入
幫我查詢文件 /home/user/test.txt 的內容

此時Hermes會自動識別需要調用 file\_query 工具,傳入文件路徑參數,執(zhí)行后返回文件內容,完美!

?? 四、進階技巧(擴展功能)

1. 工具參數擴展(多參數示例)

如果需要多參數(比如查詢文件的指定行數),只需新增Field即可:

start_line: Optional[int] = Field(
    default=1,
    description="開始讀取的行數,默認從第1行開始"
)
end_line: Optional[int] = Field(
    default=None,
    description="結束讀取的行數,默認讀取到文件末尾"
)

然后在execute方法中處理這兩個參數即可。

2. 工具打包與分享

將自定義工具目錄打包成zip,發(fā)給他人,他人只需解壓到 \~/\.hermes/skills/ 目錄,重啟Hermes即可使用,無需額外配置!

3. 調試工具(關鍵技巧)

如果工具執(zhí)行失敗,可通過以下命令查看日志:

hermes logs  # 查看Hermes運行日志,定位錯誤

?? 五、常見問題&解決方案

問題解決方案
工具未被加載1. 檢查文件路徑是否在 ~/.hermes/skills/ 下;2. 檢查register_tools函數是否正確;3. 重啟Hermes
執(zhí)行工具報錯“async錯誤”確保execute方法是async異步方法,且沒有同步阻塞操作(如time.sleep,需替換為asyncio.sleep)
LLM不調用自定義工具優(yōu)化description,更明確說明工具的用途和適用場景,讓LLM知道何時該調用

?? 總結&互動引流

本文手把手教你開發(fā)Hermes自定義工具,核心就3步:繼承基類、定義參數、實現執(zhí)行邏輯,5分鐘就能搞定!學會這個,你可以開發(fā)任何你需要的工具,讓Hermes完全適配你的場景~

到此這篇關于Hermes-Agent 自定義工具開發(fā)實戰(zhàn)的文章就介紹到這了,更多相關Hermes-Agent 自定義工具內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持腳本之家!

相關文章

  • Hermes Agent工具集大全:20+工具讓你的AI無所不能

    工具集是Hermes Agent區(qū)別于普通AI聊天工具的關鍵,通過調用各種工具,Hermes Agent不僅僅是一個對話伙伴,而是一個能夠實際操作系統(tǒng)的智能代理,本文整理了20+個工具集,覆
    2026-04-20

最新評論

南丰县| 威远县| 绥江县| 滕州市| 哈密市| 宽甸| 高碑店市| 泸州市| 彰化市| 阿拉善左旗| 宁晋县| 香港| 怀宁县| 特克斯县| 赫章县| 红安县| 廉江市| 巢湖市| 道孚县| 辉县市| 东源县| 泰和县| 尼木县| 巴彦淖尔市| 逊克县| 郧西县| 仁怀市| 福清市| 彰化县| 涿州市| 木兰县| 富民县| 尼勒克县| 张家港市| 红河县| 普陀区| 石城县| 绥江县| 阿克陶县| 河曲县| 额尔古纳市|