Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AidKit - 本地化微型AI Agent工具箱

项目简介

AidKit 是全网稀缺的单文件微型本地AI Agent桌面工具箱,主打「单AK文件微型智能体、即用即毁、无常驻、低配置适配、纯本地离线」。

区别于 Open-WebUI 聊天臃肿端、LangGraph 重型框架,AidKit 专注:

  • 极简轻量:手写 ReAct 调度内核,无重型 Agent 框架
  • 单文件 Agent.ak 单文件包含完整 Agent 配置(含魔数校验,防篡改)
  • 全 Windows 兼容:适配 Windows 7 SP1 / 10 / 11
  • 本地离线:数据不出本机,兼容 Ollama 本地模型

核心能力

  • 直接对话(带工具):不选 Agent 也能读取本地文件、解析文档、读剪贴板、安全查询系统命令
  • 微型 Agent 调度:手写 ReAct 循环(Thought / Action / Observation),内置步数限制防死循环
  • 9 大原子工具:文件读写、剪贴板读写、文档解析(含 PDF/DOCX/XLSX)、安全命令行、多 Agent 委托、知识库记忆
  • 多 Agent 协作:主 Agent 可将子任务委托给其他 Agent(agent_delegate),支持专业分工与任务分解
  • 知识库长期记忆:跨会话持久化记忆(kb_add/kb_search),Agent 任务自动检索注入相关知识
  • 风险管控:文件写入、剪贴板写入、命令执行、知识写入等高危操作执行前弹窗用户确认,超时自动拒绝
  • 多模型适配:DeepSeek / 火山引擎 / MiniMax / 智谱 / 阿里云 / Ollama 等 18 家 OpenAI 兼容接口
  • 本地聊天记录:多会话持久化存储,自动保存,随时回溯

原子工具集

工具 功能 风险等级
file_read 读取本地文件(限 10MB,自动识别编码) 低(只读)
file_write 写入本地文件(需沙盒路径校验) 高(需确认)
clipboard_read 读取系统剪贴板 低(只读)
clipboard_write 覆盖系统剪贴板 高(需确认)
doc_parse 解析文档 txt/md/json/csv/log/docx/xlsx/pdf 低(只读)
shell_exec 安全执行系统命令(只读白名单) 高(需确认)
agent_delegate 委托子任务给其他 Agent(多 Agent 协作)
kb_add 向知识库添加知识(长期记忆写入) 高(需确认)
kb_search 从知识库检索知识(长期记忆读取) 低(只读)

文档解析(doc_parse)

