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
六、下一步学习
推荐学习路径
- 完成快速开始:运行官方示例(本文内容)
- 阅读基础教程:了解核心概念和架构
- 学习工具使用:创建自定义工具
- 探索多 Agent:实现协作工作流
- 集成到项目:将 Agent 集成到你的应用
相关资源
总结
通过本文,你应该已经成功运行了第一个 AI Agent!tRPC-Agent-Go 的快速开始非常简单:
- 克隆项目:git clone
- 配置 API Key:export OPENAI_API_KEY
- 运行示例:go run .
接下来可以:
- 尝试不同的示例(tools、multi-agent、graph、memory)
- 创建自己的 Agent
- 添加自定义工具
- 集成到实际项目中
开始你的 AI Agent 之旅吧!🚀
提示:遇到问题?查看 GitHub Issues 或加入官方社区讨论。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。






