Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

sath AI Agent 框架(V0.1 MVP)

轻量级、可扩展的 Go 语言 AI Agent 开发框架原型,实现了最小可用的:

  • 统一模型接口与 OpenAI 文本对话适配器
  • 默认对话 Agent(短期记忆 BufferMemory)
  • 中间件链(日志 + panic 恢复)
  • 配置加载(环境变量)
  • 工具注册与简单 Function Calling 示例

当前为 V0.1 MVP 骨架,主要目标是“能跑起来、能集成、易扩展”,高级特性(多厂商、多模态、RAG、完整可观察性、插件系统等)将在后续版本迭代。


快速开始(对话 Demo)

1. 前置条件

  • Go 1.20+
  • 有效的 OpenAI API Key

2. 克隆与构建

git clone <your-repo-url> sath
cd sath
go build ./...

3. 运行对话 Demo(REPL)

方式一:使用 CLI(推荐)

# 构建 CLI
go build -o sath ./cmd/sath

# Windows PowerShell
$env:OPENAI_API_KEY="your-key"
.\sath demo

# 或 Linux/macOS
export OPENAI_API_KEY="your-key"
./sath demo

方式二:直接运行 demo 包

cd cmd/demo

# Windows PowerShell
$env:OPENAI_API_KEY="your-key"

# 或 Linux/macOS
export OPENAI_API_KEY="your-key"

go run .

终端示例:

AI Agent demo started. Type 'exit' to quit.
> 你好,你是谁?
...(模型回复)...

工具调用 Demo(Function Calling + 本地工具)

V0.1 提供了一个最小示例:通过 OpenAI Function Calling 调用本地注册的 calculator_add 工具完成加法运算。

运行示例

cd cmd/tool_demo

# 确保已经设置 OPENAI_API_KEY
go run .

预期输出类似:

calculator_add result: 4

实际输出取决于模型是否选择调用工具以及 JSON 解析结果。


目录结构概览(V0.1)

agent/        默认对话 Agent 接口与实现(ChatAgent)
model/        模型接口、OpenAI 适配器、Function Calling 桥接
memory/       会话短期记忆接口与 BufferMemory 实现
middleware/   中间件抽象与日志/恢复中间件
tool/         工具定义、注册表与示例工具(calculator_add)
config/       核心配置结构与环境变量加载
cmd/demo/     文本对话 REPL 示例
cmd/tool_demo/工具调用示例

设计原则(简要)

  • 开箱即用:仅配置 OPENAI_API_KEY 即可运行对话 Demo。
  • 接口优先Model / Agent / Memory / Tool / Middleware 统一抽象,便于后续扩展。
  • 可扩展性:各组件通过接口与 Option 模式解耦,可替换实现(如自定义模型、记忆、工具、中间件)。
  • 可观察性雏形:结构化日志 + panic 恢复,为后续接入 Prometheus / OpenTelemetry 预留空间。

CLI 工具(sath)

命令 说明
sath init 在当前目录初始化新项目骨架(main.go + config.yaml)
sath demo 运行内置对话 Agent 示例(REPL)
sath serve 启动 HTTP 服务,提供 POST /chatGET /metrics

示例:sath init -d myappmyapp/ 下生成骨架;sath serve -a :8080 监听 8080 端口。


Roadmap 与版本策略

Roadmap

在当前骨架基础上,后续版本计划逐步引入:

  • 多模型与多厂商支持(OpenAI、Claude、通义、文心等)
  • 多模态能力(文本 + 图片等)
  • RAG 与长期向量记忆
  • 完整可观察性(指标、追踪、健康检查)
  • 插件系统与事件钩子

版本策略

本项目采用语义化版本(Semantic Versioning,如 v0.1.0v1.0.0):

  • 主版本号:不兼容的 API 或行为变更
  • 次版本号:向后兼容的功能新增
  • 修订号:向后兼容的问题修复

在达到 1.0 之前,0.x 版本可能仍有接口微调,但会尽量保持可迁移性。


社区与贡献

欢迎在此基础上继续演进,或根据你的业务场景扩展自定义组件。

About

No description, website, or topics provided.

Resources

Code of conduct

Contributing

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages