You need to enable JavaScript to run this app.
文档中心
AgentKit

AgentKit

复制全文
下载 pdf
SDK参考
MCP
复制全文
下载 pdf
MCP
本文展示了如何使用VeADK构建一个简单的智能体,用于调用MCP服务。​
前提条件​
  • 已安装Python,且版本不低于3.10。查看Python版本的命令示例:python --version。​
  • 已部署MCP后端服务。​
步骤一:配置本地环境​
可以使用uv或者python3 -m venv进行虚拟环境管理,本文将以uv为例进行介绍。​
  1. 虚拟环境配置。​
  • ​
    mkdir agentkit-mcp-quickstart​
    cd agentkit-mcp-quickstart​
    uv venv --python 3.12.0​
    source .venv/bin/active​
    ​
  1. 安装依赖。​
您也可以通过--index指定源,加快安装速度。​
  • ​
    uv pip install veadk-python​
    uv pip install google-adk​
    pip install agentkit-sdk-python​
    ​
步骤二:创建AgentKit MCP​
  1. 登录AgentKit MCP服务控制台,为前提条件中的MCP后端服务创建MCP服务。具体操作,请参见创建 MCP 服务。​
  1. 获取MCP服务的Endpoint和ApiKey。具体操作,请参见获取 MCP 服务调用示例。​
