Skip to content

Commit 564635d

Browse files
committed
docs: add veadk-go agent, viking knowledge and web_search tool
1 parent 1ce1662 commit 564635d

File tree

6 files changed

+639
-208
lines changed

6 files changed

+639
-208
lines changed

docs/docs/agent/agent.md

Lines changed: 154 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717

1818
在代码中直接定义智能体是最常见且最灵活的方式。此方法便于动态调整参数、集成外部模块并进行单元测试。您可以创建一个最简单的 Agent,无需额外设置。**Agent 缺省属性将来自环境变量或默认值。**如下代码实现了一个最简化的 Agent 定义与运行:
1919

20-
=== "代码"
20+
=== "python"
2121

2222
```python title="agent.py" linenums="1" hl_lines="5"
2323
import asyncio
@@ -31,6 +31,66 @@
3131
print(response)
3232
```
3333

34+
=== "golang"
35+
36+
```golang title="agent.go" linenums="1" hl_lines="18"
37+
package main
38+
39+
import (
40+
"context"
41+
"fmt"
42+
43+
"github.com/google/uuid"
44+
_ "github.com/volcengine/veadk-go/agent"
45+
veagent "github.com/volcengine/veadk-go/agent/llmagent"
46+
"google.golang.org/adk/agent"
47+
"google.golang.org/adk/runner"
48+
"google.golang.org/adk/session"
49+
"google.golang.org/genai"
50+
)
51+
52+
func main() {
53+
ctx := context.Background()
54+
veAgent, err := veagent.New(&veagent.Config{})
55+
if err != nil {
56+
fmt.Printf("NewVeAgent failed: %v", err)
57+
return
58+
}
59+
60+
appName := "veAgent_app"
61+
userID := "user-1234"
62+
sessionId := fmt.Sprintf("%s-%s", session.KeyPrefixTemp, uuid.NewString())
63+
sessionService := session.InMemoryService()
64+
agentRunner, err := runner.New(runner.Config{
65+
AppName: appName,
66+
Agent: veAgent,
67+
SessionService: sessionService,
68+
})
69+
if err != nil {
70+
fmt.Printf("New runner error:%v", err)
71+
return
72+
}
73+
74+
_, err = sessionService.Create(ctx, &session.CreateRequest{
75+
AppName: appName,
76+
UserID: userID,
77+
SessionID: sessionId,
78+
})
79+
if err != nil {
80+
fmt.Printf("Create session error:%v", err)
81+
return
82+
}
83+
84+
for event, err := range agentRunner.Run(ctx, userID, sessionId, genai.NewContentFromText("你好", genai.RoleUser), agent.RunConfig{StreamingMode: agent.StreamingModeNone}) {
85+
if err != nil {
86+
fmt.Printf("got unexpected error: %v", err)
87+
}
88+
fmt.Printf("got event: %s\n", event.Content.Parts[0].Text)
89+
}
90+
}
91+
```
92+
93+
3494
=== "所需环境变量"
3595

3696
环境变量列表:
@@ -50,34 +110,72 @@
50110

51111
您也可以通过以下方式设置更多 Agent 元数据信息:
52112

53-
```python title="agent.py" linenums="1" hl_lines="4-6"
54-
from veadk import Agent, Runner
113+
=== "python"
114+
115+
```python title="agent.py" linenums="1" hl_lines="4-6"
116+
from veadk import Agent, Runner
117+
118+
root_agent = Agent(
119+
name="life_assistant",
120+
description="生活助手",
121+
instruction="你是一个生活助手,你可以回答用户的问题。",
122+
)
123+
```
124+
125+
=== "golang"
126+
127+
```golang title="agent.go" linenums="1" hl_lines="2-4"
128+
cfg := &veagent.Config{}
129+
cfg.Name = "life_assistant"
130+
cfg.Description = "生活助手"
131+
cfg.Instruction = "你是一个生活助手,你可以回答用户的问题。"
132+
133+
veAgent, err := veagent.New(cfg)
134+
if err != nil {
135+
fmt.Printf("NewVeAgent failed: %v", err)
136+
return
137+
}
138+
```
55139

56-
root_agent = Agent(
57-
name="life_assistant",
58-
description="生活助手",
59-
instruction="你是一个生活助手,你可以回答用户的问题。",
60-
)
61-
```
62140

63141
其中,`name` 代表 Agent 的名称,`description` 是对 Agent 功能的简单描述(在Agent Tree中唯一标识某个Agent),`instruction` 是 Agent 的系统提示词,用于定义其行为和响应风格。
64142

65143
#### 使用不同模型
66144

67145
如果您想使用本地模型或其他提供商的模型,可以在初始化时指定模型相关配置:
68146

69-
```python title="agent.py" linenums="1" hl_lines="4-7"
70-
from veadk import Agent
147+
=== "python"
71148

72-
agent = Agent(
73-
model_provider="...",
74-
model_name="...",
75-
model_api_key="...",
76-
model_api_base="..."
77-
)
78-
```
149+
```python title="agent.py" linenums="1" hl_lines="4-7"
150+
from veadk import Agent
151+
152+
agent = Agent(
153+
model_provider="...",
154+
model_name="...",
155+
model_api_key="...",
156+
model_api_base="..."
157+
)
158+
```
159+
160+
=== "golang"
161+
162+
```golang title="agent.go" linenums="1" hl_lines="2-4"
163+
cfg := &veagent.Config{
164+
ModelName: "...",
165+
ModelAPIBase: "...",
166+
ModelAPIKey: "...",
167+
}
168+
169+
veAgent, err := veagent.New(cfg)
170+
if err != nil {
171+
fmt.Printf("NewVeAgent failed: %v", err)
172+
return
173+
}
174+
```
79175

80-
由于 VeADK 的 Agent 基于 [LiteLLM]() 实现,因此您可以使用 LiteLLM 支持的所有模型提供商。您可以查看 [LiteLLM 支持的模型提供商列表](https://docs.litellm.ai/docs/providers)来设置 `model_provider` 参数。
176+
由于 python VeADK 的 Agent 基于 [LiteLLM]() 实现,因此您可以使用 LiteLLM 支持的所有模型提供商。您可以查看 [LiteLLM 支持的模型提供商列表](https://docs.litellm.ai/docs/providers)来设置 `model_provider` 参数。
177+
178+
golang 暂不支持 LiteLLM,因此 VeADK 的 Agent 基于 OpenAI 实现,因此您可以使用所有支持OpenAI协议的模型。
81179

82180
#### 设置模型客户端
83181

@@ -98,20 +196,46 @@ agent = Agent(model=llm)
98196

99197
此外,您还可以根据[火山引擎方舟大模型平台](https://www.volcengine.com/product/ark)的能力,指定一些[额外选项](https://www.volcengine.com/docs/82379/1494384?lang=zh),例如您可以禁用豆包 1.6 系列模型的思考能力,以实现更加快速的响应:
100198

101-
```python title="agent.py" linenums="1" hl_lines="7"
102-
import asyncio
199+
=== "python"
103200

104-
from veadk import Agent, Runner
201+
```python title="agent.py" linenums="1" hl_lines="7"
202+
import asyncio
203+
204+
from veadk import Agent, Runner
205+
206+
agent = Agent(
207+
model_name="doubao-seed-1.6-250615",
208+
model_extra_config={"extra_body": {"thinking": {"type": "disabled"}}},
209+
)
210+
runner = Runner(agent=agent)
211+
212+
response = asyncio.run(runner.run(messages="hi!"))
213+
print(response)
214+
```
105215

106-
agent = Agent(
107-
model_name="doubao-seed-1.6-250615",
108-
model_extra_config={"extra_body": {"thinking": {"type": "disabled"}}},
109-
)
110-
runner = Runner(agent=agent)
216+
=== "golang"
217+
218+
```golang title="agent.go" linenums="1" hl_lines="6-14"
219+
import (
220+
_ "github.com/volcengine/veadk-go/agent"
221+
veagent "github.com/volcengine/veadk-go/agent/llmagent"
222+
)
223+
224+
veAgent, err := veagent.New(&veagent.Config{
225+
ModelExtraConfig: map[string]any{
226+
"extra_body": map[string]any{
227+
"thinking": map[string]string{
228+
"type": "disabled",
229+
},
230+
},
231+
},
232+
})
233+
if err != nil {
234+
fmt.Printf("NewVeAgent failed: %v", err)
235+
return
236+
}
237+
```
111238

112-
response = asyncio.run(runner.run(messages="hi!"))
113-
print(response)
114-
```
115239

116240
### 通过配置文件
117241

docs/docs/agent/agents.md

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,12 +53,19 @@ graph LR
5353
H --> I["最终回答: 根据北京天气给出穿衣建议"]
5454
```
5555

56-
=== "代码"
56+
=== "python"
5757

5858
```python
5959
--8<-- "examples/agent/agents/llm_agent.py"
6060
```
6161

62+
=== "golang"
63+
64+
```python
65+
--8<-- "examples/agent/agents/llm_agent.go"
66+
```
67+
68+
6269
=== "环境变量"
6370

6471
环境变量列表:

0 commit comments

Comments
 (0)