A comprehensive intelligence framework for Go. Seamlessly combining Vector RAG, GraphRAG, MCP Tools, Skills, and Semantic Intent Routing.
High-performance vector search powered by CortexDB. Supports file/vector/hybrid memory modes with automatic document ingestion.
Native MCP server support with Claude-compatible Markdown skills for complex task execution and tool calling.
Multi-agent teams coordinated by a Captain. LongRun for continuous autonomous agents with heartbeat scheduling.
Semantic router for lightning-fast intent recognition and precise tool dispatching.
Programmatic Tool Calling in sandbox. Agent-to-Agent protocol for distributed multi-agent systems.
Hierarchical memory with session scope. Supports fact/pattern/context/preference types with automatic reflection.
# Build CLI
go build -o agentgo-cli ./cmd/agentgo-cli
# RAG operations
./agentgo-cli rag ingest ./my-docs # Ingest documents
./agentgo-cli rag query "How does it work?" # Query RAG
./agentgo-cli rag list # List documents
# Agent operations
./agentgo-cli agent run "analyze logs" # Run agent
./agentgo-cli agent plan create "goal" # Create plan
./agentgo-cli agent execute [plan-id] # Execute plan
./agentgo-cli agent ptc-chat [message] # PTC chat
# MCP & Skills
./agentgo-cli mcp status # MCP status
./agentgo-cli mcp chat [message] # MCP chat
./agentgo-cli skills list # List skills
./agentgo-cli skills run [skill-id] # Run skill
# Other
./agentgo-cli status # Show status
package main
import "github.com/liliang-cn/agent-go/v2/pkg/agent"
func main() {
svc, err := agent.New("my-agent").
WithRAG().
WithMemory().
WithMCP("/path/to/mcpServers.json").
WithSkills("/path/to/skills").
WithDebug().
Build()
if err != nil {
panic(err)
}
result, err := svc.Run(ctx, "Your question")
println(result.Text())
}
package main
import "github.com/liliang-cn/agent-go/v2/pkg/agent"
func main() {
mgr, err := agent.NewTeam("~/.agentgo/data/agentgo.db").
WithAgentName("MyApp").
WithTeamName("Dev Team").
Build()
// Built-in agents: Captain, Assistant, Concierge, Operator, Archivist
task, err := mgr.EnqueueSharedTask(ctx,
"Captain",
[]string{"Assistant", "Operator"},
"Implement user authentication",
)
status := mgr.GetTaskStatus(task.ID)
}
package main
import "github.com/liliang-cn/agent-go/v2/pkg/agent"
func main() {
// Build agent first
svc, err := agent.New("worker").
WithMemory().
WithRAG().
Build()
// Create LongRun
longrun, err := agent.NewLongRun(svc).
WithInterval(30 * time.Second).
WithWorkDir("/data/longrun").
WithMaxActions(100).
WithApproval(true).
Build()
longrun.Start(ctx)
longrun.AddTask(ctx, "Check system health", nil)
}
package main
import "github.com/liliang-cn/agent-go/v2/pkg/rag"
func main() {
client := rag.NewClient(cfg)
// Ingest documents
err := client.Ingest(ctx, &domain.IngestRequest{
FilePath: "/path/to/doc.pdf",
})
// Query
resp, err := client.Query(ctx, &domain.QueryRequest{
Query: "Your question",
TopK: 5,
Temperature: 0.7,
})
println(resp.Answer)
}