hexagon

package module
v0.5.10 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 13, 2026 License: Apache-2.0 Imports: 31 Imported by: 12

README

语言: 中文 | English
Hexagon Logo

Go AI Agent 框架

Go Reference License CI


📖 项目简介

Hexagon 取名自网络热词「六边形战士」,表达对多项框架能力均衡发展的关注。

项目围绕 易用性、并发执行、扩展性、任务编排、可观测性、安全性 六个维度,为 Go 开发者提供构建 AI Agent 的框架组件。

🚀 核心特性

  • 并发执行 │ 基于 Go 和 goroutine 实现并发任务处理
  • 🧩 简洁 API │ 提供便捷入口、声明式选项和明确的组件接口
  • 🛡️ 安全组件 │ 提供 Guard、Guardrail、RBAC 和 Sandbox 等可组合组件
  • 🔧 扩展机制 │ 提供插件接口和中间件扩展点
  • 🛠️ 任务编排 │ 提供 Graph、Chain、Workflow 和 Planner 模块
  • 🔍 可观测性 │ 提供 OpenTelemetry 追踪、指标、事件流和 Dev UI 集成

🌐 生态系统

Hexagon 与以下 AI Agent 开发相关仓库协同使用:

仓库 说明 链接
hexagon AI Agent 框架核心 (编排、RAG、Graph、Hooks) github.com/hexagon-codes/hexagon
ai-core AI 基础能力库 (LLM/Tool/Memory/Schema) github.com/hexagon-codes/ai-core
toolkit Go 通用工具库 (lang/crypto/net/cache/util) github.com/hexagon-codes/toolkit
hexagon-ui Dev UI 前端 (Vue 3 + TypeScript) github.com/hexagon-codes/hexagon-ui

当前根模块构建基线:Go 1.25.12、ai-core v0.2.7、toolkit v0.3.4。examples/ 是独立 Go module,其依赖版本以 examples/go.mod 为准,不随根模块自动同步。

🧠 ai-core — AI 基础能力库

提供 LLM、Tool、Memory、Schema 等核心抽象,支持多种 LLM Provider:

import "github.com/hexagon-codes/ai-core/llm"
import "github.com/hexagon-codes/ai-core/llm/openai"
import "github.com/hexagon-codes/ai-core/tool"
import "github.com/hexagon-codes/ai-core/memory"

主要模块:

  • llm/ - LLM Provider 接口 + 实现 (OpenAI, DeepSeek, Anthropic, Gemini, 通义, 豆包, Ollama)
  • llm/router/ - 智能模型路由 (任务感知 + 模型能力档案)
  • tool/ - 工具系统,支持函数式定义
  • memory/ - 记忆系统,支持向量存储
  • schema/ - JSON Schema 自动生成
  • streamx/ - 流式响应处理
  • template/ - Prompt 模板引擎

🛠️ toolkit — Go 通用工具库

Go 通用工具包,提供语言增强、加密、网络、缓存、协程池等基础能力:

import "github.com/hexagon-codes/toolkit/lang/conv"      // 类型转换
import "github.com/hexagon-codes/toolkit/lang/stringx"   // 字符串工具
import "github.com/hexagon-codes/toolkit/lang/syncx"     // 并发工具
import "github.com/hexagon-codes/toolkit/net/httpx"      // HTTP 客户端
import "github.com/hexagon-codes/toolkit/net/sse"        // SSE 客户端
import "github.com/hexagon-codes/toolkit/util/retry"     // 重试机制
import "github.com/hexagon-codes/toolkit/util/idgen"     // ID 生成
import "github.com/hexagon-codes/toolkit/util/poolx"     // 协程池
import "github.com/hexagon-codes/toolkit/cache/local"    // 本地缓存

主要模块:

  • lang/ - 语言增强 (conv, stringx, slicex, mapx, timex, contextx, errorx, syncx)
  • crypto/ - 加密 (aes, rsa, sign)
  • net/ - 网络 (httpx, sse, ip)
  • cache/ - 缓存 (local, redis, multi)
  • util/ - 工具 (retry, rate, idgen, logger, validator, poolx 协程池)
  • collection/ - 数据结构 (set, list, queue, stack)

🎨 hexagon-ui — Dev UI 前端

基于 Vue 3 + TypeScript 的开发调试界面:

cd hexagon-ui
npm install
npm run dev
# 访问 http://localhost:5173

功能特性:

  • 实时事件流 (SSE 推送)
  • 指标仪表板
  • 事件详情查看
  • LLM 流式输出展示

⚡ 快速开始

📦 安装

go get github.com/hexagon-codes/hexagon

⚙️ 环境配置

# OpenAI
export OPENAI_API_KEY=your-api-key

# 或 DeepSeek
export DEEPSEEK_API_KEY=your-api-key

🎯 基础示例

package main

import (
    "context"
    "fmt"
    "github.com/hexagon-codes/hexagon"
)

func main() {
    response, _ := hexagon.Chat(context.Background(), "What is Go?")
    fmt.Println(response)
}

🔧 带工具的 Agent

package main

import (
    "context"
    "fmt"
    "github.com/hexagon-codes/hexagon"
)

func main() {
    // 定义计算器工具
    type CalcInput struct {
        A  float64 `json:"a" desc:"第一个数字" required:"true"`
        B  float64 `json:"b" desc:"第二个数字" required:"true"`
        Op string  `json:"op" desc:"运算符" required:"true" enum:"add,sub,mul,div"`
    }

    calculator := hexagon.NewTool("calculator", "执行数学计算",
        func(ctx context.Context, input CalcInput) (float64, error) {
            switch input.Op {
            case "add": return input.A + input.B, nil
            case "sub": return input.A - input.B, nil
            case "mul": return input.A * input.B, nil
            case "div": return input.A / input.B, nil
            }
            return 0, fmt.Errorf("unknown operator")
        },
    )

    // 创建带工具的 Agent
    agent := hexagon.QuickStart(
        hexagon.WithTools(calculator),
        hexagon.WithSystemPrompt("你是一个数学助手"),
    )

    output, _ := agent.Run(context.Background(), hexagon.Input{
        Query: "计算 123 * 456",
    })
    fmt.Println(output.Content)
}

🔍 RAG 检索增强

// 创建 RAG 引擎
engine := hexagon.NewRAGEngine(
    hexagon.WithRAGStore(hexagon.NewMemoryVectorStore()),
    hexagon.WithRAGEmbedder(hexagon.NewOpenAIEmbedder()),
)

// 索引文档
engine.Index(ctx, []hexagon.Document{
    {ID: "1", Content: "Go 支持并发编程"},
    {ID: "2", Content: "Go 有丰富的标准库"},
})

// 检索
docs, _ := engine.Retrieve(ctx, "Go 的特性", hexagon.WithTopK(2))

📊 图编排

import "github.com/hexagon-codes/hexagon/orchestration/graph"

// 构建工作流图
g, _ := graph.NewGraph[MyState]("workflow").
    AddNode("analyze", analyzeHandler).
    AddNode("process", processHandler).
    AddEdge(graph.START, "analyze").
    AddEdge("analyze", "process").
    AddEdge("process", graph.END).
    Build()

// 执行
result, _ := g.Run(ctx, initialState)

👥 多 Agent 团队

// 创建团队
team := hexagon.NewTeam("research-team",
    hexagon.WithAgents(researcher, writer, reviewer),
    hexagon.WithMode(hexagon.TeamModeSequential),
)

// 执行
output, _ := team.Run(ctx, hexagon.Input{Query: "写一篇技术文章"})

🚀 高级能力

🔀 智能模型路由 (Smart Router)

根据任务类型、复杂度自动选择最优模型:

import "github.com/hexagon-codes/ai-core/llm/router"

// 创建智能路由器
smartRouter := router.NewSmartRouter(baseRouter,
    router.WithAutoClassify(true),
)

// 带路由上下文的请求
routingCtx := router.NewRoutingContext(router.TaskTypeCoding, router.ComplexityMedium).
    WithPriority(router.PriorityQuality).
    RequireFunctions()

resp, decision, _ := smartRouter.CompleteWithRouting(ctx, req, routingCtx)
// decision 包含: 选择的模型、得分、原因、备选方案

特性:

  • 任务感知路由 (coding/reasoning/creative/analysis 等)
  • 质量/成本/延迟优先级策略
  • 20+ 预定义模型能力档案
  • 路由历史和统计分析

♻️ 持久化运行时 (Durable Runtime)

统一的 Agent 执行运行时,支持 per-tool exactly-once 快照与中断恢复(Resume):

import (
    "github.com/hexagon-codes/hexagon/runtime"
    "github.com/hexagon-codes/hexagon/checkpoint"
)

// 基于 Checkpointer 的持久化执行:崩溃/中断后 Resume 不重复执行已完成的工具
durable := runtime.NewDurableExecution(checkpoint.NewMemory())

特性:

  • per-tool exactly-once:已完成工具调用入快照,Resume 不重放
  • 统一 Runner + 执行策略(ReAct / PlanExecute / Reflection 共用同一运行时)
  • 三维 Budget(token/调用/时长)+ CostControl 统一抽象
  • 五级 PermissionMode 与 Context Compaction 中间件 (runtime/middleware)
  • 长任务进度事件 + SSE 事件 sink

🧬 Agent 即工具 (AgentTool)

将一个 Agent 直接包装为工具,作为另一 Agent 的子能力组合:

import "github.com/hexagon-codes/hexagon/agent"

// 把 researcher Agent 暴露为可被 supervisor 调用的工具
researcherTool := agent.NewAgentTool(researcher,
    agent.WithAgentToolName("research"),
    agent.WithAgentToolDescription("调研指定主题并返回要点"),
)

supervisor := hexagon.QuickStart(
    hexagon.WithTools(researcherTool),
    hexagon.WithSystemPrompt("你是一个调度者,按需调用子 Agent"),
)

🧾 原生结构化输出 (Structured Output)

借助 Provider 原生 json_schema 强制解码为强类型 Go 结构体:

import "github.com/hexagon-codes/hexagon/llm/structured"

type Invoice struct {
    Number string  `json:"number"`
    Amount float64 `json:"amount"`
}

inv, _ := structured.Generate[Invoice](ctx, provider, "解析这张发票:...",
    structured.WithNativeJSONSchema("invoice"),
    structured.WithStrictMode(true),
)

📄 智能文档工作流 (ADW)

超越传统 RAG 的端到端文档自动化:

import "github.com/hexagon-codes/hexagon/rag/adw"
import "github.com/hexagon-codes/hexagon/rag/adw/extractor"
import "github.com/hexagon-codes/hexagon/rag/adw/validator"

// 定义提取 Schema
schema := adw.NewExtractionSchema("invoice").
    AddStringField("invoice_number", "发票号码", true).
    AddDateField("date", "日期", "YYYY-MM-DD", true).
    AddMoneyField("amount", "金额", true).
    AddStringField("vendor", "供应商", false)

// 创建处理管道
pipeline := adw.NewPipeline("invoice-processing").
    AddStep(adw.NewDocumentTypeDetectorStep()).
    AddStep(extractor.NewLLMExtractionStep(llmProvider, schema)).
    AddStep(extractor.NewEntityExtractionStep(llmProvider)).
    AddStep(validator.NewSchemaValidationStep(schema)).
    AddStep(adw.NewConfidenceCalculatorStep()).
    Build()

// 处理文档
output, _ := pipeline.Process(ctx, adw.PipelineInput{
    Documents: documents,
    Schema:    schema,
})

// 访问结果
for _, doc := range output.Documents {
    fmt.Println("发票号:", doc.StructuredData["invoice_number"])
    fmt.Println("实体:", doc.Entities)
    fmt.Println("验证:", doc.IsValid())
}

特性:

  • Document 扩展:结构化数据/表格/实体/关系/验证错误
  • Schema 驱动的结构化提取
  • LLM 提取器:实体/关系提取
  • 验证规则:类型/格式/范围/枚举/正则
  • 并发处理 + 钩子系统

🌐 A2A 协议 (Agent-to-Agent)

实现 Google A2A 协议,支持标准化的 Agent 间通信:

import "github.com/hexagon-codes/hexagon/agent/a2a"

// 将 Hexagon Agent 暴露为 A2A 服务
server := a2a.ExposeAgent(myAgent, "http://localhost:8080")
server.Start(":8080")

// 连接远程 A2A Agent
client := a2a.NewClient("http://remote-agent.example.com")
card, _ := client.GetAgentCard(ctx)

// 发送消息
task, _ := client.SendMessage(ctx, &a2a.SendMessageRequest{
    Message: a2a.NewUserMessage("你好"),
})

// 流式交互
events, _ := client.SendMessageStream(ctx, req)
for event := range events {
    switch e := event.(type) {
    case *a2a.ArtifactEvent:
        fmt.Print(e.Artifact.GetTextContent())
    }
}

特性:

  • A2A 数据模型 (AgentCard/Task/Message/Artifact)
  • JSON-RPC 2.0 + SSE 流式响应
  • 多种认证方式 (Bearer Token/API Key/Basic Auth/RBAC)
  • Agent 发现服务 (Registry/Static/Remote)
  • 推送通知支持
  • Hexagon Agent 桥接适配

💡 设计理念

  1. 渐进式复杂度 - 提供便捷入口、声明式配置和图编排 API
  2. 约定优于配置 - 提供默认值,同时保留显式配置选项
  3. 组合优于继承 - 小而专注的组件,灵活组合
  4. 显式优于隐式 - 类型安全,编译时检查
  5. 运行支持 - 提供可观测性和降级相关组件

🏗️ 架构

📐 整体架构

Hexagon 整体架构

🔗 生态系统依赖

Hexagon 生态系统依赖

📈 数据流

Hexagon 数据流

🤖 LLM 支持

Provider 状态
OpenAI (GPT-4, GPT-4o, o1, o3) ✅ 已支持
DeepSeek ✅ 已支持
Anthropic (Claude) ✅ 已支持
Google Gemini ✅ 已支持
通义千问 (Qwen) ✅ 已支持
豆包 (Ark) ✅ 已支持
Ollama (本地模型) ✅ 已支持

📁 项目结构

hexagon/
├── agent/              # Agent 核心 (ReAct/Role/Team/Handoff/State/Primitives/AgentTool/Supervisor)
│   ├── a2a/            # A2A 协议 (Client/Server/Handler/Discovery)
│   ├── artifact/       # 工件系统
│   ├── semantic/       # 语义能力
│   └── skill/          # 技能注册与签名
├── core/               # 统一接口 (Component/Runnable, Stream[T], Compose/Fallback)
├── runtime/            # 统一执行运行时 (Runner/DurableExecution/策略/中间件)
│   ├── middleware/     # Budget/CostControl/Compaction/PermissionMode
│   └── strategy/       # 执行策略 (ReAct/PlanExecute/Reflection)
├── orchestration/      # 编排引擎
│   ├── graph/          # 图编排 (状态图/检查点/Barrier/分布式/可视化)
│   ├── chain/          # 链式编排 (Compile 期 I/O 类型校验)
│   ├── workflow/       # 工作流引擎
│   └── planner/        # 规划器
├── checkpoint/         # 统一 Checkpointer 持久化
├── interrupt/          # 中断恢复
├── rag/                # RAG 系统
│   ├── loader/         # 文档加载 + Parser 层 (Text/MD/CSV/XLSX/PPTX/DOCX/PDF/OCR)
│   ├── splitter/       # 文档分割 (Character/Recursive/Markdown/Sentence/Token/Code)
│   ├── retriever/      # 检索器 (Vector/Keyword/Hybrid/HyDE/Adaptive/ParentDoc)
│   ├── reranker/       # 重排序
│   ├── synthesizer/    # 响应合成
│   ├── adw/            # 智能文档工作流 (extractor/validator)
│   ├── agentic/        # Agentic RAG
│   ├── corrective/     # 纠错式 RAG
│   ├── selfrag/        # Self-RAG
│   └── multimodal/     # 多模态
├── llm/                # LLM 编排层
│   ├── structured/     # 原生 json_schema 结构化输出
│   ├── batch/          # 批量调用
│   ├── conversation/   # 会话管理
│   ├── parser/         # 输出解析
│   └── template/       # Prompt 模板
├── memory/store/       # 多 Agent 记忆存储 (InMemory/File/Redis/Persistent)
├── mcp/                # MCP 协议 (动态发现/自动重连/多传输)
├── hooks/              # 钩子系统 (Run/Tool/LLM/Retriever)
├── observe/            # 可观测性 (Tracer/Metrics/OTel/Langfuse/DevUI/Replay)
├── security/           # 安全防护 (Guard/Guardrails/RBAC/Cost/Audit/Filter/PII/Tenant/Credential)
├── tool/               # 工具系统 (File/Python/Shell/Sandbox/HTTP/Search/DB/Browser...)
├── store/              # 存储
│   └── vector/         # 向量存储 (FAISS/PgVector/Redis/Milvus/Chroma/Pinecone/Weaviate)
├── client/             # 客户端
├── plugin/             # 插件系统
├── config/             # 配置管理
├── evaluate/           # 评估系统 (agenteval/rag/metrics)
├── testing/            # 测试工具 (Mock/Record/E2E/Integration)
├── .github/workflows/  # CI 与发布 (依赖一致性/race/GitHub Release)
├── deploy/             # 部署配置 (Docker Compose/Helm Chart)
├── examples/           # 示例代码 (独立 module)
├── hexagon.go          # 顶层 API(核心入口符号)
└── deprecated.go       # 过渡性重导出(下一大版本移除)

⚠️ 近期重要变更

架构重构(v0.5.0)

v0.5.0 进行了一次结构性收敛,并升级到 ai-core v0.1.4 / toolkit v0.1.0(Go 1.25):

  • 顶层 feature 包归组a2a → agent/a2aartifact → agent/artifactsemantic → agent/semanticskill → agent/skilladw → rag/adw
  • 编排正统化:以 orchestration/graph 为编排正统轴,裁剪冗余的 compose / process / flow 包。
  • 持久化收敛:统一为单一 Checkpointercheckpoint/)。
  • 下沉去重:stream 下沉 ai-core/streamx、媒体下沉 ai-core/media、安全/沙箱/blobstore 下沉 toolkit;Schema 统一走 ai-core/schemacore.Schema 为类型别名)。
  • 新增能力:统一 runtime(DurableExecution per-tool exactly-once + Resume、Budget/CostControl、五级 PermissionMode、Context Compaction)、agent.AgentTool、MCP 自动重连、observe/otel 的 Langfuse 导出、orchestration/chain 的 Compile 期类型校验、rag/loader Parser 层、llm/structured 原生 json_schema。
  • examples 独立 modulego get github.com/hexagon-codes/hexagon 不再拉入示例依赖图。

迁移期保留 deprecated.go 作为顶层重导出 shim,将在下一大版本移除。

顶层 API 瘦身(v0.3.2-beta)

hexagon.go 的导出符号从 98 个精简至 18 个核心符号,仅保留最常用的入口:

  • Chat(), ChatWithTools(), Run() — 便捷函数
  • QuickStart() 及选项函数 (WithProvider, WithTools, WithSystemPrompt, WithMemory)
  • NewTool() — 工具创建
  • SetDefaultProvider() — 设置默认 LLM Provider
  • 核心类型重导出 (Input, Output, Tool, Memory, Message, Agent, Provider)
  • Version 常量

其余所有导出均已移至 deprecated.go,附带弃用注释,将在下一个大版本中移除

迁移方式: 直接 import 对应子包,而非通过顶层包访问。例如:

// 旧方式(已弃用)
team := hexagon.NewTeam("my-team", hexagon.WithAgents(a1, a2))
engine := hexagon.NewRAGEngine(hexagon.WithRAGStore(store))

// 新方式(推荐)
import "github.com/hexagon-codes/hexagon/agent"
import "github.com/hexagon-codes/hexagon/rag"

team := agent.NewTeam("my-team", agent.WithAgents(a1, a2))
engine := rag.NewEngine(rag.WithStore(store))

Bug 修复与改进

  • RunWithStats 并发安全 — 使用本地节点副本,消除多 goroutine 间的数据竞争
  • ParallelForEachLoopNode 不再死锁 — 修复 context 取消时的死锁问题
  • RecursiveSplitter 防无限循环 — 当 overlap >= chunkSize 时自动保护
  • SetDefaultProvider 时序修复 — 即使在 Chat()/QuickStart() 之前调用也会被正确使用

📚 文档

📄 核心文档

文档 说明
快速入门 5 分钟上手 Hexagon
架构设计 框架设计理念和架构
API 参考 API 文档
稳定性说明 API 稳定性和版本策略
框架对比 与主流框架的对比分析

📖 使用指南

指南 说明
快速开始 从零开始构建第一个 Agent
Agent 开发 Agent 开发指南
Agent 进阶 高级 Agent 开发模式
RAG 系统 检索增强生成入门
RAG 集成 RAG 系统深度集成
图编排 复杂工作流编排
多 Agent 多 Agent 协作系统
插件开发 插件系统使用指南
可观测性 追踪、指标、日志集成
安全防护 安全最佳实践
性能优化 性能调优指南

💻 示例代码

示例 说明
examples/quickstart 快速入门示例
examples/react ReAct Agent 示例
examples/rag RAG 检索示例
examples/graph 图编排示例
examples/team 多 Agent 团队示例
examples/handoff Agent 交接示例
examples/chatbot 聊天机器人示例
examples/code-review 代码审查示例
examples/data-analysis 数据分析示例
examples/qdrant Qdrant 向量存储示例
examples/devui Dev UI 示例

🖥️ Dev UI

内置开发调试界面,实时查看 Agent 执行过程。

以下示例仅监听本机回环地址,并显式处理 StartStop 返回的错误:

import (
    "context"
    "log"
    "time"

    "github.com/hexagon-codes/hexagon/observe/devui"
)

// 创建 DevUI
ui := devui.New(
    devui.WithAddr("127.0.0.1:8080"),
    devui.WithMaxEvents(1000),
)

// 启动服务
go func() {
    if err := ui.Start(); err != nil {
        log.Printf("DevUI stopped with error: %v", err)
    }
}()

// 在所属服务退出时停止 DevUI
defer func() {
    ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
    defer cancel()
    if err := ui.Stop(ctx); err != nil {
        log.Printf("Failed to stop DevUI: %v", err)
    }
}()

// 访问 http://127.0.0.1:8080

运行示例:

# 按 examples 独立模块的依赖启动后端
(cd examples && GOWORK=off go run ./devui)

# 在另一个终端启动外部 hexagon-ui 仓库
cd ../hexagon-ui
npm install
npm run dev
# 访问 http://localhost:5173

🚢 部署

Hexagon 是 Go 库,不包含可直接运行的应用入口或官方应用镜像。deploy/ 提供开发基础设施和自定义应用镜像的 Kubernetes 接入模板,不是一键部署成品应用。

Docker Compose 开发基础设施

Compose 仅启动 Qdrant、Redis 和 PostgreSQL,不会启动 Hexagon 应用或 Dev UI:

cd deploy
cp .env.example .env
docker compose up -d

Helm 自定义镜像接入模板

Helm Chart 用于接入你自行构建的应用镜像。先设置镜像并检查渲染结果,再根据应用实际命令、探针和配置调整模板:

cd deploy
helm template hexagon helm/hexagon/ \
  --set app.image.repository=registry.example.com/your-app \
  --set app.image.tag=your-tag \
  --set devui.enabled=false

详见 部署指南

🔨 开发

make build   # 构建
make test    # 测试
make lint    # 代码检查
make fmt     # 格式化

CI 与发布

  • 推送到 main 和提交 Pull Request 时,CI 使用根模块的 Go 版本执行 go mod tidy -diffgo test -count=1 -race ./...
  • 推送 v* tag 时,发布流程先重复上述验证,再以隔离的写权限任务创建 GitHub Release。
  • examples/ 是独立 module,不在根模块 ./... 的测试范围内;修改示例时应以 examples/go.mod 为基线单独验证。

🤝 贡献

欢迎贡献!请阅读 CONTRIBUTING.md 了解如何参与。

📜 许可证

Apache License 2.0

Copyright 2026 hexagon-codes

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

Documentation

Overview

Deprecated: 以下为过渡性重导出,请直接 import 对应子包。 本文件将在下一个大版本中移除。

Package hexagon 提供 Hexagon AI Agent 框架的顶层 API

Hexagon 是一个新一代 Go AI Agent 框架,设计目标是:

  • 简洁入口:可用少量代码开始构建 Agent
  • 类型安全:使用 Go 泛型和接口在编译期约束主要调用边界
  • 并发执行:使用 Go 并发原语支持并行 Agent 与任务编排
  • 可观测:提供 Hook、追踪、指标和日志组件
  • 工程化:提供超时、重试、降级和运行时中间件

快速开始

最简单的使用方式(3 行代码):

response, _ := hexagon.Chat(ctx, "What is Go?")
fmt.Println(response)

带工具的 Agent:

agent := hexagon.QuickStart(
    hexagon.WithTools(calculatorTool),
    hexagon.WithSystemPrompt("You are a math assistant."),
)
output, _ := agent.Run(ctx, hexagon.Input{Query: "What is 123 * 456?"})

Index

Constants

View Source
const (
	// START 起始节点
	START = graph.START
	// END 结束节点
	END = graph.END
)

图编排常量

View Source
const (
	TeamModeSequential    = agent.TeamModeSequential
	TeamModeHierarchical  = agent.TeamModeHierarchical
	TeamModeCollaborative = agent.TeamModeCollaborative
	TeamModeRoundRobin    = agent.TeamModeRoundRobin
)

团队模式常量

View Source
const (
	ChainModeAll   = guard.ChainModeAll
	ChainModeAny   = guard.ChainModeAny
	ChainModeFirst = guard.ChainModeFirst
)

守卫链模式

View Source
const (
	RoleSystem    = llm.RoleSystem
	RoleUser      = llm.RoleUser
	RoleAssistant = llm.RoleAssistant
	RoleTool      = llm.RoleTool
)

LLM 角色常量

View Source
const (
	QdrantDistanceCosine = qdrant.DistanceCosine
	QdrantDistanceEuclid = qdrant.DistanceEuclid
	QdrantDistanceDot    = qdrant.DistanceDot
)

Qdrant 距离度量方式

View Source
const (
	EventAgentStart  = eventstream.EventAgentStart
	EventAgentEnd    = eventstream.EventAgentEnd
	EventAgentError  = eventstream.EventAgentError
	EventToolCall    = eventstream.EventToolCall
	EventToolResult  = eventstream.EventToolResult
	EventLLMRequest  = eventstream.EventLLMRequest
	EventLLMResponse = eventstream.EventLLMResponse

	EventStreamStateChange = eventstream.EventStateChange
	EventStreamCheckpoint  = eventstream.EventCheckpoint
)

预定义事件类型常量

View Source
const (
	AlertSeverityInfo     = metrics.SeverityInfo
	AlertSeverityWarning  = metrics.SeverityWarning
	AlertSeverityCritical = metrics.SeverityCritical
)

告警严重度常量

Variables

View Source
var (
	// OpenAIWithBaseURL 设置自定义 API 端点(支持中转/私有部署)
	OpenAIWithBaseURL = openai.WithBaseURL

	// OpenAIWithModel 设置默认模型
	OpenAIWithModel = openai.WithModel

	// OpenAIWithHTTPClient 设置自定义 HTTP 客户端
	OpenAIWithHTTPClient = openai.WithHTTPClient

	// OpenAIEmbeddingDimension 获取 OpenAI Embedding 模型的默认维度
	OpenAIEmbeddingDimension = openai.EmbeddingDimension
)

OpenAI Provider 配置选项

View Source
var (
	WithAgents          = agent.WithAgents
	WithMode            = agent.WithMode
	WithManager         = agent.WithManager
	WithMaxRounds       = agent.WithMaxRounds
	WithTeamDescription = agent.WithTeamDescription
)

团队选项

View Source
var (
	WithBudget              = cost.WithBudget
	WithMaxTokensPerRequest = cost.WithMaxTokensPerRequest
	WithMaxTokensTotal      = cost.WithMaxTokensTotal
	WithRequestsPerMinute   = cost.WithRequestsPerMinute
)

成本控制选项

View Source
var (
	// AgentWithLLM 设置 Agent 的 LLM Provider
	AgentWithLLM = agent.WithLLM

	// AgentWithTools 设置 Agent 的工具列表
	AgentWithTools = agent.WithTools

	// AgentWithSystemPrompt 设置 Agent 的系统提示词
	AgentWithSystemPrompt = agent.WithSystemPrompt

	// AgentWithMaxIterations 设置 Agent 的最大迭代次数
	AgentWithMaxIterations = agent.WithMaxIterations

	// AgentWithMemory 设置 Agent 的记忆系统
	AgentWithMemory = agent.WithMemory

	// AgentWithName 设置 Agent 名称
	AgentWithName = agent.WithName

	// AgentWithVerbose 设置 Agent 详细输出模式
	AgentWithVerbose = agent.WithVerbose

	// AgentWithRole 设置 Agent 角色
	AgentWithRole = agent.WithRole

	// AgentWithID 设置 Agent ID
	AgentWithID = agent.WithID

	// AgentWithDescription 设置 Agent 描述
	AgentWithDescription = agent.WithDescription
)

Agent Option 便捷导出

View Source
var (
	WithRAGStore    = rag.WithStore
	WithRAGEmbedder = rag.WithEngineEmbedder
	WithRAGLoader   = rag.WithLoader
	WithRAGSplitter = rag.WithEngineSplitter
	WithRAGTopK     = rag.WithEngineTopK
	WithRAGMinScore = rag.WithEngineMinScore
)

RAG 引擎选项

View Source
var (
	// WithFilter 设置元数据过滤条件
	WithFilter = rag.WithFilter

	// WithTopK 设置返回文档数量
	WithTopK = rag.WithTopK

	// WithMinScore 设置最小相关性分数
	WithMinScore = rag.WithMinScore
)

RAG 检索选项

View Source
var (
	// NewTextLoader 创建文本文件加载器
	NewTextLoader = loader.NewTextLoader

	// NewMarkdownLoader 创建 Markdown 文件加载器
	NewMarkdownLoader = loader.NewMarkdownLoader

	// NewDirectoryLoader 创建目录批量加载器
	NewDirectoryLoader = loader.NewDirectoryLoader

	// NewURLLoader 创建 URL 加载器
	NewURLLoader = loader.NewURLLoader

	// NewStringLoader 创建字符串加载器
	NewStringLoader = loader.NewStringLoader
)

文档加载器

View Source
var (
	// NewCharacterSplitter 创建字符分割器
	NewCharacterSplitter = splitter.NewCharacterSplitter

	// NewRecursiveSplitter 创建递归分割器
	NewRecursiveSplitter = splitter.NewRecursiveSplitter

	// NewMarkdownSplitter 创建 Markdown 分割器
	NewMarkdownSplitter = splitter.NewMarkdownSplitter

	// NewSentenceSplitter 创建句子分割器
	NewSentenceSplitter = splitter.NewSentenceSplitter
)

文档分割器

View Source
var (
	// NewVectorRetriever 创建向量检索器
	NewVectorRetriever = retriever.NewVectorRetriever

	// NewKeywordRetriever 创建关键词检索器
	NewKeywordRetriever = retriever.NewKeywordRetriever

	// NewHybridRetriever 创建混合检索器
	NewHybridRetriever = retriever.NewHybridRetriever

	// NewMultiRetriever 创建多源检索器
	NewMultiRetriever = retriever.NewMultiRetriever
)

文档检索器

View Source
var (
	// NewVectorIndexer 创建向量索引器
	NewVectorIndexer = indexer.NewVectorIndexer

	// NewConcurrentIndexer 创建并发索引器
	NewConcurrentIndexer = indexer.NewConcurrentIndexer

	// NewIncrementalIndexer 创建增量索引器
	NewIncrementalIndexer = indexer.NewIncrementalIndexer
)

文档索引器

View Source
var (
	// NewOpenAIEmbedder 创建 OpenAI Embedder
	NewOpenAIEmbedder = embedder.NewOpenAIEmbedder

	// NewCachedEmbedder 创建带缓存的 Embedder
	NewCachedEmbedder = embedder.NewCachedEmbedder

	// NewMockEmbedder 创建模拟 Embedder(用于测试)
	NewMockEmbedder = embedder.NewMockEmbedder

	// Embedder 选项
	WithEmbedderModel     = embedder.WithModel
	WithEmbedderDimension = embedder.WithDimension
)

向量生成器

View Source
var (
	WithRecursiveChunkSize    = splitter.WithRecursiveChunkSize
	WithRecursiveChunkOverlap = splitter.WithRecursiveChunkOverlap
)

分割器选项

View Source
var (
	// NewMemoryVectorStore 创建内存向量存储
	NewMemoryVectorStore = vector.NewMemoryStore

	// NewQdrantStore 创建 Qdrant 向量存储
	//
	// 示例:
	//
	//	store, err := hexagon.NewQdrantStore(hexagon.QdrantConfig{
	//	    Host:             "localhost",
	//	    Port:             6333,
	//	    Collection:       "documents",
	//	    Dimension:        1536,
	//	    CreateCollection: true,
	//	})
	NewQdrantStore = qdrant.New
)

向量存储

View Source
var (
	QdrantWithHost             = qdrant.WithHost
	QdrantWithPort             = qdrant.WithPort
	QdrantWithCollection       = qdrant.WithCollection
	QdrantWithDimension        = qdrant.WithDimension
	QdrantWithAPIKey           = qdrant.WithAPIKey
	QdrantWithHTTPS            = qdrant.WithHTTPS
	QdrantWithTimeout          = qdrant.WithTimeout
	QdrantWithDistance         = qdrant.WithDistance
	QdrantWithOnDisk           = qdrant.WithOnDisk
	QdrantWithCreateCollection = qdrant.WithCreateCollection
)

Qdrant 配置选项

View Source
var (
	ConvWithMaxTokens    = conversation.WithMaxTokens
	ConvWithMaxTurns     = conversation.WithMaxTurns
	ConvWithSystemPrompt = conversation.WithSystemPrompt
)

对话管理器选项

View Source
var (
	ConvAgentMaxTurns  = agent.WithConvMaxTurns
	ConvAgentMaxTokens = agent.WithConvMaxTokens
)

对话 Agent 选项

View Source
var ConnectMCPSSE = mcp.ConnectSSEServerV2

ConnectMCPSSE 通过 SSE 连接 MCP Server

示例:

tools, closer, err := hexagon.ConnectMCPSSE(ctx, "http://localhost:8080/sse")
defer closer.Close()
View Source
var ConnectMCPServer = mcp.ConnectMCPServerV2

ConnectMCPServer 使用官方 SDK 连接 MCP Server 并获取工具列表

返回的 []tool.Tool 可直接用于 Hexagon Agent。 调用方需要在使用完毕后调用 closer.Close() 释放连接。

示例:

tools, closer, err := hexagon.ConnectMCPServer(ctx, transport)
defer closer.Close()
agent := hexagon.QuickStart(hexagon.WithTools(tools...))
View Source
var ConnectMCPStdio = mcp.ConnectStdioServerV2

ConnectMCPStdio 通过 Stdio 连接 MCP Server

启动子进程并通过 stdin/stdout 通信。

示例:

tools, cleanup, err := hexagon.ConnectMCPStdio(ctx, "npx", "-y", "@modelcontextprotocol/server-filesystem", "/tmp")
defer cleanup()
View Source
var ConnectMCPStdioWithEnv = mcp.ConnectStdioServerV2WithEnv

ConnectMCPStdioWithEnv 通过 Stdio 连接 MCP Server,并向子进程注入额外环境变量。 数据连接器走 MCP 的地基:MySQL/Redis 等通过 env 配置连接信息(MYSQL_HOST/PASSWORD 等)。

View Source
var ConnectMCPStreamable = mcp.ConnectStreamableServerV2

ConnectMCPStreamable 通过 Streamable HTTP 连接 MCP Server (2025-03-26 标准)

示例:

tools, closer, err := hexagon.ConnectMCPStreamable(ctx, "http://localhost:8080/mcp")
defer closer.Close()
View Source
var ContextWithTracer = tracer.ContextWithTracer

ContextWithTracer 将追踪器添加到 context

View Source
var ErrNoProvider = errors.New("no LLM provider configured: set OPENAI_API_KEY environment variable or use WithProvider() option")

ErrNoProvider 表示没有配置 LLM Provider

View Source
var EventStreamBufferSize = eventstream.WithBufferSize

事件流选项

View Source
var NewAlertManager = metrics.NewAlertManager

NewAlertManager 创建指标告警管理器

View Source
var NewBufferMemory = memory.NewBuffer

NewBufferMemory 创建缓冲记忆

View Source
var NewConversationAgent = agent.NewConversation

NewConversationAgent 创建多轮对话 Agent

示例:

conv := hexagon.NewConversationAgent(myAgent,
    hexagon.ConvAgentMaxTurns(20),
)
output, _ := conv.Chat(ctx, "你好")
View Source
var NewConversationManager = conversation.New

NewConversationManager 创建多轮对话管理器

示例:

mgr := hexagon.NewConversationManager(
    hexagon.ConvWithMaxTokens(4096),
    hexagon.ConvWithSystemPrompt("你是助手"),
)
View Source
var NewCostController = cost.NewController

NewCostController 创建成本控制器

示例:

controller, err := hexagon.NewCostController(
    hexagon.WithBudget(10.0),  // $10 预算
    hexagon.WithMaxTokensTotal(100000),
)
if err != nil {
    return err
}
View Source
var NewEventStream = eventstream.New

NewEventStream 创建 Agent 事件流

示例:

stream := hexagon.NewEventStream()
ch, unsub := stream.Subscribe()
defer unsub()
View Source
var NewFileStore = memstore.NewFileStore

NewFileStore 创建文件持久化记忆存储

基于文件系统的持久化存储,支持原子写入和 TTL 过期。

示例:

store, err := hexagon.NewFileStore("/data/memory")
View Source
var NewGlobalState = agent.NewGlobalState

NewGlobalState 创建全局状态

View Source
var NewGuardChain = guard.NewGuardChain

NewGuardChain 创建守卫链

View Source
var NewHMACSigner = skill.NewHMACSigner

Skill 签名验证

View Source
var NewInMemoryStore = memstore.NewInMemoryStore

NewInMemoryStore 创建内存记忆存储

纯内存实现,适合开发和测试。支持命名空间隔离、TTL、关键词搜索。

示例:

store := hexagon.NewInMemoryStore()
store.Put(ctx, []string{"users", "u1"}, "prefs", map[string]any{"theme": "dark"})
View Source
var NewMCPServer = mcp.NewMCPServerV2

NewMCPServer 创建基于官方 SDK 的 MCP 服务器

将 Hexagon/ai-core 工具暴露为标准 MCP 服务。

示例:

server := hexagon.NewMCPServer("my-tools", "1.0.0")
server.RegisterTool(myCalculator)
server.ServeStdio(ctx)

NewMetrics 创建内存指标收集器

示例:

m := hexagon.NewMetrics()
m.Counter("agent_calls", "agent", "react").Inc()
View Source
var NewNoopTracer = tracer.NewNoopTracer

NewNoopTracer 创建空追踪器(禁用追踪)

View Source
var NewOpenAI = openai.New

NewOpenAI 创建 OpenAI Provider

View Source
var NewPIIGuard = guard.NewPIIGuard

NewPIIGuard 创建 PII 检测守卫

View Source
var NewPersistentMemory = memstore.NewPersistentMemory

NewPersistentMemory 创建持久记忆适配器

将 MemoryStore 适配为 ai-core memory.Memory 接口, 使现有 Agent 无缝使用持久化存储。

示例:

store := hexagon.NewInMemoryStore()
mem := hexagon.NewPersistentMemory(store, []string{"users", "u123"})
agent := hexagon.QuickStart(hexagon.WithMemory(mem))
View Source
var NewPluginBasePlugin = plugin.NewBasePlugin

NewPluginBasePlugin 创建基础插件实例

View Source
var NewPluginRegistry = plugin.NewRegistry

NewPluginRegistry 创建插件注册中心

View Source
var NewPromptInjectionGuard = guard.NewPromptInjectionGuard

NewPromptInjectionGuard 创建 Prompt 注入检测守卫

示例:

guard := hexagon.NewPromptInjectionGuard()
result, _ := guard.Check(ctx, userInput)
if !result.Passed {
    // 处理潜在的注入攻击
}
View Source
var NewQdrantStoreWithOptions = qdrant.NewWithOptions

Qdrant 选项式创建

View Source
var NewRAGEngine = rag.NewEngine

NewRAGEngine 创建 RAG 引擎

示例:

engine := hexagon.NewRAGEngine(
    hexagon.WithRAGStore(vectorStore),
    hexagon.WithRAGEmbedder(embedder),
)
docs, _ := engine.Retrieve(ctx, "What is Go?")
View Source
var NewRAGPipeline = rag.NewPipeline

NewRAGPipeline 创建 RAG 管道

View Source
var NewReActAgent = agent.NewReAct

NewReActAgent 创建 ReAct Agent

View Source
var NewRedisStore = memstore.NewRedisStore

NewRedisStore 创建 Redis 持久化记忆存储

基于 Redis 的高性能持久化存储,支持命名空间隔离和 Pipeline 操作。

View Source
var NewRole = agent.NewRole

NewRole 创建角色构建器

示例:

role := hexagon.NewRole("researcher").
    Title("高级研究员").
    Goal("深入研究和分析问题").
    Build()
View Source
var NewSkillRegistry = skill.NewRegistry

NewSkillRegistry 创建技能注册中心

View Source
var NewStateManager = agent.NewStateManager

NewStateManager 创建状态管理器

示例:

sm := hexagon.NewStateManager("session-123", nil)
sm.Turn().Set("key", "value")
sm.Session().Set("user_id", 123)
View Source
var NewTeam = agent.NewTeam

NewTeam 创建 Agent 团队

示例:

team := hexagon.NewTeam("research-team",
    hexagon.WithAgents(researcher, writer),
    hexagon.WithMode(hexagon.TeamModeSequential),
)

NewTracer 创建内存追踪器

示例:

tracer := hexagon.NewTracer()
ctx := hexagon.ContextWithTracer(ctx, tracer)
View Source
var StartSpan = tracer.StartSpan

StartSpan 开始新的追踪 Span

View Source
var TransferTo = agent.TransferTo

TransferTo 创建 Agent 交接工具

示例:

tools := []hexagon.Tool{
    hexagon.TransferTo(salesAgent),
    hexagon.TransferTo(supportAgent),
}
View Source
var Version = resolveVersion()

Version is the current version of the Hexagon framework. It is resolved from (优先级) 编译期注入 > Go module build info > devFallbackVersion 兜底。

View Source
var (
	WithVectorMinScore = vector.WithMinScore
)

向量搜索选项

Functions

func Chat

func Chat(ctx context.Context, query string, opts ...QuickStartOption) (string, error)

Chat 执行简单对话(最简 API)

示例:

response, err := hexagon.Chat(ctx, "What is Go?")
fmt.Println(response)

func ChatWithTools

func ChatWithTools(ctx context.Context, query string, tools ...tool.Tool) (string, error)

ChatWithTools 带工具的对话

示例:

result, err := hexagon.ChatWithTools(ctx, "What is 123 * 456?", calculatorTool)

func NewChain

func NewChain[I, O any](name string) *chain.ChainBuilder[I, O]

NewChain 创建链式编排构建器

示例:

c, _ := hexagon.NewChain[Input, Output]("my-chain").
    Pipe(step1).
    Pipe(step2).
    Build()

func NewGraph

func NewGraph[S graph.State](name string) *graph.GraphBuilder[S]

NewGraph 创建图编排构建器

示例:

g, _ := hexagon.NewGraph[MyState]("my-graph").
    AddNode("step1", handler1).
    AddNode("step2", handler2).
    AddEdge(hexagon.START, "step1").
    AddEdge("step1", "step2").
    AddEdge("step2", hexagon.END).
    Build()

func NewTool

func NewTool[I, O any](name, description string, fn func(context.Context, I) (O, error)) *tool.FuncTool[I, O]

NewTool 从函数创建工具

示例:

type CalcInput struct {
    A float64 `json:"a" desc:"第一个数字" required:"true"`
    B float64 `json:"b" desc:"第二个数字" required:"true"`
}

calculator := hexagon.NewTool("calculator", "执行加法计算",
    func(ctx context.Context, input CalcInput) (float64, error) {
        return input.A + input.B, nil
    },
)

func ParallelNodeWithMerger

func ParallelNodeWithMerger[S graph.State](name string, merger graph.StateMerger[S], handlers ...graph.NodeHandler[S]) *graph.Node[S]

ParallelNodeWithMerger 创建带自定义状态合并器的并行执行节点

示例:

node := hexagon.ParallelNodeWithMerger[MyState]("parallel", merger, handler1, handler2)

func QuickStart

func QuickStart(opts ...QuickStartOption) *agent.ReActAgent

QuickStart 快速创建一个 ReAct Agent

注意:需要配置 LLM Provider,可以通过以下方式之一:

  • 设置 OPENAI_API_KEY 环境变量
  • 使用 WithProvider() 选项
  • 调用 SetDefaultProvider()

如果没有配置 Provider,QuickStart 不会 panic, 但后续执行时会返回未配置 Provider 的错误。

示例:

agent := hexagon.QuickStart(
    hexagon.WithTools(searchTool, calculatorTool),
    hexagon.WithSystemPrompt("You are a helpful assistant."),
)
output, err := agent.Run(ctx, hexagon.Input{Query: "What is 2+2?"})

func SetDefaultProvider

func SetDefaultProvider(p llm.Provider)

SetDefaultProvider 设置默认 LLM Provider(并发安全)

Types

type Agent

type Agent = agent.Agent

Agent 是 Agent 接口

type AgentEvent

type AgentEvent = eventstream.Event

AgentEvent 是 Agent 事件

type AgentEventType

type AgentEventType = eventstream.EventType

AgentEventType 是事件类型

type AgentOption

type AgentOption = agent.Option

AgentOption 是 Agent 配置选项

type Alert

type Alert = metrics.Alert

Alert 是告警实例

type AlertCondition

type AlertCondition = metrics.AlertCondition

AlertCondition 是告警条件

type AlertManager

type AlertManager = metrics.AlertManager

AlertManager 是告警管理器

type AlertRule

type AlertRule = metrics.AlertRule

AlertRule 是告警规则

type AlertSeverity

type AlertSeverity = metrics.Severity

AlertSeverity 是告警严重度

type Chain

type Chain[I, O any] = chain.Chain[I, O]

Chain 是链式组件

type ChainMode

type ChainMode = guard.ChainMode

ChainMode 是守卫链模式

type CheckResult

type CheckResult = guard.CheckResult

CheckResult 是守卫检查结果

type CompletionRequest

type CompletionRequest = llm.CompletionRequest

CompletionRequest 是 LLM 补全请求

type CompletionResponse

type CompletionResponse = llm.CompletionResponse

CompletionResponse 是 LLM 补全响应

type ConversationAgent

type ConversationAgent = agent.ConversationAgent

对话 Agent 类型

type ConversationManager

type ConversationManager = conversation.Manager

对话管理器类型

type CostController

type CostController = cost.Controller

CostController 是成本控制器

type Document

type Document = rag.Document

Document 是 RAG 文档

type Embedder

type Embedder = rag.Embedder

Embedder 是向量生成器接口

type EventStream

type EventStream = eventstream.Stream

EventStream 是事件流

type Graph

type Graph[S graph.State] = graph.Graph[S]

Graph 是编译后的图

type Guard

type Guard = guard.Guard

Guard 是守卫接口

type GuardChain

type GuardChain = guard.GuardChain

GuardChain 是守卫链

type GuardFinding

type GuardFinding = guard.Finding

GuardFinding 是守卫发现的问题

type GuardPosition

type GuardPosition = guard.Position

GuardPosition 是问题在文本中的位置

type Indexer

type Indexer = rag.Indexer

Indexer 是文档索引器接口

type Input

type Input = agent.Input

Input 是 Agent 输入

type LLMRole

type LLMRole = llm.Role

LLMRole 是消息角色类型

type LLMStream

type LLMStream = llm.Stream

LLMStream 是 LLM 流式响应

type LLMStreamChunk

type LLMStreamChunk = llm.StreamChunk

LLMStreamChunk 是流式响应的单个片段

type LLMStreamResult

type LLMStreamResult = llm.StreamResult

LLMStreamResult 是流式响应的最终结果

type Loader

type Loader = rag.Loader

Loader 是文档加载器接口

type MCPServerV2

type MCPServerV2 = mcp.ServerV2

MCPServerV2 是基于官方 SDK 的 MCP 服务器

type MapState

type MapState = graph.MapState

MapState 是通用 map 状态

type Memory

type Memory = memory.Memory

Memory 是记忆接口

type MemoryItem

type MemoryItem = memstore.Item

MemoryItem 是记忆存储条目

type MemoryStore

type MemoryStore = memstore.MemoryStore

MemoryStore 是跨会话持久记忆存储接口

type Message

type Message = llm.Message

Message 是聊天消息

type Metrics

type Metrics = metrics.Metrics

Metrics 是指标接口

type NodeHandler

type NodeHandler[S graph.State] = graph.NodeHandler[S]

NodeHandler 节点处理函数类型

type OpenAIEmbedder

type OpenAIEmbedder = embedder.OpenAIEmbedder

OpenAIEmbedder OpenAI 向量生成器

type OpenAIOption

type OpenAIOption = openai.Option

OpenAIOption 是 OpenAI Provider 的配置选项

type Output

type Output = agent.Output

Output 是 Agent 输出

func Run

func Run(ctx context.Context, input Input, opts ...QuickStartOption) (Output, error)

Run 执行 Agent 并返回完整输出

示例:

output, err := hexagon.Run(ctx, hexagon.Input{Query: "Hello"})

type PIIGuard

type PIIGuard = guard.PIIGuard

PIIGuard 是 PII 检测守卫

type PluginBasePlugin

type PluginBasePlugin = plugin.BasePlugin

PluginBasePlugin 是基础插件实现

type PluginInfo

type PluginInfo = plugin.PluginInfo

PluginInfo 是插件信息

type PluginPlugin

type PluginPlugin = plugin.Plugin

PluginPlugin 是插件接口

type PluginRegistry

type PluginRegistry = plugin.Registry

PluginRegistry 是插件注册中心

type PluginType

type PluginType = plugin.PluginType

PluginType 是插件类型枚举

type PromptInjectionGuard

type PromptInjectionGuard = guard.PromptInjectionGuard

PromptInjectionGuard 是 Prompt 注入检测守卫

type Provider

type Provider = llm.Provider

Provider 是 LLM 提供者接口

type QdrantConfig

type QdrantConfig = qdrant.Config

QdrantConfig 是 Qdrant 配置

type QuickStartOption

type QuickStartOption func(*quickStartConfig)

QuickStartOption 是 QuickStart 的配置选项

func WithMemory

func WithMemory(m memory.Memory) QuickStartOption

WithMemory 设置记忆系统

func WithProvider

func WithProvider(p llm.Provider) QuickStartOption

WithProvider 设置 LLM Provider

func WithSystemPrompt

func WithSystemPrompt(prompt string) QuickStartOption

WithSystemPrompt 设置系统提示词

func WithTools

func WithTools(tools ...tool.Tool) QuickStartOption

WithTools 设置工具

type RAGEngine

type RAGEngine = rag.Engine

RAGEngine 是 RAG 引擎

type Retriever

type Retriever = rag.Retriever

Retriever 是文档检索器接口

type Role

type Role = agent.Role

Role 是角色定义

type RoleBuilder

type RoleBuilder = agent.RoleBuilder

RoleBuilder 是角色构建器类型

type Skill

type Skill = skill.Skill

Skill 是技能定义

type SkillRegistry

type SkillRegistry = skill.Registry

SkillRegistry 是技能注册中心

type Span

type Span = tracer.Span

Span 是追踪 Span 接口

type Splitter

type Splitter = rag.Splitter

Splitter 是文档分割器接口

type State

type State = graph.State

State 是图状态接口

type StateManager

type StateManager = agent.StateManager

StateManager 是状态管理器接口

type StateMerger

type StateMerger[S graph.State] = graph.StateMerger[S]

StateMerger 状态合并函数类型

type Team

type Team = agent.Team

Team 是团队

type Tool

type Tool = tool.Tool

Tool 是工具接口

type Tracer

type Tracer = tracer.Tracer

Tracer 是追踪器接口

type Usage

type Usage = llm.Usage

Usage 是 Token 使用统计

type VectorDocument

type VectorDocument = vector.Document

VectorDocument 向量存储文档

type VectorEmbedder

type VectorEmbedder = vector.Embedder

VectorEmbedder 向量生成器接口 (store 层)

type VectorMemoryStoreInterface

type VectorMemoryStoreInterface = vector.Store

VectorMemoryStore 内存向量存储 (store 层的具体 Store 接口)

type VectorSearchOption

type VectorSearchOption = vector.SearchOption

VectorSearchOption 向量搜索选项

type VectorStore

type VectorStore = rag.VectorStore

VectorStore 是向量存储接口

Directories

