tRPC-Agent-Go 快速上手 - 5 分钟运行你的第一个 AI Agent

前言

上一篇我们详细介绍了 tRPC-Agent-Go 的各项功能,但很多读者反馈想要一个更快速的上手指南。本文专注于5 分钟内运行你的第一个 AI Agent,从零开始,快速体验 tRPC-Agent-Go 的强大功能!

项目地址https://github.com/trpc-group/trpc-agent-go

一、快速开始(3 步搞定)

步骤 1:克隆项目

# 克隆项目
git clone https://github.com/trpc-group/trpc-agent-go.git
cd trpc-agent-go

# 查看项目结构
ls -la
# examples/     # 示例代码
# core/         # 核心库
# docs/         # 文档
# go.mod        # Go 模块文件

步骤 2:配置 LLM API Key

# 配置 OpenAI API Key
export OPENAI_API_KEY="your-api-key-here"

# 可选:配置自定义 Base URL(使用国内镜像)
export OPENAI_BASE_URL="https://api.openai.com/v1"

# 或者使用其他模型提供商
# export ANTHROPIC_API_KEY="your-anthropic-key"
# export AZURE_OPENAI_API_KEY="your-azure-key"

国内用户推荐配置

# 使用阿里云通义千问
export DASHSCOPE_API_KEY="sk-your-dashscope-key"
export OPENAI_BASE_URL="https://dashscope.aliyuncs.com/compatible-mode/v1"

# 使用智谱 AI
export ZHIPU_API_KEY="your-zhipu-key"
export OPENAI_BASE_URL="https://open.bigmodel.cn/api/paas/v4"

# 使用 DeepSeek
export DEEPSEEK_API_KEY="your-deepseek-key"
export OPENAI_BASE_URL="https://api.deepseek.com"

步骤 3:运行第一个 Agent!

# 进入示例目录
cd examples/runner

# 运行示例
go run . -model="gpt-4o-mini" -streaming=true

# 输入你的问题
> 你好,请介绍一下自己

预期输出

你好!我是 tRPC-Agent-Go 助手,一个基于大型语言模型的智能代理系统。

我可以帮助你:
- 回答各种问题
- 执行工具调用
- 进行多轮对话
- 完成复杂任务

有什么我可以帮助你的吗?

二、更多示例

示例 1:使用工具

# 运行带工具的示例
cd examples/tools
go run .

# 尝试让 Agent 使用工具
> 请计算 123 * 456 + 789
> 请帮我搜索最新的 AI 新闻

示例 2:多 Agent 协作

# 运行多 Agent 示例
cd examples/multi-agent
go run .

# 多 Agent 会协作完成任务
> 请分析这个销售数据并生成报告

示例 3:GraphAgent 图工作流

# 运行图工作流示例
cd examples/graph
go run .

# 体验条件路由和复杂工作流
> 帮我完成这个复杂任务

示例 4:记忆系统

# 运行记忆示例
cd examples/memory
go run .

# 测试跨会话记忆
> 我叫小明,喜欢编程
> (下一轮对话)
> 我叫什么名字?我喜欢什么?

三、自定义你的 Agent

创建简单的 Agent

创建文件 my-first-agent/main.go

package main

import (
    "bufio"
    "context"
    "fmt"
    "os"
    
    "trpc.group/trpc-go/trpc-agent-go/agent"
    "trpc.group/trpc-go/trpc-agent-go/llm"
    "trpc.group/trpc-go/trpc-agent-go/model"
    "trpc.group/trpc-go/trpc-agent-go/runner"
)

func main() {
    ctx := context.Background()
    
    // 创建模型
    mdl := llm.NewOpenAIModel("gpt-4o-mini", nil)
    
    // 创建 Agent
    agt := llmagent.New("my-assistant",
        llmagent.WithModel(mdl),
        llmagent.WithSystemPrompt("你是一个友好的 AI 助手,用中文回答。"),
    )
    
    // 创建 Runner
    r := runner.NewRunner("app", agt)
    
    // 交互式对话
    scanner := bufio.NewScanner(os.Stdin)
    fmt.Println("🤖 Agent 已就绪!输入 'quit' 退出")
    
    for {
        fmt.Print("> ")
        if !scanner.Scan() {
            break
        }
        
        input := scanner.Text()
        if input == "quit" {
            break
        }
        
        // 运行 Agent
        events, err := r.Run(ctx, "user-1", "session-1",
            model.NewUserMessage(input))
        if err != nil {
            fmt.Printf("错误:%v
", err)
            continue
        }
        
        // 处理事件流
        for event := range events {
            if event.Type == "message" {
                fmt.Printf("🤖 %s
", event.Data)
            }
        }
    }
}

运行你的 Agent

cd my-first-agent
go mod init my-first-agent
go get trpc.group/trpc-go/trpc-agent-go

go run .

# 开始对话
> 你好
> 今天天气怎么样?
> 推荐几本编程书籍

四、添加自定义工具

创建文件 my-agent-with-tools/main.go

package main

import (
    "context"
    "fmt"
    
    "trpc.group/trpc-go/trpc-agent-go/function"
    "trpc.group/trpc-go/trpc-agent-go/llm"
    "trpc.group/trpc-go/trpc-agent-go/model"
    "trpc.group/trpc-go/trpc-agent-go/runner"
)

// 定义天气查询函数
func getWeather(city string) (string, error) {
    // 实际应用中调用天气 API
    weatherData := map[string]string{
        "北京": "晴,25°C",
        "上海": "多云,28°C",
        "深圳": "小雨,26°C",
        "广州": "晴,30°C",
    }
    
    if weather, ok := weatherData[city]; ok {
        return weather, nil
    }
    return fmt.Sprintf("%s 天气晴朗,温度约 25°C", city), nil
}

// 定义计算器函数
func calculate(a, b float64, op string) (float64, error) {
    switch op {
    case "add":
        return a + b, nil
    case "subtract":
        return a - b, nil
    case "multiply":
        return a * b, nil
    case "divide":
        if b == 0 {
            return 0, fmt.Errorf("除数不能为零")
        }
        return a / b, nil
    default:
        return 0, fmt.Errorf("未知操作:%s", op)
    }
}

func main() {
    ctx := context.Background()
    
    // 创建工具
    weatherTool := function.NewFunctionTool(
        getWeather,
        function.WithName("get_weather"),
        function.WithDescription("查询指定城市的天气"),
    )
    
    calcTool := function.NewFunctionTool(
        calculate,
        function.WithName("calculator"),
        function.WithDescription("执行数学运算"),
    )
    
    // 创建模型
    mdl := llm.NewOpenAIModel("gpt-4o-mini", nil)
    
    // 创建带工具的 Agent
    agt := llmagent.New("tool-assistant",
        llmagent.WithModel(mdl),
        llmagent.WithTools([]tool.Tool{weatherTool, calcTool}),
        llmagent.WithSystemPrompt("你是一个有用的助手,可以查询天气和计算数学题。"),
    )
    
    // 创建 Runner
    r := runner.NewRunner("app", agt)
    
    // 测试天气查询
    fmt.Println("测试天气查询...")
    events, _ := r.Run(ctx, "user-1", "session-1",
        model.NewUserMessage("北京天气怎么样?"))
    
    for event := range events {
        if event.Type == "message" {
            fmt.Printf("🤖 %s
", event.Data)
        }
    }
    
    // 测试计算器
    fmt.Println("
测试计算器...")
    events, _ = r.Run(ctx, "user-1", "session-1",
        model.NewUserMessage("请计算 123 * 456 + 789"))
    
    for event := range events {
        if event.Type == "message" {
            fmt.Printf("🤖 %s
", event.Data)
        }
    }
}

五、常见问题

Q1: 安装失败怎么办?

# 确保 Go 版本 >= 1.21
go version

# 如果版本过低,下载最新版本
# https://go.dev/dl/

# 清理 Go 模块缓存
go clean -modcache

# 重新安装
go get trpc.group/trpc-go/trpc-agent-go

Q2: API Key 配置不生效?

# 检查环境变量是否设置成功
echo $OPENAI_API_KEY

# 如果为空,重新设置
export OPENAI_API_KEY="your-key-here"

# 或者在 .bashrc 或 .zshrc 中添加
echo 'export OPENAI_API_KEY="your-key-here"' >> ~/.bashrc
source ~/.bashrc

Q3: 网络连接超时?

# 使用国内镜像
export OPENAI_BASE_URL="https://dashscope.aliyuncs.com/compatible-mode/v1"
export DASHSCOPE_API_KEY="your-dashscope-key"

# 或者使用代理
export HTTP_PROXY="http://proxy.example.com:8080"
export HTTPS_PROXY="http://proxy.example.com:8080"

Q4: 如何查看详细的运行日志?

# 启用调试模式
export TRPC_DEBUG=true

# 运行示例
go run . -model="gpt-4o-mini" -streaming=true -verbose

六、下一步学习

推荐学习路径

  1. 完成快速开始:运行官方示例(本文内容)
  2. 阅读基础教程:了解核心概念和架构
  3. 学习工具使用:创建自定义工具
  4. 探索多 Agent:实现协作工作流
  5. 集成到项目:将 Agent 集成到你的应用

相关资源

总结

通过本文,你应该已经成功运行了第一个 AI Agent!tRPC-Agent-Go 的快速开始非常简单:

  1. 克隆项目:git clone
  2. 配置 API Key:export OPENAI_API_KEY
  3. 运行示例:go run .

接下来可以:

  • 尝试不同的示例(tools、multi-agent、graph、memory)
  • 创建自己的 Agent
  • 添加自定义工具
  • 集成到实际项目中

开始你的 AI Agent 之旅吧!🚀


提示:遇到问题?查看 GitHub Issues 或加入官方社区讨论。

发表回复

后才能评论