Google ADK+Qwen3+PowerShell+Anytxt=王炸,一个懒人找 window 文件的 AI Agent 实现 Python


你是不是经常在电脑里找文件,翻遍了文件夹却找不到?别担心,今天我就来教你用 Google ADK 和 Qwen3 打造一个超级智能的 AI Agent,让你轻松搞定 Windows 文件查找!

一、什么是 Google ADK?

Google ADK 就像是一个“智能体开发工具箱”,它能帮助你快速创建各种智能 Agent,让 Agent 理解你的需求,还能利用工具帮你解决问题。通过 ADK,你可以轻松定义 Agent 的行为、描述它的能力,还能集成外部工具来增强它的功能。
在这里插入图片描述

二、快速搭建智能 Agent

(一)设置环境变量

首先,我们要告诉程序到哪里找模型和 API,这就像给机器人指路一样。我们通过设置环境变量,让它知道去哪里找资源。例如:

import os

os.environ["OLLAMA_API_BASE"] = "http://localhost:11434"
os.environ["OPENAI_API_BASE"] = "https://dashscope.aliyuncs.com/compatible-mode/v1"
os.environ["OPENAI_API_KEY"] = "sk-你的key"

这里的 OLLAMA_API_BASE 指向本地运行的 Ollama 服务,而 OPENAI_API_BASEOPENAI_API_KEY 则用于连接到在线的 Qwen3 的 API 服务。

(二)创建智能体

接下来,我们用 Python 定义一个 Agent:

from google.adk.agents import Agent

root_agent = Agent(
    model=LiteLlm(model="openai/qwen-turbo-2025-04-28"),
    name="search_agent",
    description="能够利用工具进行关键词搜索,获取磁盘文件信息的智能助手。",
    instruction="""你是一个能够利用工具回答用户关于关键词文件搜索问题,和打开文件的智能助手。
   1、当用户需要搜索文件,不包含“全文搜索”时,默认用find_files_with_powershell_regex工具调用结果给出符合用户要求的信息,如果返回有信息,输出全部信息,如果返回错误,则说抱歉,找不到,不要输出与任务无关的信息
    3、只有当用户输入包含“全文搜索”文字需求时,才调用工具anytxt_get_result,如果返回有信息,输出全部信息,如果返回错误,则说抱歉,找不到,不要输出与任务无关的信息
    2、当用户想要打开找到的文件时,根据历史信息提取完整文件路径,调用工具open_file_by_path
    """,
    tools=[find_files_with_powershell_regex, open_file_by_path],
)

我们给这个 Agent 起名叫“search_agent”,并描述了它的功能:能利用工具进行关键词搜索和打开文件。我们还给它指定了 Qwen3 模型,让它更聪明地理解我们的需求。

三、利用工具组合

(一)PowerShell 工具

通过 PowerShell 命令,可以搜索文件夹里的文件。我们写的代码能用正则表达式去匹配文件名,还能排序,就像你有个超级搜索助手一样。比如,你可以找所有以“DCS”开头的 Word 文件:

def find_files_with_powershell_regex(root_dir: str, regex_pattern: str) -> dict:
    powershell_command = f"""Get-ChildItem -Path "{
     
     root_dir}" -Recurse -File | Where-Object {
    
    { $_.Name -match '{
     
     regex_pattern}' }} | Select-Object FullName, LastWriteTime | Sort-Object LastWriteTime -Descending | ForEach-Object {
    
    { "{
    
    {0}}$($_.FullName){
    
    {0}}$($_.LastWriteTime)" -f [char]0 }} """
    print(f"执行查找指令 {
     
     powershell_command}")
    try:
        result = subprocess.run(['powershell.exe', '-Command', powershell_command], capture_output=True, text=True, check=True)
        output = result.stdout.strip()
        if output:
            print(f"找到 {
     
     len(output.splitlines())} 个文件:")
            for line in output.splitlines
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

机智新语

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值