Skip to content

Commit 805c9da

Browse files
authored
Merge branch 'main' into feat/responses_api_2
2 parents 8f08e5a + bf7a9fa commit 805c9da

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

65 files changed

+4284
-570
lines changed

.gitleaks.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,4 +73,4 @@ description = "Empty environment variables with KEY pattern"
7373
regex = '''os\.environ\[".*?KEY"\]\s*=\s*".+"'''
7474

7575
[allowlist]
76-
paths = ["requirements.txt", "tests"]
76+
paths = ["requirements.txt", "tests", "veadk/realtime/client.py", "veadk/realtime/live.py"]

config.yaml.full

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,11 @@ database:
142142
mem0:
143143
base_url: # default "https://api.mem0.ai/v1", using full https url including port
144144
api_key: #api_key
145+
tos_vector:
146+
endpoint: tosvectors-cn-beijing.volces.com # default Volcengine TOS Vector endpoint
147+
region: cn-beijing # default Volcengine TOS Vector region
148+
bucket:
149+
account_id:
145150

146151

147152

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
环境变量列表:

docs/docs/agent/prompt.md

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
# Prompt 管理
2+
3+
在实际生产过程中,Prompt 需要进行版本管理与动态下发,VeADK 提供了 Prompt 管理模块,用户可以通过 Prompt 管理功能来进行 Prompt 的模板化与热更新,在运行时动态切换 Prompt 版本。
4+
5+
## CozeLoop 提示词管理
6+
7+
在使用 CozeLoop 进行提示词管理前,您需要安装 Python 版本的 `cozeloop` SDK:
8+
9+
```bash
10+
pip install cozeloop
11+
```
12+
13+
您可以通过 CozeLoop 云端提示词管理功能来对接您的 Agent 系统提示词。例如:
14+
15+
```python title="agent.py" linenums="1" hl_lines="4 6-11 13"
16+
import asyncio
17+
18+
from veadk import Agent, Runner
19+
from veadk.prompts.prompt_manager import CozeloopPromptManager
20+
21+
prompt_manager = CozeloopPromptManager(
22+
cozeloop_workspace_id="", # CozeLoop workspace ID
23+
cozeloop_token="", # CozeLoop token
24+
prompt_key="", # CozeLoop 中创建的 Prompt Key
25+
label="production", # CozeLoop 中创建的 Prompt 标签
26+
)
27+
28+
agent = Agent(name="test_prompt_mgr", prompt_manager=prompt_manager)
29+
30+
runner = Runner(agent=agent)
31+
32+
response = asyncio.run(runner.run(messages="你的任务是什么?"))
33+
print(response)
34+
```
35+
36+
!!! note "提示"
37+
CozeLoop 会在本地进行 Prompt 缓存,**更新时间为 1 分钟**。当获取 Prompt 失败时,会返回 VeADK 默认的 Agent 系统提示词。
38+
39+
您可以在日志中看到,每次处理用户请求之前,都会执行 `CozeloopPromptManager` 中的 `get_prompt` 方法,来获取最新的 Prompt 模板内容。效果如下:
40+
41+
![img](../assets/images/agents/cozeloop_prompt_mgr.png)
42+
43+
更加详细的说明,请参考 [CozeLoop 提示词管理](https://loop.coze.cn/open/docs/cozeloop/what-is-prompt)
44+
45+
## 实现您自己的 Prompt Manager
46+
47+
若您想实现更高阶的 Prompt 模板或变量组合,您可以继承 `PromptManager` 类,实现自定义的 Prompt 管理逻辑。
48+
49+
在实现自定义 Prompt Manager 时,您需要实现 `get_prompt` 方法,该方法会在每次处理用户请求之前被调用,用于获取最新的 Prompt 模板内容。
232 KB
Loading
166 KB
Loading
361 KB
Loading
1.87 MB
Loading

docs/docs/auth/api-key-outbound.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -86,8 +86,8 @@ A: 实现错误处理和重试逻辑。
8686

8787
## 相关资源
8888

89-
- [Agent Identity 产品介绍](./1.agent-identity-intro.md)
90-
- [OAuth2 M2M 认证](./3.oauth2-m2m-outbound.md)
91-
- [OAuth2 USER_FEDERATION 认证](./4.oauth2-user-federation-outbound.md)
92-
- [Trusted MCP 认证](./trusted-mcp-outbound.md)
89+
- [Agent Identity 产品介绍](https://www.volcengine.com/docs/86848/2080920?lang=zh)
90+
- [API Key 认证](https://volcengine.github.io/veadk-python/auth/api-key-outbound/)
91+
- [OAuth2 USER_FEDERATION 认证](https://volcengine.github.io/veadk-python/auth/oauth2-user-federation-outbound/)
92+
- [Trusted MCP 认证](https://volcengine.github.io/veadk-python/auth/trusted-mcp-outbound/)
9393
- [Agent Identity API 参考](https://www.volcengine.com/docs/86848/1918752)

0 commit comments

Comments
 (0)