aster

package module
v0.35.0 Latest Latest
Warning

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

Go to latest
Published: Dec 29, 2025 License: MIT Imports: 1 Imported by: 0

README

星尘汇聚,智能成枢
让每一个 Agent 都能在生产环境中闪耀

Go CI Go Report Card codecov Release License

📖 完整文档 · 🚀 快速开始 · 🏗️ 架构设计 · 📝 示例代码


什么是 Aster?

Aster 是一个生产级 AI Agent 框架,用 Go 语言构建,专为企业级应用设计。它完整实现了 Google Context Engineering 白皮书的所有核心特性。

✨ 核心特性

特性 描述
🔄 事件驱动架构 Progress/Control/Monitor 三通道设计
🧠 三层记忆系统 Text/Working/Semantic Memory + 溯源 + 合并
🔀 Workflow 编排 8 种步骤类型 + 动态路由 + 并行/顺序/循环
🛡️ 安全防护栏 PII 检测、提示注入防护、内容审核
☁️ 云沙箱集成 阿里云 AgentBay、火山引擎原生支持
📊 可观测性 OpenTelemetry 完整集成
💾 数据持久化 PostgreSQL + MySQL 双数据库支持
🔌 MCP 协议 Model Context Protocol 工具扩展

🚀 快速开始

安装

go get github.com/astercloud/aster

最小示例

package main

import (
    "context"
    "fmt"
    "os"

    "github.com/astercloud/aster/pkg/agent"
    "github.com/astercloud/aster/pkg/provider"
    "github.com/astercloud/aster/pkg/types"
)

func main() {
    // 创建 Agent
    ag, _ := agent.Create(context.Background(), &types.AgentConfig{
        TemplateID: "assistant",
        ModelConfig: &types.ModelConfig{
            Provider: "anthropic",
            Model:    "claude-sonnet-4-5",
            APIKey:   os.Getenv("ANTHROPIC_API_KEY"),
        },
    }, agent.DefaultDependencies())
    defer ag.Close()

    // 对话
    result, _ := ag.Chat(context.Background(), "Hello, World!")
    fmt.Println(result.Text)
}

👉 更多示例请查看 完整文档

📐 架构概览

aster 系统架构

Middleware 洋葱模型

Middleware 洋葱模型

📚 文档

文档 描述
快速开始 5 分钟上手 Aster
核心概念 Agent、Memory、Workflow 等核心概念
Workflow 编排 工作流配置与执行
API 参考 完整 API 文档
示例代码 丰富的使用示例
架构设计 系统架构与设计理念

🏆 Google Context Engineering 实现度

Aster 是首个完整实现 Google Context Engineering 标准的 Go 语言框架:

  • ✅ Sessions & Memory
  • ✅ Memory Provenance
  • ✅ Memory Consolidation
  • ✅ PII Auto-Redaction
  • ✅ Event-Driven Architecture
  • ✅ Streaming & Backpressure
  • ✅ Multi-Agent Orchestration
  • ✅ Observability

📊 项目状态

指标 数值
代码量 18,000+ LOC
测试覆盖 80%+
版本 v0.17.0
状态 ✅ 生产就绪

🤝 贡献

欢迎贡献代码!请查看 贡献指南

📄 License

MIT License - 详见 LICENSE 文件

Documentation

Index

Constants

View Source
const Version = "v0.35.0"

Version represents the current version of aster

Variables

This section is empty.

Functions

func GetVersion

func GetVersion() string

GetVersion returns the current version string

Types

type VersionInfo

type VersionInfo struct {
	Version   string
	GoVersion string
	GitCommit string
	BuildTime string
}

VersionInfo provides detailed version information

func GetVersionInfo

func GetVersionInfo() VersionInfo

GetVersionInfo returns detailed version information

Directories

