Hermes Agent REST API:程序化调用AI能力(2026最新)

OpenClaw 企业定制 私人订制工作流 优化运维 openclaw记忆优化 问题咨询解决 请加微信交流

微信: aixbwz

除了通过消息平台和WebSocket,Hermes还提供完整的REST API,让你可以用API方式集成AI能力到任何系统。API适合需要程序化调用AI的场景。这篇讲清楚Hermes API的结构、使用方法、认证方式、以及实际调用示例。

API概览

Hermes REST API提供以下端点:

POST /v1/chat/completions    # 对话
POST /v1/completions         # 补全
GET  /v1/models              # 列出可用模型
POST /v1/embeddings          # 向量嵌入
GET  /v1/usage               # 使用量统计
GET  /health                 # 健康检查

启动API服务

# 启动API服务
hermes api --port 8080

# 或通过Gateway
hermes gateway --api

认证方式

API Key认证

# 生成API Key
hermes api-key create --name "my-app"

# 使用API Key
curl https://your-domain.com/v1/chat/completions   -H "Authorization: Bearer sk-hermes-xxx"   -H "Content-Type: application/json"   -d '{"model": "claude-3-sonnet", "messages": [{"role": "user", "content": "Hello"}]}'

环境变量配置

hermes:
  api:
    enabled: true
    port: 8080
    api_keys:
      - name: "my-app"
        key: "sk-hermes-xxx"
        expires: "2025-12-31"

Chat Completions API

核心对话接口,兼容OpenAI格式:

POST /v1/chat/completions

请求格式

{
"model": "claude-3-sonnet",
"messages": [
{"role": "system", "content": "你是一个助手"},
{"role": "user", "content": "你好"}
],
"temperature": 0.7,
"max_tokens": 1000,
"stream": false
}

响应格式

{
"id": "chatcmpl-xxx",
"object": "chat.completion",
"created": 1234567890,
"model": "claude-3-sonnet",
"choices": [{
"index": 0,
"message": {
"role": "assistant",
"content": "你好!有什么可以帮你的?"
},
"finish_reason": "stop"
}],
"usage": {
"prompt_tokens": 10,
"completion_tokens": 20,
"total_tokens": 30
}
}

curl调用示例

curl -X POST https://your-domain.com/v1/chat/completions   -H "Authorization: Bearer sk-hermes-xxx"   -H "Content-Type: application/json"   -d '{
"model": "claude-3-sonnet",
"messages": [{"role": "user", "content": "用Python写一个快速排序"}]
}'

Python调用示例

import openai

client = openai.OpenAI(
api_key="sk-hermes-xxx",
base_url="https://your-domain.com/v1"
)

response = client.chat.completions.create(
model="claude-3-sonnet",
messages=[{"role": "user", "content": "你好"}]
)
print(response.choices[0].message.content)

流式响应

{
"stream": true
}

import openai

client = openai.OpenAI(
api_key="sk-hermes-xxx",
base_url="https://your-domain.com/v1"
)

stream = client.chat.completions.create(
model="claude-3-sonnet",
messages=[{"role": "user", "content": "讲个故事"}],
stream=True
)

for chunk in stream:
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="")

模型列表

GET /v1/models

{
"data": [
{"id": "claude-3-sonnet", "object": "model", "owned_by": "anthropic"},
{"id": "claude-3-opus", "object": "model", "owned_by": "anthropic"},
{"id": "gpt-4", "object": "model", "owned_by": "openai"},
{"id": "gemini-pro", "object": "model", "owned_by": "google"}
]
}

使用量统计

GET /v1/usage

{
"total_tokens": 1000000,
"total_cost": 5.50,
"period": "30d"
}

Middleware配置

hermes:
api:
enabled: true
port: 8080
rate_limit:
enabled: true
requests_per_minute: 60
requests_per_hour: 1000
cors:
enabled: true
allowed_origins:
- "https://your-app.com"
logging:
enabled: true
log_requests: true
log_responses: false

Nginx反代配置

server {
listen 443 ssl;
server_name your-domain.com;

ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;

location / {
proxy_pass http://localhost:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;

# 流式响应需要这些
proxy_buffering off;
proxy_cache off;
proxy_read_timeout 86400;
}
}

常见问题

401 Unauthorized?

检查API Key是否正确,是否带有Bearer前缀。

429 Rate Limited?

触发限流,降低请求频率。

连接超时?

检查服务器是否启动,防火墙是否开放端口。

模型不支持?

检查config.yaml中的模型配置是否正确。

总结

REST API让Hermes集成到任何系统:

  • OpenAI兼容格式
  • 支持流式响应
  • API Key认证
  • 速率限制保护

适合需要程序化调用AI的场景。

相关文章

© 版权声明
THE END
喜欢就支持一下吧
点赞5 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容

七天热门