戈金sdk
 
Go框架用于构建具有工具使用、多代理编排、规划和反射的AI代理。支持 双子座, 开放人工智能, 人类学(克劳德),以及 奥拉玛 作为LLM提供者。
特性
- 多供应商 --具有统一界面的Gemini、OpenAI、Anthropic和Ollama
- 工具使用 --29个内置工具(bash、文件I/O、git、grep、网络搜索等)
- 多代理 --并行和顺序代理执行的运行器/协调器
- 规划 --复杂任务分解的波束搜索、MCTS和A\*策略
- 反思 --通过反射中间件实现自校正代理
- 智能路由 --具有策略学习的自适应任务路由
- MCP支持 --外部工具服务器的模型上下文协议
- 会话 --具有自动保存功能的持久对话状态
- 安全 --命令沙盒、路径验证、权限系统
安装
go get github.com/ginkida/gokin-sdk需要Go 1.23或更高版本。
快速开始
package main
import (
"context"
"fmt"
"os"
sdk "github.com/ginkida/gokin-sdk"
"github.com/ginkida/gokin-sdk/provider/gemini"
"github.com/ginkida/gokin-sdk/tools"
)
func main() {
ctx := context.Background()
client, err := gemini.New(ctx, os.Getenv("GEMINI_API_KEY"), "gemini-2.0-flash")
if err != nil {
panic(err)
}
defer client.Close()
workDir, _ := os.Getwd()
registry := sdk.NewRegistry()
registry.MustRegister(tools.NewBash(workDir))
registry.MustRegister(tools.NewRead())
registry.MustRegister(tools.NewGlob(workDir))
registry.MustRegister(tools.NewGrep(workDir))
agent, err := sdk.NewAgent("assistant", client, registry,
sdk.WithSystemPrompt("You are a helpful coding assistant."),
sdk.WithMaxTurns(20),
sdk.WithOnText(func(text string) {
fmt.Print(text)
}),
)
if err != nil {
panic(err)
}
result, err := agent.Run(ctx, "Find all Go files and count lines of code")
if err != nil {
panic(err)
}
fmt.Printf("\nDone in %d turns\n", result.Turns)
}提供商示例
双子座
client, err := gemini.New(ctx, os.Getenv("GEMINI_API_KEY"), "gemini-2.0-flash")开放人工智能
client, err := openai.New(os.Getenv("OPENAI_API_KEY"), "gpt-4o")与任何兼容OpenAI的API(vLLM、LM Studio、Together AI、Groq)配合使用:
client, err := openai.New(apiKey, "model-name", openai.WithBaseURL("http://localhost:8000"))人类学(克劳德)
client, err := anthropic.New(os.Getenv("ANTHROPIC_API_KEY"), "claude-sonnet-4-5-20250929")Ollama(当地)
client, err := ollama.New("http://localhost:11434", "llama3")多代理执行
runner := sdk.NewRunner(client, registry,
sdk.WithRunnerMaxTurns(10),
)
coordinator := sdk.NewCoordinator(runner, 3) // max 3 parallel agents
results, err := coordinator.RunParallel(ctx, []sdk.AgentTask{
{Prompt: "Count Go files", Type: sdk.AgentTypeBash, Description: "Count files"},
{Prompt: "Find TODO comments", Type: sdk.AgentTypeExplore, Description: "Find TODOs"},
})内置工具
| 类别 | 工具 |
|---|---|
| 文件I/O | read, write, edit, glob, grep, delete, move, copy, mkdir, list_dir, tree, diff |
| 执行 | bash, run_tests, batch |
| Git | git, git_branch, git_pr |
| 搜索 | web_fetch, web_search, semantic_search |
| 代理 | ask_user, ask_agent, task, task_output, task_stop, coordinate |
| 规划 | plan_mode, shared_memory |
项目结构
gokin-sdk/
├── provider/ # LLM providers (gemini, openai, anthropic, ollama)
├── tools/ # Built-in tool implementations
├── plan/ # Planning engine (beam, MCTS, A*)
├── context/ # Context management and summarization
├── config/ # Configuration and loading
├── security/ # Sandboxing and validation
├── permission/ # Permission system
├── mcp/ # Model Context Protocol client
├── memory/ # Error store, project learning
├── tasks/ # Background task management
├── audit/ # Audit logging
├── session.go # Session persistence
├── middleware.go # Reflector and middleware
├── pool.go # Client connection pool
├── examples/ # Usage examples
│ ├── simple/ # Basic agent
│ ├── openai/ # OpenAI / compatible APIs
│ ├── anthropic/ # Anthropic provider
│ ├── multi_agent/ # Parallel agents
│ ├── planner/ # Plan-driven execution
│ ├── smart_router/ # Adaptive routing
│ ├── mcp/ # MCP integration
│ └── session/ # Session persistence
└── ...例子
请参阅 examples/ 可运行演示的目录:
- 简单 --Gemini的基本代理
- 开放人工智能 --OpenAI和兼容的API(vLLM、Groq等)
- 人类 --使用Claude作为提供者
- 多代理 --并行任务执行
- 规划器 --具有波束搜索的计划驱动代理
- 智能外层 --自适应任务路由
- 主控程序 --通过MCP的外部工具服务器
- 会话 --持续的对话
许可证
麻省理工学院
