当前位置:首页>python>用 Python + MCP + 本地模型(Ollama)打造离线 AI Agent(无API、0成本、可控到极致)

用 Python + MCP + 本地模型(Ollama)打造离线 AI Agent(无API、0成本、可控到极致)

  • 2026-09-18 09:18:46
用 Python + MCP + 本地模型(Ollama)打造离线 AI Agent(无API、0成本、可控到极致)

如果你已经玩过 AI Agent,一定遇到过这几个问题:

  • ❌ API 太贵(动不动一个月几百)

  • ❌ 数据不安全(全发到云上)

  • ❌ 网络依赖(断网直接废)

  • ❌ 延迟高(调用慢到怀疑人生)

那么有没有一种方案:

不依赖任何云API,本地就能跑 AI Agent?

答案是:有,而且现在就能实现。

今天这篇文章,我们直接带你从 0 到 1 搭建一个:

完全离线的 AI Agent(Python + MCP + Ollama)

并且重点是:

  • 可运行

  • 可扩展

  • 可用于生产雏形


一、最终效果(这才是重点)

你将得到一个这样的系统:

请输入问题:帮我查一下新加坡天气

AI 自动执行:

调用工具 → get_weather返回 → Singapore: 🌦 +30°C

重点来了👇

✅ 不用 OpenAI✅ 不用 Claude✅ 不用联网(模型层)✅ 完全本地运行


二、核心架构(一定要理解)

整个系统结构如下:

用户输入   ↓本地 LLM(Ollama)   ↓MCP Tool 调度   ↓Python 工具执行   ↓返回结果

一句话总结:

本地模型负责“思考”,Python 负责“执行”。


三、环境准备(5分钟搞定)

1️⃣ 安装 Ollama

👉 官网安装(Mac / Linux / Windows)

安装完成后执行:

ollama run llama3

如果能正常对话,说明成功。


2️⃣ 拉取模型(推荐)

ollama pull llama3

或者更强一点:

ollama pull mistral

3️⃣ 安装 Python 依赖

pip install mcp requests ollama

四、完整代码(核心 Agent)

创建文件:

agent_local.py

直接上完整代码👇

import jsonimport requestsimport ollamafrom mcp.server.fastmcp import FastMCP# =========================# 1. MCP 工具定义# =========================mcp = FastMCP("Local Agent")@mcp.tool()def add(a: int, b: int) -> int:    """工具函数:计算两数之和    输出:返回 int 类型的计算结果    示例:add(3, 5) -> 8    """    return a + b@mcp.tool()def get_weather(city: str) -> str:    """工具函数:获取城市天气    输出:返回 str 类型的天气信息    示例:get_weather("Beijing") -> "Beijing: ☀️ +22°C"    """    url = f"https://wttr.in/{city}?format=3"    return requests.get(url).text# =========================# 2. 本地模型调用(Ollama)# =========================def ask_llm(prompt, tools_desc):    """调用 Ollama 本地模型    输入:用户提示词 + 工具描述    输出:返回 str 类型的模型响应(可能是纯文本或 JSON 格式的工具调用指令)    示例输出1:'{"tool": "add", "args": {"a": 10, "b": 20}}'    示例输出2:'北京今天天气晴朗,气温22°C'    """    response = ollama.chat(        model="llama3",        messages=[            {                "role": "system",                "content": f"""你是一个AI助手,可以调用工具完成任务。工具列表:{tools_desc}如果需要调用工具,请返回JSON格式:{{"tool": "工具名", "args": {{参数}}}}否则直接回答。""",            },            {"role": "user", "content": prompt},        ],    )    return response["message"]["content"]# =========================# 3. Agent 核心逻辑# =========================def run_agent(user_input):    """    Agent 主控函数    输入:用户输入的字符串    输出:返回 str 类型的最终响应    执行流程:    1. 调用 LLM 判断是否需要工具    2. 如果需要工具,解析 JSON 并执行对应函数    3. 返回工具执行结果或 LLM 的直接回答    示例输出1:'[工具调用] add → 30'(当用户问"10+20等于多少")    示例输出2:'北京今天天气晴朗,气温22°C'(当 LLM 直接回答时)    """    tools_desc = """      1. add(a, b): 计算加法      2. get_weather(city): 查询天气    """    result = ask_llm(user_input, tools_desc)    # 尝试解析 JSON(判断是否为工具调用)    try:        tool_call = json.loads(result)        name = tool_call["tool"]        args = tool_call["args"]        # 执行对应的工具函数        if name == "add":            res = add(**args)  # 输出:int 类型,如 30        elif name == "get_weather":            res = get_weather(**args)  # 输出:str 类型,如 "Beijing: ☀️ +22°C"        else:            res = "未知工具"        return f"[工具调用] {name} → {res}"  # 输出示例:"[工具调用] add → 30"    except Exception:        # 如果不是 JSON 格式,说明 LLM 直接回答了问题        return result  # 输出:LLM 的原始回答文本# =========================# 4. CLI 入口# =========================if __name__ == "__main__":    """命令行交互界面    输出:启动提示信息,然后循环接收用户输入    交互示例:    >>> 离线 AI Agent 已启动(exit 退出)    >>> 10+20等于多少?    [工具调用] add → 30    >>> 北京天气怎么样?    [工具调用] get_weather → Beijing: ☀️ +22°C    >>> exit    (程序退出)    """    print("离线 AI Agent 已启动(exit 退出)")    while True:        q = input(">>> ")        if q == "exit":            break        print(run_agent(q))  # 输出:Agent 处理后的最终结果

