@@ -18,7 +18,7 @@ navigation:
1818我们将借助 Google ADK 的工具函数来便捷地创建一个 A2A Server:
1919
2020``` python [server_agent.py]
21- from google.adk .a2a.utils.agent_to_a2a import to_a2a
21+ from veadk .a2a.utils.agent_to_a2a import to_a2a
2222from veadk import Agent
2323from veadk.tools.demo_tools import get_city_weather
2424
@@ -27,6 +27,10 @@ agent = Agent(name="weather_reporter", tools=[get_city_weather])
2727app = to_a2a(agent)
2828```
2929
30+ :: callout { icon =" i-lucide-info " }
31+ 默认情况下,A2A Server 不启用认证功能。如果需要启用 VeADK 的认证和凭据管理功能,请参考下面的 [ 启用认证功能] ( #启用认证功能 ) 章节。
32+ ::
33+
3034### 本地启动 A2A Server
3135
3236``` bash [Terminal]
@@ -51,8 +55,51 @@ print(response) # 北京天气晴朗,气温25°C。
5155
5256::
5357
58+ ## 启用认证功能
59+
60+ VeADK 提供了内置的认证和凭据管理功能,可以在 A2A Server 和 Client 之间进行安全的身份验证和凭据传递。
61+
62+ ### Server 侧启用认证
63+
64+ 在创建 A2A Server 时,通过设置 ` enable_auth=True ` 来启用认证功能:
65+
66+ ``` python [server_agent.py]
67+ from veadk.a2a.utils.agent_to_a2a import to_a2a
68+ from veadk import Agent
69+ from veadk.tools.demo_tools import get_city_weather
70+
71+ agent = Agent(name = " weather_reporter" , tools = [get_city_weather])
72+
73+ # 启用 VeADK 认证功能
74+ app = to_a2a(agent, enable_auth = True )
75+ ```
76+
77+ 启用认证后,Server 会:
78+ - 自动创建 ` VeCredentialService ` 来管理凭据
79+ - 添加认证中间件来验证请求中的 token
80+ - 支持凭据在 Server 和 Client 之间的安全传递
81+
82+ ### 认证方式
83+
84+ ` to_a2a ` 支持两种认证方式,通过 ` auth_method ` 参数指定:
85+
86+ ``` python
87+ # 方式 1: 从 HTTP Header 中提取 token (默认)
88+ app = to_a2a(agent, enable_auth = True , auth_method = " header" )
89+
90+ # 方式 2: 从 Query String 中提取 token
91+ app = to_a2a(agent, enable_auth = True , auth_method = " querystring" )
92+ ```
93+
94+
95+ ### Client 侧使用认证
96+
97+ 当 Server 启用认证后,Client 侧的 ` RemoteVeAgent ` 会** 自动处理认证**
98+
5499## 初始化选项
55100
101+ ### RemoteVeAgent 参数
102+
56103:: field-group
57104 :: field { name =" name " type =" string " }
58105 智能体的名称
@@ -62,3 +109,41 @@ print(response) # 北京天气晴朗,气温25°C。
62109 远程智能体的访问端点
63110 ::
64111::
112+
113+ ### to_a2a 参数
114+
115+ :: field-group
116+ :: field { name =" agent " type =" BaseAgent " required }
117+ 要转换为 A2A Server 的智能体实例
118+ ::
119+
120+ :: field { name =" host " type =" string " default =" localhost " }
121+ A2A Server 的主机地址
122+ ::
123+
124+ :: field { name =" port " type =" int " default =" 8000 " }
125+ A2A Server 的端口号
126+ ::
127+
128+ :: field { name =" protocol " type =" string " default =" http " }
129+ A2A Server 的协议(http 或 https)
130+ ::
131+
132+ :: field { name =" agent_card " type =" AgentCard | string " }
133+ 可选的智能体卡片对象或 JSON 文件路径。如果不提供,将自动从智能体生成
134+ ::
135+
136+ :: field { name =" runner " type =" Runner " }
137+ 可选的 Runner 对象。如果不提供,将自动创建默认 Runner
138+ ::
139+
140+ :: field { name =" enable_auth " type =" bool " default =" false " }
141+ 是否启用 VeADK 认证功能。启用后会添加凭据服务和认证中间件
142+ ::
143+
144+ :: field { name =" auth_method " type =" 'header' | 'querystring' " default =" header " }
145+ 认证方式。仅在 ` enable_auth=True ` 时有效
146+ - ` header ` : 从 Authorization header 中提取 token
147+ - ` querystring ` : 从 query parameter 中提取 token
148+ ::
149+ ::
0 commit comments