支持 8 种格式,DOCX/XLSX/PDF 均用标准库实现(零第三方依赖)

  • DOCX:zip+xml 解析正文段落(word/document.xml
  • XLSX:zip+xml 解析工作表(共享字符串 + 内联字符串 + 数值)
  • PDF:优先 pypdf(如已安装),否则标准库 zlib+正则提取文本层

多 Agent 协作(agent_delegate)

  • 主 Agent 调用 agent_delegate 将子任务委托给指定 Agent
  • 子 Agent 独立运行自己的 ReAct 循环(自己的工具集/沙盒/系统提示词)
  • 委托深度限制 2 层(防循环委托)+ 超时保护 120 秒
  • 子 Agent 内部高风险操作仍走用户确认

知识库记忆(kb_add / kb_search)

  • 持久化:存储于 storage/knowledge_base.json,跨会话保留
  • 检索:中文分词 + 倒排索引 + 子串回退(零依赖)
  • 自动注入:Agent 每次任务自动检索相关知识注入上下文("回忆")
  • 知识库管理 API:/kb/list/kb/add/kb/delete/kb/clear/kb/search

shell_exec 安全设计(多重防护)

  1. 命令白名单:仅允许 20 个只读命令(dir/type/whoami/ipconfig/tasklist/findstr 等)
  2. 高危黑名单:拦截 del/format/rmdir/reg/taskkill/shutdown/powershell 等 40+ 模式
  3. 危险操作符:拒绝重定向、管道、嵌套执行
  4. 路径校验:命令中的路径必须通过沙盒白名单
  5. 超时控制:默认 10 秒、最大 30 秒,防命令卡死
  6. 输出截断:最多 4000 字符,防上下文过长
  7. 用户确认:执行前弹窗确认,超时自动拒绝

技术栈

层级 技术 版本
桌面框架 Electron 33(跨平台桌面壳)
前端 Vue 3 + Vite ES6 兼容
后端 Python 3.10+ 标准库优先(零第三方依赖)
数据存储 JSON 本地文件 纯本地无上传
模型适配 Ollama / 18 家 OpenAI 兼容接口 本地优先
沙盒 手写路径/工具/命令三重校验 无外部依赖

目录结构

AidKit/
├── core/                # 核心运行时(手写极简,无重型框架)
│   ├── micro_runtime.py # 微型Agent ReAct调度核心(含直接对话工具模式)
│   ├── ak_serializer.py # .ak单文件序列化/导入导出
│   ├── sandbox.py       # 本地工具权限沙盒(路径白名单/工具绑定/步数限制)
│   ├── risk_guard.py    # 风险管控(高风险操作用户确认)
│   ├── model_bridge.py  # 模型统一适配层(18家提供商)
│   ├── chat_store.py    # 聊天记录本地存储
│   ├── knowledge_base.py # 知识库长期记忆(持久化+检索+记忆注入)
│   ├── data_manager.py  # 数据导出/导入管理(JSON备份)
│   └── tiny_memory.py   # 单Agent微型独立记忆(任务内短期)
├── atom_tools/          # 原子工具集(9个:读写/剪贴板/解析/命令/委托/记忆)
├── micro_agents/        # 内置微型AK模板(.ak单文件)
├── configs/             # 全局极简配置(模型提供商/API Key)
├── storage/             # 本地数据存储(聊天记录/知识库,纯本地)
├── internal/            # 打包产物(aidkit-backend.exe Python后端)
├── electron/            # Electron 主进程(main.cjs + preload.cjs)
├── src/                 # Vue3前端源码
│   └── components/      # AgentList/AgentRunner/SettingsPage/DataManager 等
├── dist/                # 前端构建产物
└── main.py              # 后端入口(HTTP API)

快速启动

方式一:源码运行

# 1. 安装依赖
npm install

# 2. 构建前端(产物到 dist/)
npm run build

# 3. 启动 Electron 应用(自动拉起 Python 后端)
npm run electron

方式二:源码开发(热更新)

# 终端1: 启动 Vite dev server(端口自动递增,不冲突)
npm run dev

# 终端2: 以开发模式启动 Electron(加载 Vite dev server)
AIDKIT_DEV_URL=http://127.0.0.1:5173 npm run electron

方式三:打包安装包

npm run dist   # 执行 vite build + electron-builder,产出 NSIS 安装包到 release/

端口说明:生产模式 Electron 直接从 dist/ 加载前端(file:// 协议),不占用任何端口;开发模式 Vite 端口冲突时自动递增,不会报错。后端仅占用本地回环端口 37210。

使用示例

直接对话或 Agent 模式下,对助手说:

  • "帮我读一下 D 盘某文件夹里的 xxx.docx / xxx.xlsx / xxx.pdf"(文档解析)
  • "看看桌面上的文件列表"(shell_exec 安全查询)
  • "记住:我的会议时间是每周五下午3点"(知识库记忆写入,会弹窗确认)
  • "把整理任务交给文件整理助手"(多 Agent 协作委托)

数据管理

在「设置」→「数据管理」中可导出/导入 AidKit 全部本地数据(JSON 格式):

  • 选择性导出:可勾选 Agent 配置 / 聊天记录 / 知识库 / 模型设置,生成 aidkit_backup_*.json
  • 导入自动识别:选择之前导出的 JSON 文件,自动识别包含哪些类型数据
  • 覆盖确认:导入前明确提示"将覆盖现有数据",确认后才执行

已取消 .ak 单文件导出/导入,统一使用 JSON 数据备份。

HTTP API

接口 方法 说明
/health GET 健康检查
/agents GET Agent 列表
/agent/load POST 加载 Agent(.ak 文件)
/agent/builtin POST 加载内置 Agent 模板
/agent/parse POST 解析 Agent 配置
/agent/export POST 导出 Agent(.ak 文件)
/agent/save POST 保存 Agent
/agent/delete POST 删除 Agent
/agent/template GET 空白 Agent 模板 + 合法工具列表
/agent/run POST 运行 Agent(ReAct 调度)
/agent/pending GET 待确认的高风险操作
/agent/confirm POST 用户确认/拒绝高风险操作
/models GET 模型提供商列表(18 家)
/models/config GET 当前模型配置
/models/save POST 保存模型配置
/models/test POST 测试模型连接
/chat/create POST 创建会话
/chat/list GET 会话列表
/chat/get POST 会话详情
/chat/save POST 保存会话
/chat/append POST 追加消息到会话
/chat/delete POST 删除会话
/chat/send POST 发送消息(纯对话带工具 / Agent 模式)
/kb/list GET 知识库列表(分页)
/kb/add POST 添加知识到知识库
/kb/delete POST 删除一条知识
/kb/clear POST 清空知识库
/kb/search POST 检索知识库
/data/export POST 选择性导出数据(JSON)
/data/import/preview POST 导入文件自动识别
/data/import POST 执行导入(覆盖现有数据)
/shutdown POST 优雅关闭

.ak Agent 文件格式

.ak 单文件 = 完整 Agent 配置(JSON 格式 + 魔数校验):

{
  "magic": "AIDKIT",
  "version": "1.0",
  "name": "Agent名称",
  "desc": "功能描述",
  "system_prompt": "系统提示词",
  "tools": ["file_read", "file_write", "doc_parse", "shell_exec", "kb_search"],
  "permissions": {
    "allow_paths": ["D:\\Users\\xxx\\Desktop"],
    "max_steps": 10
  },
  "model_hint": ""
}
  • magic 校验:加载时校验魔数,拒绝非 AidKit 文件
  • 工具绑定:tools 列表决定 Agent 可用工具(经白名单校验)
  • 沙盒权限:allow_paths 限定可访问路径,max_steps 限制最大循环步数

安全架构

用户指令
   │
   ▼
ReAct 调度(MicroRuntime)
   │
   ├── 工具绑定校验 ──── 非绑定工具 → 拒绝
   ├── 风险管控 ──────── 高危操作 → 弹窗用户确认(超时自动拒绝)
   ├── 沙盒路径校验 ──── 越权路径 → 拒绝(防目录穿越)
   ├── 命令安全校验 ──── 白名单/黑名单/操作符拦截
   ├── 委托深度限制 ──── 多Agent委托超2层 → 拒绝(防循环委托)
   └── 步数限制 ──────── 超限自动终止

安全要点:

  • 零第三方依赖:核心运行时、文档解析(docx/xlsx/pdf)、知识库检索全部标准库实现
  • 本地隔离:所有数据存于本机 storage/,无任何上传
  • 双重沙盒:工具级(绑定校验)+ 路径级(白名单),高风险操作均需用户确认
  • 本地回环:后端 HTTP 服务仅监听 127.0.0.1,杜绝远程访问

开发路线

  • 第一步:搭建基础项目架构 + Windows 桌面壳子
  • 第二步:实现 .ak 文件序列化、导入导出核心能力
  • 第三步:开发极简 Micro-Agent ReAct 运行时
  • 第四步:对接多模型适配层(18 家 OpenAI 兼容接口 + Ollama)
  • 第五步:开发基础原子工具 + 沙盒权限管控 + 风险确认
  • 第六步:内置官方微型 AK 模板
  • 第七步:Windows 7 兼容性专项适配
  • 第八步:直接对话接入工具能力(run_direct)
  • 第九步:PDF/DOCX/XLSX 文档解析扩展
  • 第十步:多 Agent 协作(agent_delegate 委托)
  • 第十一步:知识库长期记忆(持久化 + 检索 + 记忆注入)
  • 第十二步:数据导出/导入(JSON 选择性导出 + 自动识别导入 + 覆盖确认)
  • 第十三步:设置界面重构(二级菜单:模型设置/数据管理/关于)
  • 第十四步:桌面框架迁移 Tauri → Electron(零端口占用)
  • 后续:知识库向量检索增强、多 Agent 并行调度、前端知识库管理界面

开源许可

MIT License - 基础功能完全开源免费

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages