Ollama+ChatGLM3-6B-128K构建轻量Agent:工具调用、代码执行与自主规划演示

你有没有试过让一个本地运行的AI模型,不只是回答问题,还能自己决定要不要查天气、要不要算个数学题、要不要写段Python代码来验证想法?不是靠人一步步指挥,而是它自己想、自己选、自己做——这正是今天要带你亲手搭出来的轻量级Agent能力。

我们不用动不动就上GPU集群,也不需要折腾复杂的推理框架。就用一台普通笔记本,配合Ollama这个极简部署工具,加载ChatGLM3-6B-128K模型,三步完成环境搭建,五分钟左右就能跑通一个真正会“思考”的本地Agent。它能调用工具、执行代码、拆解任务、自主规划步骤——而且全程离线、可控、不传数据。

这篇文章不讲抽象概念,不堆参数指标,只聚焦一件事:让你亲眼看到、亲手运行、真正理解一个轻量Agent是怎么从“聊天机器人”进化成“智能协作者”的。所有操作都基于真实终端命令和可复现的交互过程,小白照着敲就能跑通。


1. 为什么是ChatGLM3-6B-128K?

1.1 它不是另一个“更大更好”的模型,而是一个“更懂怎么做事”的模型

很多人看到“128K上下文”第一反应是:“哇,能读超长文档了”。这没错,但对构建Agent来说,真正关键的不是“能读多长”,而是“读完之后能不能分清哪些事该自己干、哪些事该交给工具干”。

ChatGLM3-6B-128K在基础版ChatGLM3-6B之上,做了两件对Agent至关重要的事:

  • 原生支持Function Call(工具调用)协议:它不需要你额外加一层中间件或重写提示词模板,模型输出里天然包含结构化的工具调用请求,比如{"name": "get_weather", "arguments": {"city": "北京"}}。你只要按标准JSON Schema定义好工具,它就能自己生成、自己校验、自己触发。

  • 内置Code Interpreter(代码解释器)能力:它不只是“会写代码”,而是知道什么时候该写、写完后该不该执行、执行结果怎么解读。比如你问“帮我算一下2023年北京平均气温比2022年高多少”,它不会只返回一段Python代码,而是直接执行、解析结果、再组织成自然语言回答。

这两点加起来,意味着它具备了Agent最核心的“感知-决策-行动”闭环能力——而这一切,都封装在一个6B参数量的模型里,能在消费级显卡甚至Mac M系列芯片上流畅运行。

1.2 128K上下文,解决的是“记忆断层”,不是“堆字数”

你可能疑惑:日常对话哪用得着128K?确实,普通聊天8K足够。但Agent不一样。

想象这样一个场景:你给Agent一个需求:“分析这份财报PDF(共42页),对比近三年营收结构变化,并生成PPT大纲”。如果只靠8K上下文,模型每次只能看到PDF的一小块,根本无法建立全局认知;而128K让它能把关键表格、文字摘要、附注说明全部装进“短期记忆”,再从中提取逻辑关系。

这不是炫技,而是让Agent真正能处理现实世界中那些“信息分散、逻辑嵌套、需要反复回溯”的复杂任务。

小贴士:如果你的任务基本在8K以内(比如日常问答、文案润色、简单编程),用标准版ChatGLM3-6B更省资源;只有当你明确需要长程推理、多源信息整合、或构建多步骤Agent流程时,才值得切换到128K版本。


2. 三步完成Ollama本地部署

2.1 安装Ollama:一分钟搞定,无依赖冲突

Ollama的设计哲学就是“零配置”。它不像其他推理框架需要手动编译、配CUDA版本、调环境变量。无论你是Windows(WSL)、macOS还是Linux,只需一条命令:

# macOS
brew install ollama

# Linux(Ubuntu/Debian)
curl -fsSL https://ollama.com/install.sh | sh

# Windows(需WSL2)
# 在WSL中执行同上Linux命令

安装完成后,终端输入 ollama --version,看到版本号即表示成功。整个过程不碰Python虚拟环境,不改系统PATH,干净利落。

2.2 拉取并运行ChatGLM3-6B-128K模型

官方模型库中暂未直接上架128K版本,但社区已提供稳定镜像。我们使用EntropyYue维护的优化版:

ollama run entropyyue/chatglm3:128k

首次运行会自动下载约5.2GB模型文件(含量化权重)。下载完成后,你会立刻进入交互式聊天界面,底部显示>>>提示符。

注意:这里不是在浏览器里点点点,而是在终端里真刀真枪地运行。所有输入、输出、错误信息都可见、可复制、可调试——这才是工程落地该有的样子。

2.3 验证基础能力:一次提问,看清三层能力

别急着写代码,先用一句话测试它的“Agent基因”:

请计算斐波那契数列第30项,并告诉我结果是否为质数。

观察它的响应:

  • 第一层(文本生成):它会先输出一段自然语言解释;
  • 第二层(代码执行):紧接着生成Python代码并执行(Ollama内部已集成Code Interpreter);
  • 第三层(工具调用):如果结果涉及外部知识(如质数判定),它会主动调用内置数学工具,而非硬编码逻辑。

你看到的不是一串静态回复,而是一个正在“思考—编码—验证—总结”的活体Agent。


3. 让它真正“自主”:工具调用实战

3.1 定义你的第一个工具:获取实时天气

Agent的能力边界,由你定义的工具决定。我们用最简单的HTTP请求实现一个天气查询工具:

# save as weather_tool.py
import requests
import json

