欢迎光临
我们一直在努力

智联工坊实战:制造知识库工具调用Agent从零搭建(OEE+手册+排班)

🏭导航收藏不迷路—>制造业数据与AI践行者老蒋的技术博客全系列文章汇总(持续更新)

文章摘要

        这篇文章是以虚拟灯塔工厂“智联工坊”为样本,手把手搭建一个具备OEE计算、设备手册检索、排班查询三大能力的制造知识库工具调用Agent。基于LangChain ReAct模式,完整覆盖从数据模拟、向量库构建到命令行与Web界面交互的全流程实战,直击制造现场多系统切换痛点。源码可开源,可直接复用。

开篇:我为什么写这篇文章?

        在智联工坊(我们的虚拟智能硬件灯塔工厂)的车间里,班组长小刘每天至少要切换三个系统:查OEE要翻MES报表、设备报警要翻500页PDF维修手册、问排班要打电话给调度室。每查一次,5-10分钟就没了。

        本文要解决的痛点:把这三个割裂的动作,整合成一个统一的AI Agent对话入口。班组长只需用大白话问一句,Agent自动判断意图、调用对应工具、秒级返回结果。

        适合谁读:制造企业的IT工程师、数据架构师,以及正在尝试将AI Agent引入生产管理场景的开发者。

脱敏声明:本文基于虚拟工厂“智联工坊”场景,所有数据均已脱敏处理,设备型号及故障码均为模拟构造。

正文:四步从零搭建

第一步:理解工程目录骨架

        本项目的核心设计思想是 common/ 管基建,cases/ 管案例。每个案例完全独立,互不干扰,后续Case02、Case03可以直接复用common/中的共享能力。文件架构目录如下:

javy21_manufacturing_ai_practice/
├── common/ # 共享基建层(所有案例共用)
│ ├── utils.py # 日志、环境变量加载
│ ├── llm_client.py # 统一LLM加载(Ollama/VLLM切换)
│ ├── chroma_client.py # 向量库单例连接器
│ └── base_agent_builder.py # Agent构建基类

├── cases/
│ └── case01_tool_agent/ # 本案例(工具调用Agent)
│ ├── config.py # 专属配置(端口、路径)
│ ├── tools/ # 三个核心工具
│ │ ├── oee_calculator.py # OEE计算器
│ │ ├── manual_retriever.py # 设备手册检索
│ │ └── shift_query.py # 排班查询
│ ├── agent/
│ │ └── builder.py # Agent组装(仅需5行代码)
│ ├── scripts/ # 四步执行脚本
│ │ ├── 01_generate_mock_data.py
│ │ ├── 02_init_chroma.py
│ │ ├── 03_test_cli.py
│ │ └── 04_run_web.py
│ └── web/ # Web对话界面
│ ├── app.py
│ └── templates/index.html
└── data/processed/ # 生成的模拟数据
└── production_records.csv

第二步:Step 1 —— 生成模拟数据

        运行 scripts/01_generate_mock_data.py,生成智联工坊三条产线(交互屏组装A线、环境监测校准B线、定位器贴片C线)近7天的产量、良品、排班数据。

cd cases/case01_tool_agent/scripts
python 01_generate_mock_data.py

执行效果:

2026-07-19 11:50:29 – __main__ – INFO – ✅ 模拟数据生成成功: 21 条记录 -> data/processed/production_records.csv

生成的CSV包含以下字段:date、production_line、product、total_output、good_output、planned_time_minutes、shift

第三步:Step 2 —— 构建向量知识库

        运行 scripts/02_init_chroma.py,将设备故障知识(预设5条,可扩展)导入Chroma向量库,用于后续的手册检索。

python 02_init_chroma.py

执行效果:

2026-07-19 11:50:29 – __main__ – INFO – ✅ 向量库构建成功!共 5 条知识

知识库预设内容示例:

  • 交互屏E401错误:触摸屏驱动通信超时,请重启工控机并检查USB连接线。

  • 环境监测仪A02报警:PM2.5传感器偏移,需使用标准气样重新校准。

第四步:Step 3 —— 命令行CLI测试

运行 scripts/03_test_cli.py,进入交互式命令行测试模式,验证Agent的三个工具是否能被正确调用。

python 03_test_cli.py

启动界面:

🏭 智联工坊 · 制造AI助手 CLI 测试模式
📋 示例命令(可直接复制粘贴)
🔢 OEE 计算:计算交互屏组装A线今天的OEE
📖 手册检索:设备报错E401怎么处理
🗓️ 排班查询:定位器贴片C线明天什么班次

测试用例1:OEE计算

🧑‍💻 你: 计算交互屏组装A线在2026-07-12的OEE

> Entering new AgentExecutor chain…
Thought: 需要调用calculate_oee工具来计算OEE。
Action: calculate_oee
Action Input: {"line_name": "交互屏组装A线", "date": "2026-07-12"}
Observation: {"line": "交互屏组装A线", "oee": 86.39, "quality_rate": 97.0, …}
Thought: 我已获得OEE计算结果
Final Answer: 交互屏组装A线在2026-07-12的OEE为86.39%

🤖 Agent: 交互屏组装A线在2026-07-12的OEE为86.39%,其中良品率为97.0%,可用性为93.75%。

测试用例2:手册检索

🧑‍💻 你: 设备报错E401怎么处理
🤖 Agent: 【智联工坊维修手册匹配】
交互屏E401错误:触摸屏驱动通信超时,请重启工控机并检查USB连接线。

测试用例3:排班查询

🧑‍💻 你: 定位器贴片C线明天什么班次
🤖 Agent: 定位器贴片C线在2026-07-20的排班为:白班

第五步:Step 4 —— 启动Web界面

运行 scripts/04_run_web.py,启动Flask Web服务,在浏览器中体验图形化对话界面。

python 04_run_web.py

浏览器打开 http://localhost:5001,即可看到工业风格的对话界面:

核心代码解析

工具定义(以OEE计算器为例)

每个工具继承 BaseTool,定义 name、description 和 args_schema。description 的清晰度直接影响Agent的意图识别准确率。

class CalculateOEETool(BaseTool):
name: str = "calculate_oee"
description: str = "计算指定产线在指定日期的OEE(百分比)。需要产线名称和日期。"
args_schema: Type[BaseModel] = OEEInput

def _run(self, line_name: str, date: Optional[str] = None) -> str:
# 防御性JSON解析(解决Agent嵌套JSON问题)
if line_name.strip().startswith("{") and line_name.strip().endswith("}"):
data = json.loads(line_name)
line_name = data.get("line_name", line_name)
date = data.get("date", date)
# … 核心计算逻辑

Agent组装

本案例的 builder.py 仅需5行代码——继承 BaseAgentBuilder,覆写 _register_tools() 方法即可完成Agent组装。

class ManufacturingToolAgentBuilder(BaseAgentBuilder):
def _register_tools(self) -> List[BaseTool]:
return [
CalculateOEETool(),
SearchManualTool(),
QueryShiftTool()
]

        关于“本地模型 vs 企业GPU”的补充说明:本文代码同时支持Ollama(CPU)和VLLM(GPU)两种模式,可根据具体情况进行灵活配置。

总结:价值提炼

本文解决了什么:通过AI Agent将制造现场三个高频操作(OEE计算、手册检索、排班查询)融合为一个极简对话入口,单次查询从5分钟缩短至15秒。

可复用的方法论:

  • 三层加固策略:Prompt规则约束 + 工具描述语义区分 + _run()防御性解析,确保Agent准确调用工具。

  • 工程架构:common/ + cases/ 隔离策略,支持后续无限扩展,互不干扰。

  • 一鱼多吃:本次实战中产生的6个典型踩坑点,将独立成篇发布在《数据与AI工程排坑笔记》专栏。

  • 智能工厂对标:本方案对应GB/T 39116-2020中 “生产作业”能力域(主域)——提升OEE计算效率;以及 “数据资源”能力域(辅域)——实现知识库的结构化检索。可直接用于国家智能制造能力成熟度三级(集成级)申报材料中的技术佐证。

    系列导航

    • 本文所属专栏:[AI赋能数据开发工程手册]

    • 上一篇:多工具协同Agent实战:用LangChain构建越南市场情报系统-CSDN博客

    • 下一篇:《Agent的记忆系统:让智联工坊AI记住班组长偏好》(Case02,即将发布)

    关于作者

            制造业数据与AI践行者老蒋,23年IT老兵。聚焦制造业数据架构与AI融合落地,主导多个国家级/省级数智化项目申报并成功获批。全流程实战,全源码开源。

    交流互动

            您在将AI Agent引入制造场景时,是否遇到过工具意图识别不准的问题?欢迎评论区交流。

    赞(0)
    未经允许不得转载:171主机测评 » 智联工坊实战:制造知识库工具调用Agent从零搭建(OEE+手册+排班)
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址