Path Synopsis
cmd
aster command
aster-server command
Package examples 包含 Aster 框架的示例代码和集成演示。
Package examples 包含 Aster 框架的示例代码和集成演示。
a2a command
A2A 演示 Agent-to-Agent 协议实现,包括基于 JSON-RPC 的消息发送、 任务管理和对话历史追踪。
A2A 演示 Agent-to-Agent 协议实现,包括基于 JSON-RPC 的消息发送、 任务管理和对话历史追踪。
actor command
Actor 演示如何使用 Actor 模型实现多 Agent 协作,包括 Ping-Pong、 并发计数器、监督者策略、流水线处理和广播消息等模式。
Actor 演示如何使用 Actor 模型实现多 Agent 协作,包括 Ping-Pong、 并发计数器、监督者策略、流水线处理和广播消息等模式。
agent command
Agent 演示核心 Agent API,包括工具注册、事件订阅和多轮对话能力。
Agent 演示核心 Agent API,包括工具注册、事件订阅和多轮对话能力。
agent-working-memory command
AgentWorkingMemory 演示带 Working Memory 的 Agent,支持自动加载到 system prompt、LLM 主动更新和跨会话持久化。
AgentWorkingMemory 演示带 Working Memory 的 Agent,支持自动加载到 system prompt、LLM 主动更新和跨会话持久化。
asteros/basic command
Basic 演示 AsterOS 统一运行时系统的基本用法,包括 Agent 注册、 启动和优雅关闭等核心功能。
Basic 演示 AsterOS 统一运行时系统的基本用法,包括 Agent 注册、 启动和优雅关闭等核心功能。
asteros/with_interfaces command
WithInterfaces 演示 AsterOS 与多种接口的集成,展示如何配置和使用 不同的输入输出接口。
WithInterfaces 演示 AsterOS 与多种接口的集成,展示如何配置和使用 不同的输入输出接口。
cloud-sandbox command
CloudSandbox 演示云端沙箱环境的使用,支持阿里云 AgentBay 和火山引擎 两种云平台的代码执行隔离环境。
CloudSandbox 演示云端沙箱环境的使用,支持阿里云 AgentBay 和火山引擎 两种云平台的代码执行隔离环境。
comprehensive command
Comprehensive 演示多个 Aster 功能的综合应用,包括防护栏集成、 带条件分支和并行步骤的复杂工作流编排,以及 WorkflowAgent 智能调度。
Comprehensive 演示多个 Aster 功能的综合应用,包括防护栏集成、 带条件分支和并行步骤的复杂工作流编排,以及 WorkflowAgent 智能调度。
config-paths command
Config 演示跨平台路径管理,支持 macOS、Linux 和 Windows。
Config 演示跨平台路径管理,支持 macOS、Linux 和 Windows。
desktop command
Example: Desktop Application with Wails/Tauri/Electron
Example: Desktop Application with Wails/Tauri/Electron
evals command
Evals 演示无外部依赖的模型输出评估功能,包括关键词覆盖率评估和 词汇级相似度 (Jaccard) 评估。
Evals 演示无外部依赖的模型输出评估功能,包括关键词覆盖率评估和 词汇级相似度 (Jaccard) 评估。
evals-session command
EvalsSession 演示将 Session 事件与评估系统结合,通过 BuildTextEvalInputFromEvents 转换会话事件并进行关键词覆盖率和 词汇相似度评估。
EvalsSession 演示将 Session 事件与评估系统结合,通过 BuildTextEvalInputFromEvents 转换会话事件并进行关键词覆盖率和 词汇相似度评估。
execution-plan command
execution-plan example demonstrates how to use ExecutionPlan functionality to generate, review, and execute multi-step plans with user approval.
execution-plan example demonstrates how to use ExecutionPlan functionality to generate, review, and execute multi-step plans with user approval.
guardrails command
Guardrails 演示安全防护栏系统,包括 PII 检测、PII 掩码、提示注入检测、 防护栏链和 OpenAI 内容审核集成。
Guardrails 演示安全防护栏系统,包括 PII 检测、PII 掩码、提示注入检测、 防护栏链和 OpenAI 内容审核集成。
human-in-the-loop command
HumanInTheLoop 演示 HITL 中间件实现的工具审批工作流,包括基于风险的 评估、交互式提示和可配置的审批策略。
HumanInTheLoop 演示 HITL 中间件实现的工具审批工作流,包括基于风险的 评估、交互式提示和可配置的审批策略。
logging command
Logging 演示日志系统的使用,包括 StdoutTransport 和 FileTransport 两种输出方式,支持 JSON 行格式日志输出。
Logging 演示日志系统的使用,包括 StdoutTransport 和 FileTransport 两种输出方式,支持 JSON 行格式日志输出。
logic-memory command
Package main demonstrates the Logic Memory framework for Aster SDK.
Package main demonstrates the Logic Memory framework for Aster SDK.
long-running-tools command
LongRunningTools 演示长时运行工具的使用,包括异步执行、进度跟踪、 任务取消和并发多任务处理。
LongRunningTools 演示长时运行工具的使用,包括异步执行、进度跟踪、 任务取消和并发多任务处理。
mcp command
MCP 演示与 Model Context Protocol 服务器的集成,展示如何连接外部工具 服务器并将 MCP 工具与内置工具配合使用。
MCP 演示与 Model Context Protocol 服务器的集成,展示如何连接外部工具 服务器并将 MCP 工具与内置工具配合使用。
mcp/server command
Server 演示如何使用 pkg/mcpserver 暴露 MCP HTTP Server, 支持 tools/list 和 tools/call,提供一个 echo 工具供客户端调用。
Server 演示如何使用 pkg/mcpserver 暴露 MCP HTTP Server, 支持 tools/list 和 tools/call,提供一个 echo 工具供客户端调用。
memory command
Memory 演示 AgentMemoryMiddleware 提供的长期记忆能力,使用基于文件的 存储和 grep 风格的搜索。
Memory 演示 AgentMemoryMiddleware 提供的长期记忆能力,使用基于文件的 存储和 grep 风格的搜索。
memory-advanced command
MemoryAdvanced 演示基于 memory.Scope 的高级记忆封装策略,支持多用户、 多项目、多资源的分层记忆管理,无需 LLM 直接操作文件路径。
MemoryAdvanced 演示基于 memory.Scope 的高级记忆封装策略,支持多用户、 多项目、多资源的分层记忆管理,无需 LLM 直接操作文件路径。
memory-agent command
MemoryAgent 演示带长期记忆的 Agent,使用 FilesystemMiddleware 和 AgentMemoryMiddleware 实现跨会话的用户信息记忆和检索。
MemoryAgent 演示带长期记忆的 Agent,使用 FilesystemMiddleware 和 AgentMemoryMiddleware 实现跨会话的用户信息记忆和检索。
memory-semantic command
MemorySemantic 演示 SemanticMemory 的语义检索能力,使用内存 VectorStore 和 MockEmbedder 实现基础的向量相似度搜索。
MemorySemantic 演示 SemanticMemory 的语义检索能力,使用内存 VectorStore 和 MockEmbedder 实现基础的向量相似度搜索。
memory-semantic-session command
MemorySemanticSession 演示如何将 Session 对话内容保存到 SemanticMemory, 实现跨会话的长期语义记忆和检索能力。
MemorySemanticSession 演示如何将 Session 对话内容保存到 SemanticMemory, 实现跨会话的长期语义记忆和检索能力。
memory-working command
MemoryWorking 演示 Working Memory 的跨会话状态管理功能。
MemoryWorking 演示 Working Memory 的跨会话状态管理功能。
model-fallback command
ModelFallback 演示模型降级策略,当主模型不可用时自动切换到备选模型。
ModelFallback 演示模型降级策略,当主模型不可用时自动切换到备选模型。
openrouter command
OpenRouter 演示如何使用 OpenRouter 作为 LLM Provider,支持多模型切换 和统一的 API 访问方式。
OpenRouter 演示如何使用 OpenRouter 作为 LLM Provider,支持多模型切换 和统一的 API 访问方式。
permission command
Permission 演示权限系统的三种模式:auto_approve、smart_approve 和 always_ask。
Permission 演示权限系统的三种模式:auto_approve、smart_approve 和 always_ask。
plan-explore-ui command
PlanExploreUI 演示一个简单的 Plan/Explore 命令行 UI,使用 TodoWrite、 Task、Read、Grep 等工具分析代码,并通过事件订阅渲染工具调用过程。
PlanExploreUI 演示一个简单的 Plan/Explore 命令行 UI,使用 TodoWrite、 Task、Read、Grep 等工具分析代码,并通过事件订阅渲染工具调用过程。
prompt-builder command
Package main 演示如何使用 Prompt 压缩功能
Package main 演示如何使用 Prompt 压缩功能
ptc/basic command
ptc/local-test command
rag-basic command
RAGBasic 演示最小化的 RAG 检索增强生成示例,使用核心管线、 内存向量库和 MockEmbedder 实现文档入库和语义检索。
RAGBasic 演示最小化的 RAG 检索增强生成示例,使用核心管线、 内存向量库和 MockEmbedder 实现文档入库和语义检索。
reasoning command
Reasoning 演示推理中间件的高级推理能力,支持分步骤的问题分解、 系统化分析和结构化推理输出。
Reasoning 演示推理中间件的高级推理能力,支持分步骤的问题分解、 系统化分析和结构化推理输出。
recipe command
Recipe 演示声明式 Agent 配置系统,通过 YAML 文件定义可复用的 Agent 模板。
Recipe 演示声明式 Agent 配置系统,通过 YAML 文件定义可复用的 Agent 模板。
router command
Router 演示 StaticRouter 的模型路由功能,根据不同的 routing_profile 为 Agent 选择不同的模型配置,如 "quality-first" 或 "cost-first"。
Router 演示 StaticRouter 的模型路由功能,根据不同的 routing_profile 为 Agent 选择不同的模型配置,如 "quality-first" 或 "cost-first"。
sandbox-permission command
Package main demonstrates the Claude Agent SDK style sandbox and permission system.
Package main demonstrates the Claude Agent SDK style sandbox and permission system.
scheduler command
Scheduler 演示任务调度器功能,包括步骤触发、时间间隔触发、步骤监听器、 多任务调度、任务取消和触发回调监控。
Scheduler 演示任务调度器功能,包括步骤触发、时间间隔触发、步骤监听器、 多任务调度、任务取消和触发回调监控。
server-http command
ServerHTTP 演示如何使用 pkg/server 暴露 HTTP Chat 接口,提供 POST /v1/agents/chat 端点用于与 Agent 进行对话交互。
ServerHTTP 演示如何使用 pkg/server 暴露 HTTP Chat 接口,提供 POST /v1/agents/chat 端点用于与 Agent 进行对话交互。
session command
Session 演示会话管理系统,包括分层状态管理、事件溯源、事件过滤和会话列表。
Session 演示会话管理系统,包括分层状态管理、事件溯源、事件过滤和会话列表。
session-enhanced command
SessionEnhanced 演示增强版会话管理功能,包括与 Agent 的深度集成、 会话状态持久化和多轮对话上下文管理。
SessionEnhanced 演示增强版会话管理功能,包括与 Agent 的深度集成、 会话状态持久化和多轮对话上下文管理。
session-mysql command
SessionMySQL 演示 MySQL 8.0+ Session 持久化功能,利用 MySQL 的 JSON 列类型实现会话状态和事件的持久化存储。
SessionMySQL 演示 MySQL 8.0+ Session 持久化功能,利用 MySQL 的 JSON 列类型实现会话状态和事件的持久化存储。
session-postgres command
SessionPostgres 演示 PostgreSQL Session 持久化功能,使用 JSONB 列类型 实现高效的会话状态和事件存储。
SessionPostgres 演示 PostgreSQL Session 持久化功能,使用 JSONB 列类型 实现高效的会话状态和事件存储。
session-sqlite command
Session-SQLite 演示 SQLite 会话存储,适用于桌面应用和单机场景。
Session-SQLite 演示 SQLite 会话存储,适用于桌面应用和单机场景。
simple command
Simple 演示 Aster Agent SDK 的基础组件,包括 EventBus 事件总线、 Sandbox 沙箱执行环境和 JSON Store 持久化存储。
Simple 演示 Aster Agent SDK 的基础组件,包括 EventBus 事件总线、 Sandbox 沙箱执行环境和 JSON Store 持久化存储。
skills command
Skills 演示 Agent 技能系统的使用,支持通过命令行参数配置工作目录和 调试模式。
Skills 演示 Agent 技能系统的使用,支持通过命令行参数配置工作目录和 调试模式。
streaming command
Streaming 演示基于 Go 1.23 iter.Seq2 迭代器的 Agent 流式 API, 包括事件收集、过滤和内存高效的实时处理。
Streaming 演示基于 Go 1.23 iter.Seq2 迭代器的 Agent 流式 API, 包括事件收集、过滤和内存高效的实时处理。
structured-output command
StructuredOutput 演示结构化输出功能,包括 JSON Schema 生成、 类型化解析、字段验证和自定义验证逻辑。
StructuredOutput 演示结构化输出功能,包括 JSON Schema 生成、 类型化解析、字段验证和自定义验证逻辑。
subagent command
Subagent 演示 SubAgentMiddleware 实现的任务委派功能,支持将任务分派给 专业化的子代理如研究员、编码员和审查员等角色。
Subagent 演示 SubAgentMiddleware 实现的任务委派功能,支持将任务分派给 专业化的子代理如研究员、编码员和审查员等角色。
subagent-async command
SubagentAsync 演示 SubAgent 的异步执行模式,支持并行委派任务给多个 专业化子代理并收集结果。
SubagentAsync 演示 SubAgent 的异步执行模式,支持并行委派任务给多个 专业化子代理并收集结果。
telemetry command
Telemetry 演示 OpenTelemetry 集成,包括基础追踪、Agent 执行追踪、 LLM 调用追踪、工具执行追踪和分布式追踪上下文传播。
Telemetry 演示 OpenTelemetry 集成,包括基础追踪、Agent 执行追踪、 LLM 调用追踪、工具执行追踪和分布式追踪上下文传播。
tool-cache command
ToolCache 演示工具执行结果缓存功能,通过缓存耗时工具的输出来提升性能。
ToolCache 演示工具执行结果缓存功能,通过缓存耗时工具的输出来提升性能。
workflow command
Workflow 演示 Aster 工作流引擎,包括顺序步骤执行、步骤间数据传递和 基于流的事件处理。
Workflow 演示 Aster 工作流引擎,包括顺序步骤执行、步骤间数据传递和 基于流的事件处理。
workflow-agents command
WorkflowAgents 演示工作流 Agent 的使用,包括 SequentialAgent 顺序工作流、 ParallelAgent 并行工作流和 LoopAgent 循环工作流等模式。
WorkflowAgents 演示工作流 Agent 的使用,包括 SequentialAgent 顺序工作流、 ParallelAgent 并行工作流和 LoopAgent 循环工作流等模式。
workflow-semantic command
WorkflowSemantic 演示如何在 Workflow Agent 中集成 SemanticMemory, 实现跨步骤的语义记忆共享和上下文感知的工作流执行。
WorkflowSemantic 演示如何在 Workflow Agent 中集成 SemanticMemory, 实现跨步骤的语义记忆共享和上下文感知的工作流执行。
workflow_complete command
WorkflowComplete 演示 Aster Workflow 的完整功能测试,包括基础工作流、 所有步骤类型、嵌套工作流和错误处理等场景。
WorkflowComplete 演示 Aster Workflow 的完整功能测试,包括基础工作流、 所有步骤类型、嵌套工作流和错误处理等场景。
workflow_router command
WorkflowRouter 演示 Router 步骤的流式执行,支持基于输入内容动态选择 执行路径。
WorkflowRouter 演示 Router 步骤的流式执行,支持基于输入内容动态选择 执行路径。
workflow_steps command
WorkflowSteps 演示 Aster Workflow 的所有步骤类型,包括 FunctionStep、 ConditionStep、ParallelStep、LoopStep、RouterStep 等。
WorkflowSteps 演示 Aster Workflow 的所有步骤类型,包括 FunctionStep、 ConditionStep、ParallelStep、LoopStep、RouterStep 等。
pkg
a2a
Package a2a 实现 Agent-to-Agent 通信协议 基于 JSON-RPC 2.0 和 A2A 标准
Package a2a 实现 Agent-to-Agent 通信协议 基于 JSON-RPC 2.0 和 A2A 标准
actor
Package actor 提供轻量级 Actor 模型实现 设计原则:
Package actor 提供轻量级 Actor 模型实现 设计原则:
config
Package config provides cross-platform configuration path management.
Package config provides cross-platform configuration path management.
dashboard
Package dashboard provides observability dashboard functionality for Aster.
Package dashboard provides observability dashboard functionality for Aster.
desktop
Package desktop provides a unified interface for desktop application frameworks.
Package desktop provides a unified interface for desktop application frameworks.
memory/auto
Package auto 提供自动记忆捕获系统 自动从对话和事件中生成记忆,支持 tags 标签系统
Package auto 提供自动记忆捕获系统 自动从对话和事件中生成记忆,支持 tags 标签系统
memory/dialog
Package dialog 提供对话偏好提取功能 从用户对话中自动识别偏好、约束、风格等信息
Package dialog 提供对话偏好提取功能 从用户对话中自动识别偏好、约束、风格等信息
memory/project
Package project 提供项目级别的外部记忆系统 用于存储项目上下文、用户偏好、工作流状态等信息 典型实现:AGENTS.md 文件模式
Package project 提供项目级别的外部记忆系统 用于存储项目上下文、用户偏好、工作流状态等信息 典型实现:AGENTS.md 文件模式
memory/rules
Package rules 提供规则管理系统 支持 Global(全局)和 Project(项目)两个级别的规则
Package rules 提供规则管理系统 支持 Global(全局)和 Project(项目)两个级别的规则
middleware
Package middleware provides the telemetry middleware for OpenTelemetry GenAI Semantic Conventions.
Package middleware provides the telemetry middleware for OpenTelemetry GenAI Semantic Conventions.
permission
Package permission provides enhanced permission system aligned with Claude Agent SDK.
Package permission provides enhanced permission system aligned with Claude Agent SDK.
recipe
Package recipe provides a declarative way to define and share Agent configurations.
Package recipe provides a declarative way to define and share Agent configurations.
run
session/sqlite
Package sqlite provides a SQLite-based implementation of the session.Service interface.
Package sqlite provides a SQLite-based implementation of the session.Service interface.
stream
Package stream 提供泛型流处理能力 支持类型安全的流操作,包括复制、合并和转换
Package stream 提供泛型流处理能力 支持类型安全的流操作,包括复制、合并和转换
telemetry/genai
Package genai provides OpenTelemetry GenAI Semantic Conventions for Aster.
Package genai provides OpenTelemetry GenAI Semantic Conventions for Aster.
types
Package types provides sandbox configuration types aligned with Claude Agent SDK.
Package types provides sandbox configuration types aligned with Claude Agent SDK.

Jump to

Keyboard shortcuts

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