一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

Google ADK搭建基于Kimi K3智能体详细过程

时间:2026-07-23 17:44:57 编辑:袖梨 来源:一聚教程网

Google Agent Development Kit (ADK) 是 Google 于 2025年4月发布的一个开源、以代码为核心的框架,旨在帮助开发者构建、评估和部署复杂的AI智能体(Agent)及多智能体系统[1][2]。因为一些特殊原因,笔者并不想访问外网的大语言模型。国内的模型很多,但是到目前为止,通过检索的资料和测试,通过Google ADK访问Kimi K3模型成功。过程非常曲折,但是结果很好。也可以通过同样的方法,对搭建基于其他模型的智能体。在这篇文章中,将中间的过程介绍如下:

一、安装Google ADK库

pip install google-adk

二、创建项目的目录层次结构

创建一个目录结构:
multi_tool_agent |-
|-.env
|- _ init _.py
|- agent.py

1.1 定义.env

.env定义一些必备的环境变量的配置文件。因为需要访问kimi-k3模型,该文件的内容如下:

# 设置kimi官方开放平台申请API密钥
MOONSHOT_API_KEY="你的kimi-k3模型的API密钥"
# 设置访问的模型的基址
MOONSHOT_API_BASE="https://api.moonshot.cn/v1"

1.2 _ _ init _ _.py

from . import agent

二、在agent.py文件中调用kimi-k3模型

2.1 配置LiteLlm

import os
import litellm
# LiteLLM 配置
# 禁用远程成本映射获取(避免网络问题)
litellm.local_model_cost_map = True
# 禁用远程成本映射获取(避免网络问题)
os.environ["LITELLM_LOCAL_MODEL_COST_MAP"] = "True"
# 设置 LiteLLM 日志级别为 ERROR(避免过多日志输出)
os.environ["LITELLM_LOG"] = "ERROR"
# 设置 LiteLLM 请求超时时间为 60 秒(避免网络问题)
os.environ["LITELLM_REQUEST_TIMEOUT"] = "60"
# 为 LiteLLM 添加一个“非官方/自定义”kimi-k3模型的配置
# 注册 kimi-k3 模型成本
litellm.model_cost = litellm.model_cost or {}
litellm.model_cost["moonshot/kimi-k3"] = {
    "input_cost_per_token": 0.000001,
    "output_cost_per_token": 0.000002,
    "litellm_provider": "openai",
    "mode": "chat",
    "supports_system_messages": True,
    "supports_function_calls": True,
}
print("自定义LiteLLM 配置完成")

2.2 导入Google ADK库和配置环境变量

# 利用load_dotenv加载当前目录的.env文件的环境变量 
from dotenv import load_dotenv
load_dotenv()
# 导入google adk的相关库
from google.adk.models.lite_llm import LiteLlm
from google.adk.tools import FunctionTool
from google.adk.agents import Agent  

2.3 定义函数工具

使用标注@FuntionTool标注函数工具

@FunctionTool
def get_weather(city: str) -> dict:
    """
    获取指定城市的天气信息.
    Args:
        city (str): 城市名称.
    Returns:
        dict: 状态和结果或错误的信息.
    """
    if city == "南昌":
        return {
            "status": "success",
            "report": (
                "今天南昌的天气是晴朗,最高气温为35摄氏度。"
                " 天气炎热,请注意防暑降温。"
            ),
        }
    else:
        return {
            "status": "error",
            "error_message": f"没有找到 '{city}' 的天气信息。",
        }

此处定义一个工具,获取指定城市的天气,这是一个模拟的操作。

2.4 创建智能体

# 创建LiteLlm模型对象
model = LiteLlm(
        model="moonshot/kimi-k3",
        temperature=1,
        max_tokens=2048,
        extra_params={
            "api_base": os.getenv("MOONSHOT_API_BASE"),
            "api_key": os.getenv("MOONSHOT_API_KEY"),
        }
    )
# 创建智能体
root_agent = Agent(  
    name="weather_assistant",  
    model=model,  
    instruction="你是一个有帮助的助手。需要时使用get_weather工具获取天气信息。",  
    description="一个获取天气信息的助手。",  
    tools=[get_weather]  
)

三、利用adk web在网页中测试连接是否成功

启动终端,进入目录multi_tool_agent的上级目录。下图是在上级目录中调用tree命令,显示当前目录的所有下级目录:

图1 显示当前目录的所有下级目录

然后调用命令:

adk web

启动adk web,使得可以通过http://127.0.0.1:8000访问智能体。运行结果如下所示:

图2 调用adk web

然后启动浏览器,在浏览器中输入“http://127.0.0.1:8000”,运行结果如下所示:

图3 启动成功

分别在红色箭头所指的消息输入框中输入“南昌的天气”和“南京的天气”,这是kimi-k3调用工具get_weather得到不同的调用结果,运行结果如下图所示:

图4 运行结果

参考文献

  • “Agent Development Kit: Making it easy to build multi agent applications” https://developers.googleblog.com/en/agent-development-kit-easy-to-build-multi-agent-applications [EB/OL]
  • “DeepWiki google/adk-python Overview”
  • https://deepwiki.com/google/adk-python/1-overview[EB/OL]

热门栏目