项目简介
Hector 是一个生产级的 AI 代理平台,使用 Go 语言构建,专注于性能和运维简便性。它允许通过声明式 YAML 配置定义复杂的智能体系统,无需编写代码。Hector 支持多代理编排、丰富的工具生态、先进的内存管理以及对 A2A 协议的全面支持,并通过 JSON-RPC 协议与 LLM 客户端进行上下文信息和功能交互。
主要功能点
- 零代码配置: 通过纯 YAML 文件定义智能体及其行为,无需编写 Go 或 Python 代码。
- 多代理编排: 内置的 Supervisor 决策引擎支持智能体之间的任务分解、委派和结果整合,实现复杂的 AI 协作流程。
- 工具生态: 提供丰富多样的工具,包括文件操作(读写、搜索替换)、命令执行(支持沙盒化)、RAG(检索增强生成)搜索,并能通过 MCP 协议集成外部工具,扩展智能体的功能边界。
- 内存管理: 支持多种记忆策略,包括用于短期对话的“工作记忆”(如摘要缓冲区、滑动窗口)和用于长期知识存储的“长期记忆”(基于向量数据库实现语义检索)。
- 生产级可观测性: 内置 Prometheus 指标和 OpenTelemetry 分布式追踪,为生产环境部署提供全面的监控和调试能力。
- A2A 协议原生: 完全兼容 Agent-to-Agent (A2A) 协议,确保智能体之间通信的标准化和互操作性。
- JSON-RPC 支持: 提供基于 JSON-RPC 协议的通信接口,允许 LLM 客户端以标准化的方式访问智能体的上下文信息和调用其功能。
- 会话管理: 管理智能体与用户之间的交互会话,确保对话连贯性和上下文持久性。
- 能力声明: 智能体能够通过标准接口声明自身的能力,包括支持的输入/输出模式和可用技能。
- 多种传输协议: 除了 JSON-RPC,还支持 REST API、gRPC 和 WebSocket 等多种传输协议,提供灵活的客户端连接方式。
安装步骤
-
安装 Go 语言环境: 确保您的系统已安装 Go 1.24 或更高版本。您可以从 Go 官方网站下载并安装。
-
安装 Hector CLI 工具: 打开您的终端或命令提示符,运行以下命令安装 Hector 命令行工具:
go install github.com/kadirpekel/hector/cmd/hector@latest -
准备配置文件: 创建一个名为 'agents.yaml' 的文件,并在其中定义您的智能体配置。以下是一个简单的示例,定义了一个名为 'analyst' 的智能体:
agents: analyst: llm: gpt-4o tools: [search, write_file, search_replace] reasoning: engine: chain-of-thought max_iterations: 100 llms: gpt-4o: type: openai model: gpt-4o api_key: ${OPENAI_API_KEY} -
设置 API 密钥: Hector 需要访问大型语言模型 (LLM) 服务。请导出您的 LLM 服务(例如 OpenAI、Anthropic 等)的 API 密钥作为环境变量。例如:
export OPENAI_API_KEY="sk-您的OpenAI密钥"请根据您配置文件中指定的 LLM 类型设置相应的环境变量。
服务器配置(供 MCP 客户端连接)
Hector 作为 MCP 服务器运行,MCP 客户端需要以下信息才能与其建立连接并进行通信:
- 服务器名称 (Server Name): 您可以为 Hector 实例指定一个描述性名称,例如 '"HectorAgentPlatform"'。这个名称有助于客户端识别和管理不同的 MCP 服务器。
- 通信协议 (Protocol): Hector 支持多种协议,MCP 客户端应选择 'jsonrpc' 协议,并通过 HTTP/S 进行传输。
- 端点 (Endpoint): 默认情况下,Hector 服务器的 JSON-RPC 服务在 'http://localhost:8080/' 上提供。在客户端配置中,您需要指定这个完整的 URL。如果您在生产环境中部署 Hector,请使用实际的 IP 地址或域名来替代 'localhost'。
- 认证 (Authentication)(可选): 如果您的 Hector 服务器配置了 JWT 认证,MCP 客户端需要在其请求头中包含有效的 'Authorization: Bearer <token>' 令牌。请确保客户端能够正确获取和管理这些令牌。
请注意: MCP 客户端连接到的是一个已经运行的 Hector 服务器实例。因此,MCP 客户端的配置中不需要包含 Hector 服务器的启动命令('command')或其命令行参数('args'),这些信息是用于启动服务器本身的,而不是客户端连接时使用的。
基本使用方法
-
启动 Hector 服务器: 在终端中,导航到存放 'agents.yaml' 文件的目录,然后运行:
hector serve --config agents.yaml服务器将启动并监听配置的端口(默认为 HTTP/JSON-RPC 端口 8080)。
-
使用 Hector CLI 访问(客户端模式): 一旦服务器启动,您可以使用 'hector' 命令行工具作为客户端与其交互:
- 向 'analyst' 智能体发送消息:
hector call "分析系统架构并提出改进建议" --agent analyst --server http://localhost:8080 - 进行交互式聊天:
hector chat --agent analyst --server http://localhost:8080 - 列出所有可用的智能体:
hector list --server http://localhost:8080
- 向 'analyst' 智能体发送消息:
-
使用 REST API / JSON-RPC 访问 (例如通过 curl): 您也可以直接通过 HTTP 请求与 Hector 服务器的 JSON-RPC 接口交互。
- 发送 JSON-RPC 请求(发送消息给默认智能体):
curl -X POST http://localhost:8080/ \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","method":"message/send","params":{"request":{"parts":[{"text":"你好"}],"role":"user"}},"id":"1"}' - 发送 JSON-RPC 请求(发送消息给特定智能体 'analyst'):
curl -X POST 'http://localhost:8080/?agent=analyst' \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","method":"message/send","params":{"request":{"parts":[{"text":"分析系统架构"}],"role":"user"}},"id":"1"}' - 发送 JSON-RPC 请求(获取智能体卡片):
curl -X POST 'http://localhost:8080/?agent=analyst' \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","method":"agent/getAuthenticatedExtendedCard","params":{},"id":"1"}'
- 发送 JSON-RPC 请求(发送消息给默认智能体):
信息
分类
AI与计算