步骤三:配置环境变量​
​
export MCP_ENDPOINT={{步骤二中获取的Endpoint}}​
export MCP_AUTH_KEY={{步骤二中获取的ApiKey}}​
export API_KEY={{方舟模型的APIKEY}}​
​
步骤四:运行Agent​
代码示例​
​
import logging​
​
from veadk import Agent, Runner​
from veadk.config import getenv​
from agentkit.apps import AgentkitSimpleApp​
from google.adk.tools.mcp_tool.mcp_toolset import MCPToolset, StreamableHTTPConnectionParams​
​
logger = logging.getLogger(__name__)​
​
​
url = getenv("MCP_ENDPOINT")​
mcp_auth_key = getenv("MCP_AUTH_KEY")​
apikey = getenv("API_KEY")​
​
mcp_ecs_toolset = MCPToolset(​
connection_params=StreamableHTTPConnectionParams(​
url=url,​
headers={"Authorization": f"Bearer {mcp_auth_key}"}​
),​
)​
​
app = AgentkitSimpleApp()​
​
root_agent = Agent(​
name="ecs_helper",​
model_name="doubao-1-5-pro-256k-250115",​
instruction='''​
Help user find ECS instances and their details.​
''',​
description="ECS Helper Agent",​
tools=[mcp_ecs_toolset]​
)​
​
runner = Runner(agent=root_agent)​
​
​
@app.entrypoint​
async def run(payload: dict, headers: dict) -> str:​
prompt = payload["prompt"]​
user_id = headers["user_id"]​
session_id = headers["session_id"]​
​
logger.info(​
f"Running agent with prompt: {prompt}, user_id: {user_id}, session_id: {session_id}"​
)​
​
# 运行智能体,自动处理工具调用​
response = await runner.run(​
messages=prompt, ​
user_id=user_id, ​
session_id=session_id​
)​
​
logger.info(f"Run response: {response}")​
return response​
​
@app.ping​
def ping() -> str:​
"""健康检查接口"""​
return "pong!"​
​
if __name__ == "__main__":​
# 启动本地开发服务器​
app.run(host="0.0.0.0", port=8000​
​
执行请求​
​
curl --location 'http://localhost:8000/invoke' \​
--header 'Content-Type: application/json' \​
--header 'user_id: veadk-test' \​
--header 'session_id: local_session' \​
--data '{"prompt": "分析下我的ecs实例"}'​
​
运行结果​
​
2025-10-24 20:17:33 | INFO | ark_veauth.py:25 - Fetching ARK token...​
2025-10-24 20:17:33 | INFO | agent.py:118 - Model extra config: {'extra_headers': {'x-is-encrypted': 'true', 'veadk-source': 'veadk', 'veadk-version': '0.2.13', 'User-Agent': 'VeADK/0.2.13', 'X-Client-Request-Id': 'veadk/0.2.13'}, 'extra_body': {'caching': {'type': 'enabled'}, 'expire_at': 1761311852}}​
2025-10-24 20:17:33 | DEBUG | agent.py:127 - LiteLLM client created with config: {'extra_headers': {'x-is-encrypted': 'true', 'veadk-source': 'veadk', 'veadk-version': '0.2.13', 'User-Agent': 'VeADK/0.2.13', 'X-Client-Request-Id': 'veadk/0.2.13'}, 'extra_body': {'caching': {'type': 'enabled'}, 'expire_at': 1761311852}}​
2025-10-24 20:17:33 | INFO | agent.py:153 - VeADK version: 0.2.13​
2025-10-24 20:17:33 | INFO | agent.py:155 - Agent `ecs_helper` init done.​
2025-10-24 20:17:33 | DEBUG | agent.py:156 - Agent: {'name': 'ecs_helper', 'tools': [<google.adk.tools.mcp_tool.mcp_toolset.MCPToolset object at 0x7f8b4f24b9b0>], 'model_name': 'doubao-1-5-pro-256k-250115', 'model_api_base': 'https://ark.cn-beijing.volces.com/api/v3/'}​
2025-10-24 20:17:33 | WARNING | runner.py:198 - No short term memory or session service provided, use an in-memory one instead.​
2025-10-24 20:17:33 | INFO | runner.py:217 - No long term memory provided.​
INFO: Started server process [1330124]​
INFO: Waiting for application startup.​
INFO: Application startup complete.​
INFO: Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit)​
2025-10-24 20:18:35 | INFO | runner.py:250 - Run config: speech_config=None response_modalities=None save_input_blobs_as_artifacts=False support_cfc=False streaming_mode=<StreamingMode.NONE: None> output_audio_transcription=AudioTranscriptionConfig() input_audio_transcription=AudioTranscriptionConfig() realtime_input_config=None enable_affective_dialog=None proactivity=None session_resumption=None context_window_compression=None save_live_audio=False max_llm_calls=100​
2025-10-24 20:18:35 | DEBUG | runner.py:265 - Auto create session: local_session, user_id: veadk-test, app_name: veadk_default_app​
2025-10-24 20:18:38 | DEBUG | runner.py:280 - Function call: id='call_xbyfcvc86wc26mbxz39v****' args={'region': 'cn-beijing', 'needNum': 10} name='describe_instances'​
2025-10-24 20:19:14 | DEBUG | runner.py:288 - Event output: 以下是您的ECS实例详情:​
1. **实例1**:​
- **实例ID**:i-ye7irm2sqobw80cq****​
- **创建时间**:2025-10-23T21:36:31+08:00​
- **计费方式**:PostPaid(按量计费)​
- **实例规格**:ecs.e-c1m2.xlarge​
- **CPU**:4核(核心数2,每核心线程数2)​
- **内存**:8192MB​
- **操作系统**:Windows Server 2022 Datacenter Edition 64 - bit Chinese​
- **镜像ID**:image-ye5907jc6ikhx1ex****​
- **状态**:RUNNING(运行中)​
- **所属可用区**:cn - beijing - a​
2. **实例2**:​
- **实例ID**:i-ye7ipm0dtsqc6imh****​
- **创建时间**:2025-10-23T21:05:44+08:00​
- **计费方式**:PostPaid(按量计费)​
- **实例规格**:ecs.e-c1m2.xlarge​
- **CPU**:4核(核心数2,每核心线程数2)​
- **内存**:8192MB​
- **操作系统**:Debian 12 64 bit​
- **镜像ID**:image-ydzwsvy72n46nmxz****​
- **状态**:RUNNING(运行中)​
- **所属可用区**:cn - beijing - a​
3. **实例3**:​
- **实例ID**:i-ye7ilsbbpcbw80ca****​
- **创建时间**:2025-10-23T20:06:54+08:00​
- **计费方式**:PostPaid(按量计费)​
- **实例规格**:ecs.e-c1m2.xlarge​
- **CPU**:4核(核心数2,每核心线程数2)​
- **内存**:8192MB​
- **操作系统**:Windows Server 2022 Datacenter Edition 64 - bit Chinese​
- **镜像ID**:image-ye5907jc6ikhx1ex****​
- **状态**:RUNNING(运行中)​
- **所属可用区**:cn - beijing - a​
4. **实例4**:​
- **实例ID**:i-ye7fg1hgqoxjd1ut****​
- **创建时间**:2025-10-22T14:57:49+08:00​
- **计费方式**:PostPaid(按量计费)​
- **实例规格**:ecs.e-c1m2.xlarge​
- **CPU**:4核(核心数2,每核心线程数2)​
- **内存**:8192MB​
- **操作系统**:Windows Server 2022 Datacenter Edition 64 - bit Chinese​
- **镜像ID**:image-ye5907jc6ikhx1ex****​
- **状态**:RUNNING(运行中)​
- **所属可用区**:cn - beijing - a​
5. **实例5**:​
- **实例ID**:i-ye5ejwoow0cva4fq****​
- **创建时间**:2025-09-24T14:25:37+08:00​
- **计费方式**:PostPaid(按量计费)​
- **实例规格**:ecs.e-c1m2.xlarge​
- **CPU**:4核(核心数2,每核心线程数2)​
- **内存**:8192MB​
- **操作系统**:Windows Server 2022 Datacenter Edition 64 - bit Chinese​
- **镜像ID**:image-ye5907jc6ikhx1ex****​
- **状态**:RUNNING(运行中)​
- **所属可用区**:cn - beijing - a​
6. **实例6**:​
- **实例ID**:i-ye5ejub08wbw80bp****​
- **创建时间**:2025-09-24T14:24:35+08:00​
- **计费方式**:PostPaid(按量计费)​
- **实例规格**:ecs.e-c1m2.xlarge​
- **CPU**:4核(核心数2,每核心线程数2)​
- **内存**:8192MB​
- **操作系统**:Windows Server 2022 Datacenter Edition 64 - bit Chinese​
- **镜像ID**:image-ye5907jc6ikhx1ex****​
- **状态**:RUNNING(运行中)​
- **所属可用区**:cn - beijing - a​
7. **实例7**:​
- **实例ID**:i-ye5e5jyq68bw80c8****​
- **创建时间**:2025-09-24T10:44:54+08:00​
- **计费方式**:PostPaid(按量计费)​
- **实例规格**:ecs.e-c1m2.xlarge​
- **CPU**:4核(核心数2,每核心线程数2)​
- **内存**:8192MB​
- **操作系统**:Windows Server 2022 Datacenter Edition 64 - bit Chinese​
- **镜像ID**:image-ye5907jc6ikhx1ex****​
- **状态**:RUNNING(运行中)​
- **所属可用区**:cn - beijing - a​
8. **实例8**:​
- **实例ID**:i-ye5c4jbx8gqc6ily****​
- **创建时间**:2025-09-23T16:02:05+08:00​
- **计费方式**:PostPaid(按量计费)​
- **实例规格**:ecs.e-c1m2.xlarge​
- **CPU**:4核(核心数2,每核心线程数2)​
- **内存**:8192MB​
- **操作系统**:Windows Server 2022 Datacenter Edition 64 - bit Chinese​
- **镜像ID**:image-ye5907jc6ikhx1ex****​
- **状态**:RUNNING(运行中)​
- **所属可用区**:cn - beijing - a​
9. **实例9**:​
- **实例ID**:i-ye5c4end34xjd1um****​
- **创建时间**:2025-09-23T16:00:05+08:00​
- **计费方式**:PostPaid(按量计费)​
- **实例规格**:ecs.e-c1m2.xlarge​
- **CPU**:4核(核心数2,每核心线程数2)​
- **内存**:8192MB​
- **操作系统**:Debian 12 64 bit​
- **镜像ID**:image-ydzwsvfxhokhx11p****​
- **状态**:RUNNING(运行中)​
- **所属可用区**:cn - beijing - a​
10. **实例10**:​
- **实例ID**:i-ye5blj0xdsxjd1tk****​
- **创建时间**:2025-09-23T11:09:46+08:00​
- **计费方式**:PostPaid(按量计费)​
- **实例规格**:ecs.e-c1m2.xlarge​
- **CPU**:4核(核心数2,每核心线程数2)​
- **内存**:8192MB​
- **操作系统**:Debian 12 64 bit​
- **镜像ID**:image-ydzwsvfxhokhx11p****​
- **状态**:RUNNING(运行中)​
- **所属可用区**:cn - beijing - a​
​
以上10个实例均为按量计费,规格为ecs.e-c1m2.xlarge ,且大部分使用Windows Server 2022 Datacenter Edition 64 - bit Chinese操作系统,少数使用Debian 12 64 bit操作系统,目前状态均为运行中,所属可用区为cn - beijing - a 。若您还需要进一步分析或有其他操作需求,可继续向我提问。​
​
​
最近更新时间:2026.10.09 15:55:07
这个页面对您有帮助吗?
有用
有用
无用
无用