五、运行效果(真实体验)

运行:

python agent_local.py

测试:

>>> 帮我计算 100 + 250[工具调用] add → 350

再试:

>>> 查询北京天气[工具调用] get_weather → Beijing: 🌤 +28°C

这时候你已经拥有:

一个完全离线的 AI Agent。


六、为什么这个方案很重要?

很多人忽略了一点:

真正的 AI 生产力,不在模型,而在系统。

这个架构解决了 4 个关键问题:


1️⃣ 成本问题

云API:按Token收费 ❌本地模型:0成本 ✅

2️⃣ 数据安全

云端:数据上传 ❌本地:完全私有 ✅

3️⃣ 可控性

云模型:黑盒 ❌本地模型:完全可控 ✅

4️⃣ 可扩展性

你可以无限加工具:

@mcp.tool()def read_file()@mcp.tool()def send_email()@mcp.tool()def control_server()

七、进阶玩法(真正的生产力)

如果你继续往下做,可以实现:


1️⃣ 自动办公系统

AI读取Excel↓生成报表↓自动发送邮件

2️⃣ 本地 AI 运维助手

AI查看日志↓分析异常↓执行修复脚本

3️⃣ AI 自动化公司(一个人就够)

AI写内容AI发文章AI做运营

八、关键问题:本地模型够强吗?

现实一点说:

❌ 不如 GPT-4❌ 有时会理解错误

但:

✅ 足够做自动化✅ 足够做工具调用✅ 足够做 Agent

一句话总结:

云模型更聪明,本地模型更自由。


九、未来趋势(非常重要)

未来 AI 架构很可能是这样:

云模型(负责复杂推理)+本地模型(负责执行)+MCP工具(连接世界)

而你现在做的这套:

已经是未来 AI 系统的雏形。


十、总结

今天你实现了一个非常关键的能力:

用 Python + MCP + 本地模型,构建一个离线 AI Agent。

这意味着:

你不再依赖API你拥有自己的AI系统你可以构建真正的AI产品

最后一句话(重点)

未来最值钱的不是模型,而是“能被 AI 调用的系统”。

而 MCP + 本地模型,就是入口。


最新文章

随机文章