介绍

概述

Aster · 星尘云枢 - 让每一个 Agent 都能在生产环境中闪耀

概述

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

Aster · 星尘云枢 是一个用 Go 语言编写的企业级 AI Agent 开发框架

核心理念

就像星尘汇聚形成璀璨的枢纽,Aster 将以下能力完美融合:

  • Python、TypeScript、Bash 原生执行 - 多语言脚本的无缝集成
  • 事件驱动架构 - 高性能的异步处理机制
  • 企业级安全治理 - 生产环境的可靠保障

Go 的高性能基底,脚本的灵活编排,为生产环境而生

为什么需要 Aster?

aster 是一个为生产环境设计的 Go语言AI Agent开发框架。它提供了企业级的Agent运行时,支持事件驱动、云端沙箱、安全可控等特性。

🎯 设计目标

aster的设计遵循以下核心原则:

1. 生产就绪

  • 高性能并发:基于Go goroutine,支持100+并发Agent
  • 云端沙箱:原生支持阿里云、火山引擎等云平台
  • 断点恢复:7段断点机制,会话中断后可无缝恢复
  • 可观测性:完整的事件审计、Token统计、工具执行追踪

2. 架构清晰

  • 事件驱动:Progress/Control/Monitor三通道分离关注点
  • 洋葱模型:中间件栈实现功能的清晰分层
  • 依赖注入:便于测试和扩展的组件化设计
  • 接口优先:灵活的抽象层设计

3. 安全可控

  • 沙箱隔离:所有代码执行在受限环境
  • 权限策略:工具级别的allow/deny/ask配置
  • Hook系统:生命周期拦截和审计
  • 审计日志:完整的操作记录

✨ 核心特性

🎯 事件驱动架构

aster采用三通道事件系统,清晰分离不同类型的数据流:

  • Progress通道:流式输出、工具执行进度
  • Control通道:工具审批请求、人机交互
  • Monitor通道:治理事件、错误、审计日志
// 订阅不同通道
eventCh := ag.Subscribe([]types.AgentChannel{
    types.ChannelProgress,  // UI展示
    types.ChannelMonitor,   // 监控告警
}, nil)

for envelope := range eventCh {
    switch e := envelope.Event.(type) {
    case *types.ProgressTextChunkEvent:
        // 处理流式文本
    case *types.MonitorErrorEvent:
        // 处理错误事件
    }
}

🧅 洋葱模型中间件

基于洋葱模型的中间件栈,支持请求和响应的双向拦截:

// 启用内置中间件
ag, err := agent.Create(ctx, &types.AgentConfig{
    Middlewares: []string{
        "filesystem",     // 文件系统操作
        "subagent",       // 子Agent委派
        "summarization",  // 自动总结
    },
}, deps)

中间件特性:

  • 优先级控制:数值越大越外层
  • 双向拦截:WrapModelCall + WrapToolCall
  • 状态隔离:每个中间件独立管理状态
  • 易于扩展:实现接口即可自定义

🛡️ 云端沙箱执行

支持多种沙箱后端,确保代码执行安全:

沙箱类型使用场景特点
LocalSandbox开发测试快速迭代,本地Docker
AliyunSandbox生产环境阿里云AgentBay,高安全
VolcengineSandbox生产环境火山引擎,高性能
MockSandbox单元测试模拟执行,无副作用
ag, err := agent.Create(ctx, &types.AgentConfig{
    Sandbox: &types.SandboxConfig{
        Kind:    types.SandboxKindAliyun,
        WorkDir: "/workspace",
    },
}, deps)

🔌 多模型支持

统一的Provider接口,支持主流大模型:

  • Anthropic:Claude系列(Sonnet/Opus)
  • OpenAI:GPT-4/GPT-3.5
  • DeepSeek:DeepSeek-V2
  • GLM:智谱AI
// 轻松切换模型
ag, err := agent.Create(ctx, &types.AgentConfig{
    ModelConfig: &types.ModelConfig{
        Provider: "anthropic",  // 或 "openai", "deepseek", "glm"
        Model:    "claude-sonnet-4-5",
        APIKey:   os.Getenv("ANTHROPIC_API_KEY"),
    },
}, deps)

🛠️ 丰富的工具生态

内置工具覆盖常见场景:

  • 文件系统Read, Write, Edit, Ls, Glob, Grep
  • 命令执行Bash
  • 任务管理todo_list, todo_add, todo_update
  • 网络请求http_fetch, WebSearch
  • 子Agenttask(通过SubAgentMiddleware)

同时支持:

  • MCP协议:集成第三方MCP Server
  • 自定义工具:实现Tool接口即可扩展

👥 多Agent协作

支持两种协作模式:

1. Agent Pool:Agent池管理

pool := pool.NewPool()
pool.AddAgent("agent-1", ag1)
pool.AddAgent("agent-2", ag2)

// 路由消息到特定Agent
pool.RouteMessage("agent-1", message)

2. Agent Room:多Agent协作空间

room := room.NewRoom("project-room")
room.AddMember("architect", architectAgent)
room.AddMember("coder", coderAgent)

// 广播消息到所有Agent
room.Broadcast(message)

Scheduler:智能任务分发

scheduler := scheduler.NewScheduler(pool)
scheduler.Schedule(task, strategy)  // Round-robin/Random/Priority

🏗️ 架构概览

aster采用三层架构:

第一层:Agent层

  • 中间件栈:按优先级组织的洋葱模型
  • Provider:大模型调用
  • 工具执行器:工具调用和结果处理

第二层:Backend层

  • StateBackend:临时内存存储
  • StoreBackend:持久化存储
  • FilesystemBackend:真实文件系统操作
  • VectorBackend:向量存储与语义记忆(可选)

第三层:基础设施层

  • Sandbox:代码执行环境
  • Scheduler:任务调度
  • Permission:权限控制

🚀 使用场景

aster适用于以下场景:

1. 企业级Agent应用

  • 客户服务机器人
  • 智能文档处理
  • 自动化运维工具
  • 数据分析助手

2. 多Agent系统

  • 软件开发协作(架构师+程序员+测试)
  • 研究分析团队(数据收集+分析+报告)
  • 工作流自动化

3. 安全敏感场景

  • 金融行业应用
  • 医疗健康领域
  • 政务系统集成

📊 性能指标

  • 并发能力:支持100+并发Agent
  • 响应延迟:毫秒级事件分发
  • 内存占用:单Agent约10-50MB
  • 扩展性:水平扩展支持

🔄 版本状态

当前版本:Alpha

  • ✅ 核心功能完整
  • ✅ 生产可用的沙箱集成
  • ✅ 完善的中间件系统
  • ✅ 多Provider支持
  • 🚧 API可能有微调
  • 🚧 文档持续完善中

📚 下一步

🤝 社区