Path Synopsis
Package agent 提供 AI Agent 核心接口和实现
Package agent 提供 AI Agent 核心接口和实现
a2a
Package a2a 实现 Google A2A (Agent-to-Agent) 协议
Package a2a 实现 Google A2A (Agent-to-Agent) 协议
artifact
Package artifact 提供 Agent 生成文件的版本化管理
Package artifact 提供 Agent 生成文件的版本化管理
semantic
Package semantic 提供语义函数功能
Package semantic 提供语义函数功能
skill
Package skill 提供 Skill(技能)注册、发现和执行系统
Package skill 提供 Skill(技能)注册、发现和执行系统
Package bench 提供 Hexagon AI Agent 框架的基准测试工具
Package bench 提供 Hexagon AI Agent 框架的基准测试工具
Package checkpoint 提供整个框架**唯一**的检查点/恢复(checkpoint/resume)抽象。
Package checkpoint 提供整个框架**唯一**的检查点/恢复(checkpoint/resume)抽象。
Package client 提供 Hexagon 框架的 Fluent API
Package client 提供 Hexagon 框架的 Fluent API
Package config 提供 Hexagon AI Agent 框架的配置加载能力
Package config 提供 Hexagon AI Agent 框架的配置加载能力
Package core 提供 Hexagon 框架的核心接口和类型
Package core 提供 Hexagon 框架的核心接口和类型
Package evaluate 提供 AI Agent 系统的评估框架
Package evaluate 提供 AI Agent 系统的评估框架
agenteval
Package agenteval 提供 Agent 的质量评估基线(非性能基准)。
Package agenteval 提供 Agent 的质量评估基线(非性能基准)。
metrics
Package metrics 提供高级评估指标
Package metrics 提供高级评估指标
rag
Package rag 提供 RAG 系统评估指标
Package rag 提供 RAG 系统评估指标
Package hooks 提供 Hexagon AI Agent 框架的钩子/回调系统
Package hooks 提供 Hexagon AI Agent 框架的钩子/回调系统
internal
pool
Package pool 提供 Hexagon 框架的协程池和对象池封装
Package pool 提供 Hexagon 框架的协程池和对象池封装
util
Package util 提供 Hexagon 框架的内部工具函数
Package util 提供 Hexagon 框架的内部工具函数
Package interrupt 提供 Hexagon 框架的中断恢复能力
Package interrupt 提供 Hexagon 框架的中断恢复能力
llm
batch
Package batch 提供 LLM 请求批处理功能
Package batch 提供 LLM 请求批处理功能
conversation
Package conversation 提供多轮对话管理功能
Package conversation 提供多轮对话管理功能
parser
Package parser 提供 LLM 输出解析和验证功能
Package parser 提供 LLM 输出解析和验证功能
structured
Package structured 提供 LLM 结构化输出能力
Package structured 提供 LLM 结构化输出能力
template
Package template 提供 LLM 提示词模板引擎
Package template 提供 LLM 提示词模板引擎
Package mcp 实现 Model Context Protocol (MCP) 支持
Package mcp 实现 Model Context Protocol (MCP) 支持
memory
store
Package store 提供跨会话持久记忆存储
Package store 提供跨会话持久记忆存储
observe
devui
Package devui 提供 Hexagon 开发调试界面
Package devui 提供 Hexagon 开发调试界面
events
Package events 实现结构化事件协议(自 hexclaw 下沉,v0.5.0 去 feature-flag)。
Package events 实现结构化事件协议(自 hexclaw 下沉,v0.5.0 去 feature-flag)。
eventstream
Package eventstream 提供 Agent 执行事件流
Package eventstream 提供 Agent 执行事件流
langfuse
Package langfuse 提供 Langfuse 可观测平台集成
Package langfuse 提供 Langfuse 可观测平台集成
logger
Package logger 提供 Hexagon AI Agent 框架的日志工具
Package logger 提供 Hexagon AI Agent 框架的日志工具
metrics
alert.go 提供指标告警功能
alert.go 提供指标告警功能
otel
Package otel 提供 OpenTelemetry 集成
Package otel 提供 OpenTelemetry 集成
prometheus
Package prometheus 提供 Prometheus 指标导出
Package prometheus 提供 Prometheus 指标导出
replay
Package replay 提供调用链重放功能
Package replay 提供调用链重放功能
trace
Package trace 提供请求级别的结构化日志追踪。
Package trace 提供请求级别的结构化日志追踪。
tracer
Package tracer 提供 Hexagon AI Agent 框架的分布式追踪能力
Package tracer 提供 Hexagon AI Agent 框架的分布式追踪能力
orchestration
chain
Package chain 提供 Hexagon AI Agent 框架的链式编排
Package chain 提供 Hexagon AI Agent 框架的链式编排
graph
Package graph 提供 Hexagon AI Agent 框架的图编排引擎
Package graph 提供 Hexagon AI Agent 框架的图编排引擎
planner
Package planner 提供 AI Agent 的规划能力
Package planner 提供 AI Agent 的规划能力
workflow
Package workflow 提供 Hexagon AI Agent 框架的工作流引擎
Package workflow 提供 Hexagon AI Agent 框架的工作流引擎
Package plugin 提供插件依赖管理能力
Package plugin 提供插件依赖管理能力
rag
Package rag 提供 Hexagon AI Agent 框架的检索增强生成 (RAG) 系统
Package rag 提供 Hexagon AI Agent 框架的检索增强生成 (RAG) 系统
adw
Package adw 提供智能文档工作流(Agentic Document Workflows)功能
Package adw 提供智能文档工作流(Agentic Document Workflows)功能
adw/extractor
Package extractor 提供文档信息提取功能
Package extractor 提供文档信息提取功能
adw/validator
Package validator 提供文档验证功能
Package validator 提供文档验证功能
agentic
Package agentic 提供代理式检索增强生成 (Agentic RAG) 实现
Package agentic 提供代理式检索增强生成 (Agentic RAG) 实现
cache
Package cache 提供 RAG 语义缓存功能
Package cache 提供 RAG 语义缓存功能
citation
Package citation 提供引用追踪功能
Package citation 提供引用追踪功能
corrective
Package corrective 提供纠错检索增强生成 (Corrective RAG) 实现
Package corrective 提供纠错检索增强生成 (Corrective RAG) 实现
embedder
Package embedder 提供 RAG 系统的文本嵌入生成器
Package embedder 提供 RAG 系统的文本嵌入生成器
extractor
Package extractor 提供 RAG 系统的文档元数据提取器
Package extractor 提供 RAG 系统的文档元数据提取器
indexer
Package indexer 提供 RAG 系统的文档索引器
Package indexer 提供 RAG 系统的文档索引器
knowledge
Package knowledge 提供知识图谱能力
Package knowledge 提供知识图谱能力
loader
Package loader 提供 RAG 文档加载功能
Package loader 提供 RAG 文档加载功能
multimodal
Package multimodal 提供多模态 RAG 支持
Package multimodal 提供多模态 RAG 支持
query
Package query 提供 RAG 系统的查询增强功能
Package query 提供 RAG 系统的查询增强功能
reranker
Package reranker 提供高级重排序算法
Package reranker 提供高级重排序算法
retriever
Package retriever 提供 RAG 系统的文档检索器
Package retriever 提供 RAG 系统的文档检索器
router
Package router 提供 RAG 系统的查询路由器
Package router 提供 RAG 系统的查询路由器
selfrag
Package selfrag 提供自我反思检索增强生成 (Self-RAG) 实现
Package selfrag 提供自我反思检索增强生成 (Self-RAG) 实现
splitter
Package splitter 提供 RAG 系统的文档分割器
Package splitter 提供 RAG 系统的文档分割器
synthesizer
Package synthesizer 提供 RAG 响应合成能力
Package synthesizer 提供 RAG 响应合成能力
strategy
Package strategy 提供统一 agent loop 的可选执行策略。
Package strategy 提供统一 agent loop 的可选执行策略。
security
audit
Package audit 提供 Hexagon AI Agent 框架的审计日志
Package audit 提供 Hexagon AI Agent 框架的审计日志
cost
Package cost 提供 Hexagon AI Agent 框架的成本控制
Package cost 提供 Hexagon AI Agent 框架的成本控制
credential
Package credential 提供凭据(API Key、密钥等敏感串)的对称加密与加密存储能力。
Package credential 提供凭据(API Key、密钥等敏感串)的对称加密与加密存储能力。
filter
Package filter 提供 Hexagon AI Agent 框架的内容过滤
Package filter 提供 Hexagon AI Agent 框架的内容过滤
guard
Package guard 提供 Hexagon AI Agent 框架的安全守卫能力
Package guard 提供 Hexagon AI Agent 框架的安全守卫能力
guardrails
Package guardrails 提供 Agent 输出质量护栏
Package guardrails 提供 Agent 输出质量护栏
pii
Package pii 提供 PII(个人身份信息)检测与脱敏功能
Package pii 提供 PII(个人身份信息)检测与脱敏功能
rbac
Package rbac 提供 Hexagon AI Agent 框架的基于角色的访问控制
Package rbac 提供 Hexagon AI Agent 框架的基于角色的访问控制
tenant
Package tenant 提供多租户支持
Package tenant 提供多租户支持
store
vector/chroma
Package chroma 提供 ChromaDB 向量数据库集成
Package chroma 提供 ChromaDB 向量数据库集成
vector/faiss
Package faiss 提供 Facebook AI Similarity Search (Faiss) 向量存储集成
Package faiss 提供 Facebook AI Similarity Search (Faiss) 向量存储集成
vector/milvus
Package milvus 提供 Milvus 向量数据库集成
Package milvus 提供 Milvus 向量数据库集成
vector/pgvector
Package pgvector 提供 PostgreSQL pgvector 扩展的向量存储集成
Package pgvector 提供 PostgreSQL pgvector 扩展的向量存储集成
vector/pinecone
Package pinecone 提供 Pinecone 向量数据库集成
Package pinecone 提供 Pinecone 向量数据库集成
vector/redis
Package redis 提供 Redis Stack (RediSearch) 向量存储集成
Package redis 提供 Redis Stack (RediSearch) 向量存储集成
vector/weaviate
Package weaviate 提供 Weaviate 向量数据库集成
Package weaviate 提供 Weaviate 向量数据库集成
testing
e2e
Package e2e 提供端到端测试框架
Package e2e 提供端到端测试框架
mock
Package mock 提供 Hexagon AI Agent 框架测试的 Mock 实现
Package mock 提供 Hexagon AI Agent 框架测试的 Mock 实现
record
Package record 提供高级测试录制和回放功能
Package record 提供高级测试录制和回放功能
Package tool 提供工具系统的扩展功能
Package tool 提供工具系统的扩展功能
api
Package api 提供常用 API 集成工具
Package api 提供常用 API 集成工具
browser
Package browser 提供浏览器自动化工具
Package browser 提供浏览器自动化工具
database
Package database 提供数据库查询工具
Package database 提供数据库查询工具
datetime
Package datetime 提供日期时间处理工具
Package datetime 提供日期时间处理工具
file
Package file 提供 AI Agent 的文件操作工具
Package file 提供 AI Agent 的文件操作工具
http
Package http 提供 HTTP API 调用工具
Package http 提供 HTTP API 调用工具
math
Package math 提供数学计算工具
Package math 提供数学计算工具
python
Package python 提供 AI Agent 的 Python 代码执行工具
Package python 提供 AI Agent 的 Python 代码执行工具
sandbox
Package sandbox 提供 AI Agent 的沙箱代码执行环境
Package sandbox 提供 AI Agent 的沙箱代码执行环境
search
Package search 提供搜索引擎工具
Package search 提供搜索引擎工具
shell
Package shell 提供 AI Agent 的 Shell 命令执行工具
Package shell 提供 AI Agent 的 Shell 命令执行工具
text
Package text 提供文本处理工具
Package text 提供文本处理工具

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL