算是第一个正经弄的小项目,参考了其他开源agent框架自己做的(AI辅助理解,但是代码逻辑是自己理出来的),只要是为了完成一些简单的工作流。
使用langgraph框架,以及自己电脑上搭建的Qwen3.6-27B,依赖Vllm运行,现在也能够接入Deepseek API运行。
以及能够为自己的日常生活增加一点可以复用的小工具,娱乐小功能。
项目使用 Python 3.12。首次使用时,需要在项目根目录自行创建虚拟环境并安装依赖。 下面以 Conda 为例:
conda create -n LLMv1 python=3.12 -y
conda activate LLMv1
python -m pip install --upgrade pip
python -m pip install -r requirements-LLMv1.txt复制环境变量示例文件:
Copy-Item .env.example .env然后根据 config/user_config.json 中所选 profile 的 base_url_env 和
api_key_env,在 .env 中填写对应的模型服务地址和 API Key。本项目是模型客户端,
本地 Qwen 模型需要另行启动兼容 OpenAI API 的推理服务;也可以直接配置 DeepSeek API。
目前QQ群聊里有一个小幽幽子机器人(不是那个大的正版幽幽子bot) 它的实现依靠qq_main_graph 但是小幽幽子机器人的Nonebot框架不在这里
一般的功能都用tool_agent_graph,他有子agent拉起功能,能够完成一些比较一般的任务。
tool_agent_graph 是带工具调用能力的 agent graph。项目根目录提供了
tool_agent_chat.py,可以直接在终端中进行多轮对话,不再需要临时创建 test 脚本。
完成上面的环境安装和模型配置后,激活虚拟环境并启动对话:
conda activate LLMv1
python tool_agent_chat.py脚本会为每次新对话生成一个 thread_id。对话 checkpoint 保存在
outputs/checkpoints/tool_agent.sqlite,之后传入同一个 ID 即可继续原来的对话:
python tool_agent_chat.py --thread-id cli-20260817-120000-abcd1234也可以选择模型和 Agent 工作目录:
python tool_agent_chat.py `
--profile deepseekv4-flash `
--vision-profile qwen3-vl `
--working-dir "E:\Code Program\LLM-Graph"对话中支持以下命令:
/help:查看帮助/thread:显示当前会话 ID/new:创建一个空白会话/save:将当前会话导出到outputs/cli_session_snapshot.json/exit或/quit:退出
查看所有启动参数:
python tool_agent_chat.py --help项目提供 Electron + React 桌面开发版。它会自动通过 conda run -n LLMv1
启动本地 FastAPI,并使用随机端口和临时访问令牌连接后端。
首次启动和后续启动都可以运行:
.\start_gui.ps1也可以手动安装和启动前端:
npm install --prefix desktop
npm run dev --prefix desktop如果 conda 不在 PATH 中,可显式指定 Python:
$env:LLM_GRAPH_PYTHON = "E:\Software\Anaconda3\envs\LLMv1\python.exe"
.\start_gui.ps1GUI 会话元数据保存在 outputs/gui_state.sqlite,消息 checkpoint 仍保存在
outputs/checkpoints/tool_agent.sqlite。模型地址和密钥继续由 .env 与
config/user_config.json 管理,不会写入浏览器存储。
- 子Agent编写和正常拉起
- 路径查询以及文件查询,正常文本文件和docx文件的读取
- 两层上下文压缩机制,实现tool返回结果的压缩以及LLM总结摘要
- 能够调用模型的图像理解功能,做成了Imageread
- QQ用的graph能够自动搜索历史记录并按意愿调用图像理解功能
- 支持deepseek版本的接入,QQ用的版本也支持了
- tool_agent_graph需要可以指定路径,然后能够自动拼接某.md文件到系统提示词中
- 用subprocess写python脚本执行功能
- 使用飞书机器人对接现在使用的平台,完成相关任务(目前使用3.6 27B完成功能)
- 增加多轮对话和支持中断以及断点续接功能(支持多轮对话之后它的checkpoints默认能实现了,不过可能跟普遍理解的断点续接不一样)
- 两层上下文机制触发仍超限时,构建三次重试,每次使用更强硬的自动压缩方法
-
增加OCR功能(用qwen多模态模型就行了),RAG改成用skill读取内容。然后看看能不能用3.5的小模型正常完成功能。 -
支持skill载入和网上skill的使用 - 支持把记忆写成md格式
- 接入某个奇怪的TTS,实现日常娱乐小工具和任务安排等简单功能
- 把项目放到docker上(?)
- 不可能的幻想:想让他能够操作鼠标完成一些操作,比如玩我的世界