本地 AI 工具调用与插件化控制平台产品系统

我要开发同款
syzd2026年09月24日
3阅读

技术信息

语言技术
PythonCSSJavaScript
系统类型
Windows
行业分类
人工智能智能硬件

作品详情

行业场景

面向本地 AI Agent 与智能设备控制场景,协作开发一套 Windows 本地 AI 工具调用平台。
系统将自然语言理解、工具检索、参数生成和实际执行相互解耦:用户通过 WebUI 输入自然语言指令,本地模型根据动态工具 Schema 选择并生成结构化 Tool Call,由 Python 工具运行时完成实际执行,再将工具结果回传模型继续规划或生成最终响应。
项目同时支持轻量 Needle 模型与本地 Qwen 模型,并提供动态插件注册、工具热加载、参数约束、多步工具链、本地模型下载与运行时管理等能力。

功能介绍

1. 自然语言 Tool Calling
将用户自然语言指令转换为标准化的:
tool name + arguments
结构,再由 Python 工具注册表执行对应功能。
模型本身不直接操作设备或业务逻辑,模型规划层与执行层保持分离。GitHub
2. 双模型运行架构
系统支持两类本地模型后端:
- Needle 3:针对轻量工具调用场景
- Qwen:通过 llama.cpp / llama-server 本地运行
由统一 ModelRouter 屏蔽不同模型实现差异,上层 Agent 流程无需关心实际使用的模型。GitHub
3. 动态插件系统
每个工具以独立插件形式存在,由:
- manifest.json
- Python tool.py
组成。
Manifest 描述工具名称、参数 Schema、关键词、模型提示及展示信息,Python 文件负责真正执行。
运行时自动扫描插件目录,可以动态发现新增、删除和修改,无需将工具硬编码进主程序。GitHub
4. 工具热加载与版本检测
系统对插件目录计算文件签名,并通过后台线程持续检测文件变化。
插件更新后自动重建 Tool Registry,并在下一次请求时刷新模型可用工具,实现开发阶段的动态热更新。GitHub
5. 工具候选检索与上下文压缩
针对本地小模型上下文有限的问题,不直接将所有工具 Schema 全量塞入 Prompt。
系统根据用户输入、工具关键词及关联关系筛选候选工具,并限制单轮注入数量,从而降低上下文长度和无关工具对模型调用准确率的影响。Qwen 分支目前最多选择 5 个相关 Schema。GitHub
6. 多步工具调用链
工具结果可以重新回灌模型,由模型根据返回结果决定:
- 继续调用下一工具
- 修改参数重新调用
- 或结束任务并回复用户
例如天气查询中,可先调用地点搜索工具取得 locatio

项目实现

Agent / 后端
Python
负责:
- Agent 主循环
- 模型路由
- Tool Registry
- 插件加载
- Schema 管理
- 参数检查
- 工具执行
- 本地模型运行时生命周期
- HTTP / SSE 服务
模型层
Needle 3
用于轻量结构化 Tool Calling,并利用其工具检索机制筛选候选 Schema。GitHub
Qwen + llama.cpp / llama-server
通过本地 OpenAI 风格 Chat Completion 接口完成自然语言回复及 Native Tool Calling。GitHub
工具层
Manifest 驱动插件架构
每个插件独立描述:
- Tool Schema
- 参数类型与范围
- 中英文元数据
- 检索关键词
- 相关工具
- Agent Hint
- 动态 Context
实现工具与 Agent 核心逻辑解耦。GitHub
前端
本地 WebUI,通过 HTTP API 与 SSE 接收模型及工具调用过程。
外部服务
当前示例插件包含:
- Windows 系统时间
- Open-Meteo 天气
- 地点搜索
- 模拟灯光
- 模拟风扇
- 模拟室温
- 工具目录查询
其中天气和地点工具支持连续工具调用。

示例图片

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论