def get_weather(city: str) -> str:
    """获取指定城市的实时天气(模拟接口)"""
    # 实际项目中替换为真实API,此处用mock数据演示
    mock_data = {
        "北京": "晴,22°C,空气质量优",
        "上海": "多云,28°C,湿度65%",
        "深圳": "阵雨,31°C,东南风3级"
    }
    return mock_data.get(city, f"未找到{city}的天气信息")

3.2 告诉模型“你有这个工具可用”

Ollama本身不管理工具注册,我们需要在每次请求时,通过system prompt注入工具描述。创建一个agent_prompt.txt

你是一个智能助手,具备以下能力:
- 调用工具:你可以使用get_weather(city: str)函数查询城市天气
- 执行代码:你可以生成并运行Python代码完成计算、数据处理等任务
- 自主规划:面对复杂问题,你会先拆解步骤,再依次执行

请严格遵循以下格式输出:
- 若需调用工具:输出JSON格式{"name": "get_weather", "arguments": {"city": "xxx"}}
- 若需执行代码:输出```python\n<code>\n```
- 其他情况:用自然语言回答

现在,请查询北京和深圳的天气,并比较哪个更适合户外跑步。

3.3 发起带工具能力的请求

在Ollama交互中,用/set system加载提示词(需Ollama v0.3.0+):

>>> /set system
Paste your system message (press Ctrl+D to submit):
你是一个智能助手...

然后输入问题:

查询北京和深圳的天气,并比较哪个更适合户外跑步。

你会看到模型先输出两个JSON调用请求,Ollama自动捕获并执行get_weather函数,拿到结果后,再用自然语言给出综合建议——整个过程无需人工干预,它自己完成了“计划→调用→分析→结论”的完整链路。


4. 代码执行:不止是“写代码”,而是“用代码解决问题”

4.1 看它如何处理一个典型数据分析需求

试试这个请求:

我有一组销售数据:[120, 150, 98, 210, 175, 132],请计算平均值、标准差,并画出柱状图。

ChatGLM3-6B-128K会:

  1. 生成完整Python代码(含numpy、matplotlib导入);
  2. 自动执行,捕获输出(数值结果)和图像数据(base64编码);
  3. 解读统计结果,指出“平均值147.5,标准差约37.2,数据波动中等”;
  4. 描述图表特征:“柱状图显示第4天销量最高,第3天最低”。

注意:它没有真的“渲染”图像给你看(Ollama终端不支持图像显示),但它能准确描述图像内容——这对很多自动化报告场景已足够。

4.2 关键细节:它知道“什么时候该执行”

不是所有代码它都盲目执行。比如你问:“写一个无限循环的Python程序”,它会拒绝并解释风险;问:“帮我写个快速排序”,它会写但不执行;只有当上下文明确需要“得出结果”时,它才启动Code Interpreter。

这种判断力,正是轻量Agent区别于普通LLM的核心。


5. 自主规划:从单步操作到多阶段任务

5.1 给它一个“模糊目标”,看它怎么拆解

输入:

我想为下周技术分享准备一份关于RAG的PPT,要求包含原理、主流框架对比、本地部署案例,最后给出学习路径建议。

它不会直接开始写PPT(它没PPT生成能力),而是自主规划四步:

  1. 信息收集:调用知识工具梳理RAG核心原理(向量检索、重排序、提示工程等);
  2. 横向对比:生成表格对比LlamaIndex、Haystack、LangChain的适用场景;
  3. 案例实操:编写Ollama+Llama3本地部署RAG的完整命令流;
  4. 路径设计:按“入门→实践→进阶”分层推荐学习资料和练习项目。

每一步都对应一个可执行动作,且步骤间有逻辑依赖——这才是真正的“规划”,不是罗列待办事项。

5.2 你只需要确认,它就自动推进

在规划完成后,它会问:“是否按上述步骤执行?输入‘是’开始第一步。”
你回一个“是”,它立刻调用第一个工具,拿到原理说明后,自动进入第二步对比……整个流程像一个经验丰富的同事在帮你协同推进。


6. 总结:轻量Agent的价值不在“大”,而在“准”

6.1 我们到底构建了一个什么样的Agent?

  • 它很轻:6B参数,MacBook M2上满载推理速度仍达18 token/s,内存占用<6GB;
  • 它很专:不追求通用百科全书式知识,而是聚焦“工具调用+代码执行+任务分解”三个精准能力;
  • 它很稳:所有运算在本地完成,数据不出设备,企业合规性天然达标;
  • 它很省:无需API密钥、不依赖云端服务、不产生调用费用。

6.2 下一步,你可以这样延伸

  • 把天气工具换成真实API(如OpenWeatherMap),加一行key就上线;
  • 接入本地数据库插件,让它能查你自己的MySQL表;
  • 用Ollama的modelfile定制专属Agent:预置公司知识库、固定工作流、统一输出格式;
  • 将整个流程封装成CLI工具,一句命令启动“会议纪要生成Agent”或“周报撰写Agent”。

Agent的本质,从来不是替代人,而是把人从重复决策中解放出来,专注真正需要创造力的部分。

你现在拥有的,不是一个玩具模型,而是一台可编程的智能协作者——它的能力上限,取决于你愿意为它定义多少个有用的工具。


获取更多AI镜像

想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。

Logo

小龙虾开发者社区是 CSDN 旗下专注 OpenClaw 生态的官方阵地,聚焦技能开发、插件实践与部署教程,为开发者提供可直接落地的方案、工具与交流平台,助力高效构建与落地 AI 应用

更多推荐