Files
nexus/Clippings/n8n调用hermes agents的工作流架构.md

152 lines
5.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: "n8n调用openclaw/hermes agents的工作流架构"
source: "https://claude.ai/chat/a18d1fa2-7e98-4f86-bac0-1167281eb151"
author:
published:
created: 2026-04-20
description: "Claude conversation with 8 messages"
tags:
- "clippings"
---
好消息!**Hermes Agent 内置了 OpenAI 兼容的 API Server**,完全不需要额外写任何代码,直接配置开启就行。
---
## 第一步:开启 Hermes API Server
Hermes 的 API Server 会将 hermes-agent 暴露为一个 OpenAI 兼容的 HTTP 端点,默认端口是 **8642**。 [GitHub](https://github.com/NousResearch/hermes-agent/blob/main/website/docs/user-guide/features/api-server.md)
bash
```bash
# 开启 API Server
hermes config set API_SERVER_ENABLED true
# 设置一个访问密钥(必须)
hermes config set API_SERVER_KEY your-secret-key
# 启动 GatewayAPI Server 随之运行)
hermes gateway install # 安装为系统服务
hermes gateway start # 启动
```
验证是否正常运行:
bash
```bash
curl http://localhost:8642/v1/health
# 返回 {"status": "ok"} 即成功
```
```bash
weishen@WeideMac-mini ~ % hermes config set API_SERVER_ENABLED true
✓ Set API_SERVER_ENABLED = True in /Users/weishen/.hermes/config.yaml
weishen@WeideMac-mini ~ % nano /Users/weishen/.hermes/config.yaml
weishen@WeideMac-mini ~ % hermes config set API_SERVER_KEY 01KPN2YYSEV56BZQSQX9XGW6VH
✓ Set API_SERVER_KEY = 01KPN2YYSEV56BZQSQX9XGW6VH in /Users/weishen/.hermes/config.yaml
weishen@WeideMac-mini ~ % nano /Users/weishen/.hermes/config.yaml
weishen@WeideMac-mini ~ % hermes gateway restart
✓ Service restarted
weishen@WeideMac-mini ~ % curl http://localhost:8642/v1/health
{"status": "ok", "platform": "hermes-agent"}% weishen@WeideMac-mini ~ % curl http://localhost:8642/v1/chat/completions \
-H "Authorization: Bearer 01KPN2YYSEV56BZQSQX9XGW6VH" \
-H "Content-Type: application/json" \
-d '{"model": "hermes-agent", "messages": [{"role": "user", "content": "Hello!"}]}'
{"id": "chatcmpl-e1569aadb12b4e36aedd9198b29e1", "object": "chat.completion", "created": 1776677020, "model": "hermes-agent", "choices": [{"index": 0, "message": {"role": "assistant", "content": "Hello! How can I help today?"}, "finish_reason": "stop"}], "usage": {"prompt_tokens": 11458, "completion_tokens": 63, "total_tokens": 11521}}%
```
---
## 第二步:为每个 Agent 创建独立 Profile
你可以用 Profile 的方式为每个用户/角色创建独立的 Hermes 实例,每个 profile 跑在不同端口,配置独立的 API key。 [GitHub](https://github.com/NousResearch/hermes-agent/blob/main/website/docs/user-guide/features/api-server.md)
bash
```bash
# 创建三个专用 Agent以任务分工为例
hermes profile create agent-researcher
hermes profile create agent-writer
hermes profile create agent-coder
# 分别配置端口和 key
hermes -p agent-researcher config set API_SERVER_ENABLED true
hermes -p agent-researcher config set API_SERVER_PORT 8643
hermes -p agent-researcher config set API_SERVER_KEY key-researcher
hermes -p agent-writer config set API_SERVER_ENABLED true
hermes -p agent-writer config set API_SERVER_PORT 8644
hermes -p agent-writer config set API_SERVER_KEY key-writer
hermes -p agent-coder config set API_SERVER_ENABLED true
hermes -p agent-coder config set API_SERVER_PORT 8645
hermes -p agent-coder config set API_SERVER_KEY key-coder
# 分别启动三个 gateway
hermes -p agent-researcher gateway &
hermes -p agent-writer gateway &
hermes -p agent-coder gateway &
```
---
## 第三步:在 n8n 中调用
每个 Agent 都是标准的 OpenAI 格式接口,在 n8n 中用 **HTTP Request 节点**
|字段|填写内容|
|---|---|
|Method|POST|
|URL|`http://localhost:8643/v1/chat/completions`|
|Header: Authorization|`Bearer key-researcher`|
|Header: Content-Type|`application/json`|
BodyJSON
json
```json
{
"model": "agent-researcher",
"messages": [
{
"role": "system",
"content": "你是一个专门负责网络调研的Agent请搜索并总结信息"
},
{
"role": "user",
"content": "{{ $json.task }}"
}
]
}
```
---
## 多轮对话保持上下文(重要)
v0.7.0 起 API Server 支持通过 `X-Hermes-Session-Id` header 来保持会话连续性,让 chat-completions 客户端也能跨请求共享同一个 session。 [GitHub](https://github.com/mudrii/hermes-agent-docs)
在 n8n 的 HTTP Request 节点 Header 中加一行:
```
X-Hermes-Session-Id: my-workflow-session-001
```
这样同一个工作流里的多次调用会共享上下文,非常适合需要多步推理的任务链。
---
## 完整架构示意
```
n8n Workflow
├─ [HTTP Request] → localhost:8643 (agent-researcher) → 搜索/调研
├─ [HTTP Request] → localhost:8644 (agent-writer) → 内容生成
└─ [HTTP Request] → localhost:8645 (agent-coder) → 代码任务
```
这套方案完全原生支持,不需要任何额外中间件。你现在的 Hermes 是哪个版本?可以用 `hermes version` 确认一下,部分特性需要 v0.4.0+。