Documentation
¶
Overview ¶
Package agentflow provides a top-level convenience entry point for creating agents with minimal boilerplate.
Usage:
import "github.com/BaSui01/agentflow"
a, err := agentflow.New(agentflow.WithOpenAI("gpt-4o-mini"))
a, err := agentflow.New(agentflow.WithAnthropic("claude-sonnet-4-20250514"))
a, err := agentflow.New(agentflow.WithProvider(myProvider), agentflow.WithModel("custom"))
This is a thin wrapper around quick.New; both produce identical results. Use this package when you prefer the shorter import path.
Index ¶
Constants ¶
This section is empty.
Variables ¶
var WithAPIKey = quick.WithAPIKey
WithAPIKey overrides the API key for provider shortcuts.
var WithAnthropic = quick.WithAnthropic
WithAnthropic creates an Anthropic Claude provider. API key from ANTHROPIC_API_KEY env.
var WithDeepSeek = quick.WithDeepSeek
WithDeepSeek creates a DeepSeek provider. API key from DEEPSEEK_API_KEY env.
var WithLogger = quick.WithLogger
WithLogger sets a custom zap logger.
var WithModel = quick.WithModel
WithModel overrides the model name.
var WithName = quick.WithName
WithName sets the agent name.
var WithOpenAI = quick.WithOpenAI
WithOpenAI creates an OpenAI provider. API key from OPENAI_API_KEY env.
var WithProvider = quick.WithProvider
WithProvider sets a pre-built LLM provider.
var WithSystemPrompt = quick.WithSystemPrompt
WithSystemPrompt sets the system prompt.
Functions ¶
func New ¶
New creates a agent.BaseAgent with minimal configuration. At minimum, a provider must be specified via WithOpenAI, WithAnthropic, WithDeepSeek, or WithProvider.
Types ¶
Directories
¶
| Path | Synopsis |
|---|---|
|
包 agent 提供 AgentFlow 的核心智能体框架。
|
包 agent 提供 AgentFlow 的核心智能体框架。 |
|
artifacts
包 artifacts 为智能体提供产物的生成、存储与生命周期管理能力。
|
包 artifacts 为智能体提供产物的生成、存储与生命周期管理能力。 |
|
browser
包 browser 为智能体提供浏览器自动化与网页交互能力。
|
包 browser 为智能体提供浏览器自动化与网页交互能力。 |
|
collaboration
Package collaboration 提供多 Agent 协作模式,包括辩论、共识和投票等交互策略。
|
Package collaboration 提供多 Agent 协作模式,包括辩论、共识和投票等交互策略。 |
|
context
包 context 为智能体提供上下文窗口管理、压缩与自适应调控能力。
|
包 context 为智能体提供上下文窗口管理、压缩与自适应调控能力。 |
|
conversation
包 conversation 提供多智能体对话编排与对话状态管理能力。
|
包 conversation 提供多智能体对话编排与对话状态管理能力。 |
|
crews
包 crews 提供基于角色分工的多智能体团队协作框架。
|
包 crews 提供基于角色分工的多智能体团队协作框架。 |
|
deliberation
包 deliberation 提供智能体行动前的多步推理与审议引擎。
|
包 deliberation 提供智能体行动前的多步推理与审议引擎。 |
|
deployment
包 deployment 提供智能体的部署管理与运行环境适配能力。
|
包 deployment 提供智能体的部署管理与运行环境适配能力。 |
|
discovery
包 discovery 提供多智能体场景下的能力发现与匹配机制。
|
包 discovery 提供多智能体场景下的能力发现与匹配机制。 |
|
evaluation
包 evaluation 提供智能体评测、实验与质量分析能力。
|
包 evaluation 提供智能体评测、实验与质量分析能力。 |
|
execution
checkpointer.go is intentionally empty.
|
checkpointer.go is intentionally empty. |
|
federation
包 federation 提供跨组织智能体联合协作与任务编排能力。
|
包 federation 提供跨组织智能体联合协作与任务编排能力。 |
|
guardrails
包 guardrails 为智能体提供输入与输出安全防护能力。
|
包 guardrails 为智能体提供输入与输出安全防护能力。 |
|
handoff
包 handoff 提供智能体间的任务交接协议与上下文传递能力。
|
包 handoff 提供智能体间的任务交接协议与上下文传递能力。 |
|
hierarchical
Package hierarchical 提供基于 Supervisor-Worker 模式的层次化 Agent 编排。
|
Package hierarchical 提供基于 Supervisor-Worker 模式的层次化 Agent 编排。 |
|
hitl
包 hitl 提供 Human-in-the-Loop 工作流中断与恢复能力。
|
包 hitl 提供 Human-in-the-Loop 工作流中断与恢复能力。 |
|
hosted
包 hosted 提供由平台托管的工具注册与远程服务接入能力。
|
包 hosted 提供由平台托管的工具注册与远程服务接入能力。 |
|
k8s
包 k8s 提供 Kubernetes 场景下的智能体生命周期管理与运维能力。
|
包 k8s 提供 Kubernetes 场景下的智能体生命周期管理与运维能力。 |
|
longrunning
包 longrunning 提供面向智能体的长时任务执行与断点恢复能力。
|
包 longrunning 提供面向智能体的长时任务执行与断点恢复能力。 |
|
lsp
Package lsp 提供 Language Server Protocol (LSP) 支持, 使 Agent 能够通过 LSP 协议与 IDE 和编辑器集成。
|
Package lsp 提供 Language Server Protocol (LSP) 支持, 使 Agent 能够通过 LSP 协议与 IDE 和编辑器集成。 |
|
mcp
Package mcp 提供 MCP (Model Context Protocol) 的稳定导入路径。
|
Package mcp 提供 MCP (Model Context Protocol) 的稳定导入路径。 |
|
memory
包 memory 提供面向智能体的分层记忆系统。
|
包 memory 提供面向智能体的分层记忆系统。 |
|
observability
包 observability 提供面向智能体的可观测性与可解释性系统。
|
包 observability 提供面向智能体的可观测性与可解释性系统。 |
|
orchestration
Package orchestration provides a unified orchestrator that dynamically selects between collaboration, crews, hierarchical, and handoff patterns based on task characteristics and agent composition.
|
Package orchestration provides a unified orchestrator that dynamically selects between collaboration, crews, hierarchical, and handoff patterns based on task characteristics and agent composition. |
|
persistence
包 persistence 提供面向智能体的消息与任务持久化存储抽象及多后端实现。
|
包 persistence 提供面向智能体的消息与任务持久化存储抽象及多后端实现。 |
|
persistence/mongodb
Package mongodb provides adapter types that bridge the concrete MongoDB store implementations to the agent-layer interfaces defined in agent/interfaces.go.
|
Package mongodb provides adapter types that bridge the concrete MongoDB store implementations to the agent-layer interfaces defined in agent/interfaces.go. |
|
protocol/a2a
包 a2a 提供 Agent-to-Agent(A2A)协议的核心实现。
|
包 a2a 提供 Agent-to-Agent(A2A)协议的核心实现。 |
|
protocol/mcp
Package mcp 实现 Anthropic Model Context Protocol (MCP) 规范。
|
Package mcp 实现 Anthropic Model Context Protocol (MCP) 规范。 |
|
reasoning
包 reasoning 提供面向智能体的多种高级推理模式。
|
包 reasoning 提供面向智能体的多种高级推理模式。 |
|
runtime
Package runtime 提供 Agent 一键构建工具,通过 BuildOptions 控制 可选子系统(LSP、MCP、Memory、Skills、Observability 等)的启停。
|
Package runtime 提供 Agent 一键构建工具,通过 BuildOptions 控制 可选子系统(LSP、MCP、Memory、Skills、Observability 等)的启停。 |
|
skills
包 skills 提供 Agent 技能的注册、发现、加载与调用管理能力。
|
包 skills 提供 Agent 技能的注册、发现、加载与调用管理能力。 |
|
streaming
包 streaming 提供实时双向流式交互能力。
|
包 streaming 提供实时双向流式交互能力。 |
|
voice
包 voice 提供语音 Agent 与实时音频交互能力。
|
包 voice 提供语音 Agent 与实时音频交互能力。 |
|
包 api 提供 AgentFlow HTTP API 的 OpenAPI/Swagger 文档说明。
|
包 api 提供 AgentFlow HTTP API 的 OpenAPI/Swagger 文档说明。 |
|
handlers
Package handlers 提供 AgentFlow HTTP API 的请求处理器实现。
|
Package handlers 提供 AgentFlow HTTP API 的请求处理器实现。 |
|
cmd
|
|
|
agentflow
command
Package main 提供 AgentFlow 服务端程序入口。
|
Package main 提供 AgentFlow 服务端程序入口。 |
|
config 包的 HTTP 配置管理 API。
|
config 包的 HTTP 配置管理 API。 |
|
examples
|
|
|
01_simple_chat
command
|
|
|
02_streaming
command
|
|
|
03_tool_use
command
|
|
|
04_custom_agent
command
|
|
|
05_workflow
command
|
|
|
06_advanced_features
command
|
|
|
07_mid_priority_features
command
示例 07_mid_priority_features 演示了 AgentFlow 的中优先级功能集合。
|
示例 07_mid_priority_features 演示了 AgentFlow 的中优先级功能集合。 |
|
08_low_priority_features
command
|
|
|
09_full_integration
command
|
|
|
11_multi_provider_apis
command
|
|
|
12_complete_rag_system
command
|
|
|
13_new_providers
command
|
|
|
14_guardrails
command
示例 14_guardrails 演示了 AgentFlow 的安全防护(Guardrails)能力。
|
示例 14_guardrails 演示了 AgentFlow 的安全防护(Guardrails)能力。 |
|
15_structured_output
command
示例 15_structured_output 演示了 AgentFlow 的结构化输出(Structured Output)能力。
|
示例 15_structured_output 演示了 AgentFlow 的结构化输出(Structured Output)能力。 |
|
16_a2a_protocol
command
示例 16_a2a_protocol 演示了 AgentFlow 的 Agent-to-Agent(A2A)通信协议。
|
示例 16_a2a_protocol 演示了 AgentFlow 的 Agent-to-Agent(A2A)通信协议。 |
|
17_high_priority_features
command
示例 17:高优先级功能演示 演示内容:产物管理、HITL 中断、OpenAPI 工具、部署、增强检查点与可视化构建
|
示例 17:高优先级功能演示 演示内容:产物管理、HITL 中断、OpenAPI 工具、部署、增强检查点与可视化构建 |
|
18_advanced_agent_features
command
示例 18_advanced_agent_features 演示了 AgentFlow 的高级 Agent 特性。
|
示例 18_advanced_agent_features 演示了 AgentFlow 的高级 Agent 特性。 |
|
19_2026_features
command
示例 19_2026_features 演示了 AgentFlow 面向 2026 年的前沿特性。
|
示例 19_2026_features 演示了 AgentFlow 面向 2026 年的前沿特性。 |
|
20_multimodal_providers
command
示例:使用多模态能力(向量、重排、语音合成、语音识别、图像)
|
示例:使用多模态能力(向量、重排、语音合成、语音识别、图像) |
|
21_research_workflow
command
示例 21_research_workflow 演示了基于 AgentFlow DAG 工作流引擎的科研自动化流水线。
|
示例 21_research_workflow 演示了基于 AgentFlow DAG 工作流引擎的科研自动化流水线。 |
|
internal
|
|
|
此文件中的缓存实现已迁移至 llm/cache/ 子包。
|
此文件中的缓存实现已迁移至 llm/cache/ 子包。 |
|
batch
包 batch 提供 LLM 请求的批处理与调度能力,通过将多个独立请求 合并为批次统一发送,降低网络开销并提升吞吐量。
|
包 batch 提供 LLM 请求的批处理与调度能力,通过将多个独立请求 合并为批次统一发送,降低网络开销并提升吞吐量。 |
|
budget
包 budget 提供 Token 预算管理与成本控制能力,通过多时间窗口 限流与告警机制防止 LLM 调用超支。
|
包 budget 提供 Token 预算管理与成本控制能力,通过多时间窗口 限流与告警机制防止 LLM 调用超支。 |
|
cache
包 cache 提供 LLM 请求与工具调用的多级缓存实现,通过本地 LRU 与 Redis 协同减少重复调用,降低延迟与成本。
|
包 cache 提供 LLM 请求与工具调用的多级缓存实现,通过本地 LRU 与 Redis 协同减少重复调用,降低延迟与成本。 |
|
circuitbreaker
Package circuitbreaker 提供通用熔断器实现, 支持 Closed/Open/HalfOpen 三态状态机,用于保护 LLM 调用链路。
|
Package circuitbreaker 提供通用熔断器实现, 支持 Closed/Open/HalfOpen 三态状态机,用于保护 LLM 调用链路。 |
|
config
Package config 提供 LLM 层的配置类型定义, 包括降级策略 (FallbackPolicy)、路由规则等配置结构。
|
Package config 提供 LLM 层的配置类型定义, 包括降级策略 (FallbackPolicy)、路由规则等配置结构。 |
|
embedding
包 embedding 提供统一的文本嵌入(Embedding)接口与多服务商实现, 用于将文本转换为向量表示以支持语义检索、分类与聚类等场景。
|
包 embedding 提供统一的文本嵌入(Embedding)接口与多服务商实现, 用于将文本转换为向量表示以支持语义检索、分类与聚类等场景。 |
|
factory
Package factory 提供 LLM Provider 的集中式工厂, 通过名称映射创建 Provider 实例,打破 llm 包与各 provider 子包之间的循环依赖。
|
Package factory 提供 LLM Provider 的集中式工厂, 通过名称映射创建 Provider 实例,打破 llm 包与各 provider 子包之间的循环依赖。 |
|
idempotency
Package idempotency 提供 LLM 请求幂等性管理, 通过请求指纹去重防止重复调用,支持内存与 Redis 两种存储后端。
|
Package idempotency 提供 LLM 请求幂等性管理, 通过请求指纹去重防止重复调用,支持内存与 Redis 两种存储后端。 |
|
image
包 image 提供统一的图像生成服务抽象,支持多种模型服务商的文生图、 图像编辑与变体生成能力。
|
包 image 提供统一的图像生成服务抽象,支持多种模型服务商的文生图、 图像编辑与变体生成能力。 |
|
middleware
包 middleware 提供 LLM 请求处理的中间件链机制,支持在请求发送到 上游模型服务之前和响应返回之后插入可组合的横切逻辑。
|
包 middleware 提供 LLM 请求处理的中间件链机制,支持在请求发送到 上游模型服务之前和响应返回之后插入可组合的横切逻辑。 |
|
moderation
包 moderation 提供统一的内容审核服务抽象,用于检测文本和图像中的 违规内容,支持多种审核类别与置信度评分。
|
包 moderation 提供统一的内容审核服务抽象,用于检测文本和图像中的 违规内容,支持多种审核类别与置信度评分。 |
|
multimodal
包 multimodal 提供多模态内容的统一表示、格式转换与跨 Provider 路由能力, 支持文本、图像、音频、视频、文档等多种内容类型。
|
包 multimodal 提供多模态内容的统一表示、格式转换与跨 Provider 路由能力, 支持文本、图像、音频、视频、文档等多种内容类型。 |
|
music
包 music 提供统一的 AI 音乐生成接入层,支持多服务商适配与统一请求模型。
|
包 music 提供统一的 AI 音乐生成接入层,支持多服务商适配与统一请求模型。 |
|
observability
包 observability 提供 LLM 调用的可观测性能力,涵盖指标采集、 分布式追踪与成本核算三大模块。
|
包 observability 提供 LLM 调用的可观测性能力,涵盖指标采集、 分布式追踪与成本核算三大模块。 |
|
providers/openaicompat
Package openaicompat provides a shared base implementation for all OpenAI-compatible LLM providers.
|
Package openaicompat provides a shared base implementation for all OpenAI-compatible LLM providers. |
|
providers/qwen
包 qwen 提供阿里巴巴通义千问(Qwen)系列模型的 Provider 适配实现, 基于 OpenAI 兼容协议接入 DashScope API。
|
包 qwen 提供阿里巴巴通义千问(Qwen)系列模型的 Provider 适配实现, 基于 OpenAI 兼容协议接入 DashScope API。 |
|
rerank
包 rerank 提供统一的文档重排序接入层,支持多服务商适配与标准化 请求/响应模型。
|
包 rerank 提供统一的文档重排序接入层,支持多服务商适配与标准化 请求/响应模型。 |
|
retry
Package retry 提供 LLM 调用的重试策略, 支持指数退避、抖动和可配置的最大重试次数。
|
Package retry 提供 LLM 调用的重试策略, 支持指数退避、抖动和可配置的最大重试次数。 |
|
router
包 router 提供多模型场景下的路由能力。
|
包 router 提供多模型场景下的路由能力。 |
|
speech
包 speech 提供统一的语音合成 (TTS) 与语音识别 (STT) 接入层, 支持多服务商适配与标准化请求/响应模型。
|
包 speech 提供统一的语音合成 (TTS) 与语音识别 (STT) 接入层, 支持多服务商适配与标准化请求/响应模型。 |
|
streaming
包 streaming 提供面向 LLM 流式输出场景的高性能数据传输原语, 包括零拷贝缓冲、背压流控、速率限制与流多路复用。
|
包 streaming 提供面向 LLM 流式输出场景的高性能数据传输原语, 包括零拷贝缓冲、背压流控、速率限制与流多路复用。 |
|
threed
包 threed 提供统一的 3D 模型生成接口,支持文本转 3D 和图像转 3D 两种模式, 并适配 Meshy 与 Tripo3D 两个主流服务商。
|
包 threed 提供统一的 3D 模型生成接口,支持文本转 3D 和图像转 3D 两种模式, 并适配 Meshy 与 Tripo3D 两个主流服务商。 |
|
tokenizer
Package tokenizer 提供统一的 Token 计数接口, 支持 tiktoken 精确计数与 CJK 估算器,用于 LLM 请求的 Token 预算管理。
|
Package tokenizer 提供统一的 Token 计数接口, 支持 tiktoken 精确计数与 CJK 估算器,用于 LLM 请求的 Token 预算管理。 |
|
tools
包 tools 提供大模型工具调用的注册、调度与执行能力。
|
包 tools 提供大模型工具调用的注册、调度与执行能力。 |
|
video
包 video 提供统一的视频生成与视频理解接口,适配 Gemini、Veo 和 Runway ML 三个服务商。
|
包 video 提供统一的视频生成与视频理解接口,适配 Gemini、Veo 和 Runway ML 三个服务商。 |
|
pkg
|
|
|
cache
包 cache 提供基于 Redis 的缓存管理能力,支持连接池、健康检查、 JSON 序列化与统计信息采集。
|
包 cache 提供基于 Redis 的缓存管理能力,支持连接池、健康检查、 JSON 序列化与统计信息采集。 |
|
database
包 database 提供基于 GORM 的数据库连接池管理,支持健康检查、 统计信息采集与事务重试。
|
包 database 提供基于 GORM 的数据库连接池管理,支持健康检查、 统计信息采集与事务重试。 |
|
metrics
包 metrics 提供基于 Prometheus 的全链路指标采集能力,覆盖 HTTP、LLM、Agent、缓存与数据库五大维度。
|
包 metrics 提供基于 Prometheus 的全链路指标采集能力,覆盖 HTTP、LLM、Agent、缓存与数据库五大维度。 |
|
migration
包 migration 提供数据库 Schema 迁移管理能力,支持 PostgreSQL、 MySQL 与 SQLite 三种数据库,基于 golang-migrate 实现。
|
包 migration 提供数据库 Schema 迁移管理能力,支持 PostgreSQL、 MySQL 与 SQLite 三种数据库,基于 golang-migrate 实现。 |
|
mongodb
Package mongodb provides MongoDB client management for agentflow.
|
Package mongodb provides MongoDB client management for agentflow. |
|
server
包 server 提供 HTTP/HTTPS 服务器生命周期管理,支持非阻塞启动、 优雅关闭与系统信号监听。
|
包 server 提供 HTTP/HTTPS 服务器生命周期管理,支持非阻塞启动、 优雅关闭与系统信号监听。 |
|
telemetry
Package telemetry 封装 OpenTelemetry SDK 初始化逻辑, 为 AgentFlow 提供集中式的 TracerProvider 和 MeterProvider 配置。
|
Package telemetry 封装 OpenTelemetry SDK 初始化逻辑, 为 AgentFlow 提供集中式的 TracerProvider 和 MeterProvider 配置。 |
|
tlsutil
Package tlsutil 提供集中式 TLS 配置, 为 HTTP 客户端、服务端和 Redis 连接提供安全加固的 TLS 设置(TLS 1.2+,仅 AEAD 密码套件)。
|
Package tlsutil 提供集中式 TLS 配置, 为 HTTP 客户端、服务端和 Redis 连接提供安全加固的 TLS 设置(TLS 1.2+,仅 AEAD 密码套件)。 |
|
============================================================================= Package quick — One-Line Agent Construction ============================================================================= Provides a convenience entry point for creating agents with minimal boilerplate.
|
============================================================================= Package quick — One-Line Agent Construction ============================================================================= Provides a convenience entry point for creating agents with minimal boilerplate. |
|
Package testutil 提供 AgentFlow 测试的共享工具和辅助函数。
|
Package testutil 提供 AgentFlow 测试的共享工具和辅助函数。 |
|
fixtures
fixtures 中的 Agent 测试数据工厂。
|
fixtures 中的 Agent 测试数据工厂。 |
|
mocks
MockMemoryManager 的测试模拟实现。
|
MockMemoryManager 的测试模拟实现。 |
|
tools
|
|
|
Package types 提供 AgentFlow 框架的全局共享类型定义。
|
Package types 提供 AgentFlow 框架的全局共享类型定义。 |
|
Package workflow 提供工作流编排与执行引擎。
|
Package workflow 提供工作流编排与执行引擎。 |
|
dsl
Package dsl 提供 YAML/JSON 声明式工作流编排语言, 支持变量插值、条件分支、循环和子图定义, 将工作流定义解析为可执行的 DAG 结构。
|
Package dsl 提供 YAML/JSON 声明式工作流编排语言, 支持变量插值、条件分支、循环和子图定义, 将工作流定义解析为可执行的 DAG 结构。 |