inspiration-agent 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +368 -0
- package/dist/.env.example +53 -0
- package/dist/README.md +368 -0
- package/dist/agent/ai.agent.js +712 -0
- package/dist/channel/feishu-connection.js +238 -0
- package/dist/channel/feishu.service.js +222 -0
- package/dist/cli.js +659 -0
- package/dist/config/system.prompt.txt +312 -0
- package/dist/index.js +176 -0
- package/dist/model/base-llm.service.js +320 -0
- package/dist/model/deepseek.service.js +18 -0
- package/dist/model/kimi.service.js +19 -0
- package/dist/model/minimax.service.js +35 -0
- package/dist/model/zhipu.service.js +26 -0
- package/dist/services/database.service.js +697 -0
- package/dist/services/memory.manager.js +486 -0
- package/dist/services/message.queue.js +157 -0
- package/dist/tools/browser.tools.js +814 -0
- package/dist/tools/command.tools.js +361 -0
- package/dist/tools/file.tools.js +222 -0
- package/dist/tools/memory.tools.js +393 -0
- package/dist/tools/scheduler.tools.js +559 -0
- package/dist/tools/search.tools.js +208 -0
- package/dist/utils/logger.js +52 -0
- package/dist/utils/markdown-renderer.js +207 -0
- package/package.json +51 -0
package/README.md
ADDED
|
@@ -0,0 +1,368 @@
|
|
|
1
|
+
# Inspiration Agent - AI 智能助手
|
|
2
|
+
|
|
3
|
+
一个功能强大的 AI 智能助手,支持多 LLM 提供商、飞书集成、定时任务、浏览器自动化等功能。通过自然语言交互,实现文件操作、网络搜索、命令执行、智能体管理等复杂任务。
|
|
4
|
+
|
|
5
|
+
## 目录
|
|
6
|
+
|
|
7
|
+
- [项目概述](#项目概述)
|
|
8
|
+
- [核心功能](#核心功能)
|
|
9
|
+
- [环境要求](#环境要求)
|
|
10
|
+
- [安装](#安装)
|
|
11
|
+
- [快速开始](#快速开始)
|
|
12
|
+
- [CLI 命令](#cli-命令)
|
|
13
|
+
- [配置说明](#配置说明)
|
|
14
|
+
- [工具详解](#工具详解)
|
|
15
|
+
- [特殊命令](#特殊命令)
|
|
16
|
+
- [项目结构](#项目结构)
|
|
17
|
+
- [常见问题](#常见问题)
|
|
18
|
+
- [许可证](#许可证)
|
|
19
|
+
|
|
20
|
+
## 项目概述
|
|
21
|
+
|
|
22
|
+
Inspiration Agent 是一个企业级 AI 智能助手解决方案:
|
|
23
|
+
|
|
24
|
+
- **多模型支持**:DeepSeek、Kimi、智谱 GLM、MiniMax
|
|
25
|
+
- **多渠道交互**:CLI 命令行 + 飞书即时通讯
|
|
26
|
+
- **工具调用**:文件操作、网络搜索、浏览器自动化、命令执行
|
|
27
|
+
- **智能记忆**:短期记忆 + 长期记忆,保持对话上下文连贯
|
|
28
|
+
- **定时任务**:Cron 表达式定时执行,结果自动推送飞书
|
|
29
|
+
- **Token 统计**:使用 tiktoken 精确计算 Token 消耗
|
|
30
|
+
- **安全控制**:命令白名单机制,危险操作拦截
|
|
31
|
+
|
|
32
|
+
## 核心功能
|
|
33
|
+
|
|
34
|
+
| 功能模块 | 描述 |
|
|
35
|
+
|---------|------|
|
|
36
|
+
| 文件操作 | 读取、写入、列出、删除文件 |
|
|
37
|
+
| 网络搜索 | 搜索引擎查询、网页内容抓取 |
|
|
38
|
+
| 浏览器自动化 | 页面导航、元素操作、脚本执行 |
|
|
39
|
+
| 命令执行 | Shell 命令执行(白名单控制) |
|
|
40
|
+
| 定时任务 | 创建、查询、更新、删除定时任务 |
|
|
41
|
+
| 记忆管理 | 长期记忆 + 短期记忆智能管理 |
|
|
42
|
+
| 飞书集成 | 长连接消息接收、富文本推送 |
|
|
43
|
+
|
|
44
|
+
## 环境要求
|
|
45
|
+
|
|
46
|
+
- **Node.js**: v18.0.0 或更高版本
|
|
47
|
+
- **操作系统**: macOS / Linux / Windows
|
|
48
|
+
|
|
49
|
+
## 安装
|
|
50
|
+
|
|
51
|
+
### 方式一:NPM 全局安装(推荐)
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
npm install -g inspiration-agent
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
### 方式二:从源码安装
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
git clone https://github.com/your-username/inspiration.git
|
|
61
|
+
cd inspiration
|
|
62
|
+
npm install
|
|
63
|
+
npm run build
|
|
64
|
+
npm link
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## 快速开始
|
|
68
|
+
|
|
69
|
+
### 1. 运行配置向导
|
|
70
|
+
|
|
71
|
+
首次使用需要配置 API 密钥等信息:
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
inspiration onboard
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
配置向导会引导你完成:
|
|
78
|
+
- LLM 提供商选择(DeepSeek/Kimi/智谱/MiniMax)
|
|
79
|
+
- API 密钥配置
|
|
80
|
+
- 飞书应用配置
|
|
81
|
+
- 服务端口和安全设置
|
|
82
|
+
|
|
83
|
+
### 2. 启动服务
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
inspiration start -d
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
### 3. 进入交互模式
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
inspiration cli
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
## CLI 命令
|
|
96
|
+
|
|
97
|
+
```
|
|
98
|
+
inspiration <command> [options]
|
|
99
|
+
|
|
100
|
+
命令:
|
|
101
|
+
start 启动服务
|
|
102
|
+
-d, --daemon 后台运行
|
|
103
|
+
stop 停止服务
|
|
104
|
+
restart 重启服务
|
|
105
|
+
status 查看服务状态
|
|
106
|
+
version 查看版本号
|
|
107
|
+
onboard 配置向导
|
|
108
|
+
cli 打开命令行交互(需要服务运行中)
|
|
109
|
+
help 显示帮助信息
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
### 示例
|
|
113
|
+
|
|
114
|
+
```bash
|
|
115
|
+
inspiration start # 前台启动
|
|
116
|
+
inspiration start -d # 后台启动
|
|
117
|
+
inspiration status # 查看状态
|
|
118
|
+
inspiration cli # 进入交互模式
|
|
119
|
+
inspiration stop # 停止服务
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
## 配置说明
|
|
123
|
+
|
|
124
|
+
配置文件位置:`~/.inspiration/.env`
|
|
125
|
+
|
|
126
|
+
### LLM 提供商配置
|
|
127
|
+
|
|
128
|
+
| 配置项 | 说明 | 默认值 |
|
|
129
|
+
|--------|------|--------|
|
|
130
|
+
| `LLM_PROVIDER` | LLM 提供商 (deepseek/kimi/zhipu/minimax) | `deepseek` |
|
|
131
|
+
|
|
132
|
+
### DeepSeek 配置
|
|
133
|
+
|
|
134
|
+
| 配置项 | 说明 | 必填 |
|
|
135
|
+
|--------|------|------|
|
|
136
|
+
| `DEEPSEEK_API_KEY` | API 密钥 | ✅ |
|
|
137
|
+
| `DEEPSEEK_API_URL` | API 端点 | 默认值 |
|
|
138
|
+
| `DEEPSEEK_MODEL` | 模型名称 | `deepseek-chat` |
|
|
139
|
+
|
|
140
|
+
### Kimi 配置
|
|
141
|
+
|
|
142
|
+
| 配置项 | 说明 | 必填 |
|
|
143
|
+
|--------|------|------|
|
|
144
|
+
| `KIMI_API_KEY` | API 密钥 | ✅ |
|
|
145
|
+
| `KIMI_API_URL` | API 端点 | 默认值 |
|
|
146
|
+
| `KIMI_MODEL` | 模型名称 | `moonshot-v1-8k` |
|
|
147
|
+
|
|
148
|
+
### 智谱 GLM 配置
|
|
149
|
+
|
|
150
|
+
| 配置项 | 说明 | 必填 |
|
|
151
|
+
|--------|------|------|
|
|
152
|
+
| `ZHIPU_API_KEY` | API 密钥 | ✅ |
|
|
153
|
+
| `ZHIPU_API_URL` | API 端点 | 默认值 |
|
|
154
|
+
| `ZHIPU_MODEL` | 模型名称 | `glm-4-flash` |
|
|
155
|
+
|
|
156
|
+
### MiniMax 配置
|
|
157
|
+
|
|
158
|
+
| 配置项 | 说明 | 必填 |
|
|
159
|
+
|--------|------|------|
|
|
160
|
+
| `MINIMAX_API_KEY` | API 密钥 | ✅ |
|
|
161
|
+
| `MINIMAX_GROUP_ID` | Group ID | ✅ |
|
|
162
|
+
| `MINIMAX_API_URL` | API 端点 | 默认值 |
|
|
163
|
+
| `MINIMAX_MODEL` | 模型名称 | `abab6.5s-chat` |
|
|
164
|
+
|
|
165
|
+
### 飞书配置
|
|
166
|
+
|
|
167
|
+
| 配置项 | 说明 | 必填 |
|
|
168
|
+
|--------|------|------|
|
|
169
|
+
| `FEISHU_APP_ID` | 应用 ID | ✅ |
|
|
170
|
+
| `FEISHU_APP_SECRET` | 应用密钥 | ✅ |
|
|
171
|
+
| `FEISHU_VERIFICATION_TOKEN` | 验证 Token | ✅ |
|
|
172
|
+
| `FEISHU_ENCRYPT_KEY` | 加密密钥 | 可选 |
|
|
173
|
+
| `FEISHU_DEFAULT_CHAT_ID` | 默认聊天 ID | 可选 |
|
|
174
|
+
|
|
175
|
+
### 服务配置
|
|
176
|
+
|
|
177
|
+
| 配置项 | 说明 | 默认值 |
|
|
178
|
+
|--------|------|--------|
|
|
179
|
+
| `PORT` | 服务端口 | `3000` |
|
|
180
|
+
| `ENABLE_STREAM` | 流式输出 | `true` |
|
|
181
|
+
| `DATABASE_PATH` | 数据库路径 | `./data/ai_agent.db` |
|
|
182
|
+
|
|
183
|
+
### 安全配置
|
|
184
|
+
|
|
185
|
+
| 配置项 | 说明 | 默认值 |
|
|
186
|
+
|--------|------|--------|
|
|
187
|
+
| `COMMAND_WHITELIST_ENABLED` | 启用命令白名单 | `true` |
|
|
188
|
+
|
|
189
|
+
## 工具详解
|
|
190
|
+
|
|
191
|
+
### 文件工具
|
|
192
|
+
|
|
193
|
+
| 工具 | 功能 |
|
|
194
|
+
|------|------|
|
|
195
|
+
| `read_file` | 读取文件内容 |
|
|
196
|
+
| `write_file` | 写入文件 |
|
|
197
|
+
| `list_files` | 列出目录 |
|
|
198
|
+
| `delete_file` | 删除文件 |
|
|
199
|
+
|
|
200
|
+
### 搜索工具
|
|
201
|
+
|
|
202
|
+
| 工具 | 功能 |
|
|
203
|
+
|------|------|
|
|
204
|
+
| `web_search` | 网络搜索 |
|
|
205
|
+
| `fetch_web_page` | 抓取网页 |
|
|
206
|
+
|
|
207
|
+
### 浏览器工具
|
|
208
|
+
|
|
209
|
+
| 工具 | 功能 |
|
|
210
|
+
|------|------|
|
|
211
|
+
| `launch_browser` | 启动浏览器 |
|
|
212
|
+
| `navigate_to` | 导航页面 |
|
|
213
|
+
| `click_element` | 点击元素 |
|
|
214
|
+
| `fill_input` | 填写表单 |
|
|
215
|
+
| `get_page_content` | 获取内容 |
|
|
216
|
+
| `execute_script` | 执行脚本 |
|
|
217
|
+
| `close_browser` | 关闭浏览器 |
|
|
218
|
+
|
|
219
|
+
### 命令工具
|
|
220
|
+
|
|
221
|
+
| 工具 | 功能 |
|
|
222
|
+
|------|------|
|
|
223
|
+
| `execute_command` | 执行 Shell 命令 |
|
|
224
|
+
|
|
225
|
+
> 默认启用白名单模式,仅允许安全命令执行。
|
|
226
|
+
|
|
227
|
+
### 定时任务工具
|
|
228
|
+
|
|
229
|
+
| 工具 | 功能 |
|
|
230
|
+
|------|------|
|
|
231
|
+
| `create_scheduled_task` | 创建任务 |
|
|
232
|
+
| `get_all_scheduled_tasks` | 获取所有任务 |
|
|
233
|
+
| `get_scheduled_task` | 获取任务详情 |
|
|
234
|
+
| `update_scheduled_task` | 更新任务 |
|
|
235
|
+
| `delete_scheduled_task` | 删除任务 |
|
|
236
|
+
| `toggle_scheduled_task` | 启用/禁用 |
|
|
237
|
+
|
|
238
|
+
### 记忆工具
|
|
239
|
+
|
|
240
|
+
| 工具 | 功能 |
|
|
241
|
+
|------|------|
|
|
242
|
+
| `save_memory` | 保存长期记忆 |
|
|
243
|
+
| `search_memories` | 搜索记忆 |
|
|
244
|
+
| `get_all_memories` | 获取所有记忆 |
|
|
245
|
+
| `delete_memory` | 删除记忆 |
|
|
246
|
+
|
|
247
|
+
#### 记忆类型
|
|
248
|
+
|
|
249
|
+
| 类型 | 说明 |
|
|
250
|
+
|------|------|
|
|
251
|
+
| `important` | 重要信息 |
|
|
252
|
+
| `identity` | 身份信息 |
|
|
253
|
+
| `preference` | 偏好设置 |
|
|
254
|
+
| `task` | 任务相关 |
|
|
255
|
+
| `general` | 一般信息 |
|
|
256
|
+
|
|
257
|
+
### Cron 表达式
|
|
258
|
+
|
|
259
|
+
```
|
|
260
|
+
秒 分 时 日 月 星期
|
|
261
|
+
|
|
262
|
+
示例:
|
|
263
|
+
0 9 * * * - 每天早上 9 点
|
|
264
|
+
0 */30 * * * * - 每 30 分钟
|
|
265
|
+
0 9 * * 1-5 - 工作日早上 9 点
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
## 特殊命令
|
|
269
|
+
|
|
270
|
+
在 CLI 或飞书中可使用:
|
|
271
|
+
|
|
272
|
+
| 命令 | 功能 |
|
|
273
|
+
|------|------|
|
|
274
|
+
| `/new` | 清空上下文 |
|
|
275
|
+
| `/tokens` | Token 统计 |
|
|
276
|
+
| `/status` | 服务状态 |
|
|
277
|
+
| `/shutdown` | 停止服务 |
|
|
278
|
+
|
|
279
|
+
## 项目结构
|
|
280
|
+
|
|
281
|
+
```
|
|
282
|
+
inspiration/
|
|
283
|
+
├── src/
|
|
284
|
+
│ ├── agent/
|
|
285
|
+
│ │ └── ai.agent.js # AI 智能体核心
|
|
286
|
+
│ ├── channel/
|
|
287
|
+
│ │ ├── feishu-connection.js # 飞书长连接
|
|
288
|
+
│ │ └── feishu.service.js # 飞书服务
|
|
289
|
+
│ ├── config/
|
|
290
|
+
│ │ └── system.prompt.txt # 系统提示词
|
|
291
|
+
│ ├── model/
|
|
292
|
+
│ │ ├── base-llm.service.js # LLM 基类
|
|
293
|
+
│ │ ├── deepseek.service.js # DeepSeek
|
|
294
|
+
│ │ ├── kimi.service.js # Kimi
|
|
295
|
+
│ │ ├── minimax.service.js # MiniMax
|
|
296
|
+
│ │ └── zhipu.service.js # 智谱
|
|
297
|
+
│ ├── services/
|
|
298
|
+
│ │ ├── database.service.js # 数据库服务
|
|
299
|
+
│ │ ├── memory.manager.js # 记忆管理
|
|
300
|
+
│ │ └── message.queue.js # 消息队列
|
|
301
|
+
│ ├── tools/
|
|
302
|
+
│ │ ├── browser.tools.js # 浏览器工具
|
|
303
|
+
│ │ ├── command.tools.js # 命令工具
|
|
304
|
+
│ │ ├── file.tools.js # 文件工具
|
|
305
|
+
│ │ ├── memory.tools.js # 记忆工具
|
|
306
|
+
│ │ ├── scheduler.tools.js # 定时任务
|
|
307
|
+
│ │ └── search.tools.js # 搜索工具
|
|
308
|
+
│ ├── utils/
|
|
309
|
+
│ │ ├── logger.js # 日志
|
|
310
|
+
│ │ └── markdown-renderer.js # Markdown 渲染
|
|
311
|
+
│ ├── cli.js # CLI 入口
|
|
312
|
+
│ └── index.js # 服务入口
|
|
313
|
+
├── data/ # 数据目录(自动创建)
|
|
314
|
+
│ └── ai_agent.db # SQLite 数据库
|
|
315
|
+
├── .env.example # 配置模板
|
|
316
|
+
└── package.json
|
|
317
|
+
```
|
|
318
|
+
|
|
319
|
+
## 常见问题
|
|
320
|
+
|
|
321
|
+
### Q: 如何获取 API Key?
|
|
322
|
+
|
|
323
|
+
| 提供商 | 获取地址 |
|
|
324
|
+
|--------|----------|
|
|
325
|
+
| DeepSeek | https://www.deepseek.com/ |
|
|
326
|
+
| Kimi | https://platform.moonshot.cn/ |
|
|
327
|
+
| 智谱 | https://open.bigmodel.cn/ |
|
|
328
|
+
| MiniMax | https://www.minimaxi.com/ |
|
|
329
|
+
|
|
330
|
+
### Q: 如何切换 LLM 提供商?
|
|
331
|
+
|
|
332
|
+
修改配置文件 `~/.inspiration/.env`:
|
|
333
|
+
|
|
334
|
+
```env
|
|
335
|
+
LLM_PROVIDER=kimi # 切换到 Kimi
|
|
336
|
+
```
|
|
337
|
+
|
|
338
|
+
### Q: 飞书应用如何配置?
|
|
339
|
+
|
|
340
|
+
1. 访问 [飞书开放平台](https://open.feishu.cn/)
|
|
341
|
+
2. 创建企业自建应用
|
|
342
|
+
3. 开启机器人能力
|
|
343
|
+
4. 配置事件订阅
|
|
344
|
+
5. 获取 App ID 和 App Secret
|
|
345
|
+
|
|
346
|
+
### Q: 数据库文件在哪里?
|
|
347
|
+
|
|
348
|
+
默认位置:`./data/ai_agent.db`
|
|
349
|
+
|
|
350
|
+
可通过 `DATABASE_PATH` 环境变量修改。
|
|
351
|
+
|
|
352
|
+
### Q: 命令执行被阻止?
|
|
353
|
+
|
|
354
|
+
检查 `COMMAND_WHITELIST_ENABLED` 配置:
|
|
355
|
+
- `true`:仅白名单命令可执行
|
|
356
|
+
- `false`:可执行任意命令(不推荐)
|
|
357
|
+
|
|
358
|
+
### Q: 浏览器自动化无法使用?
|
|
359
|
+
|
|
360
|
+
确保已安装 Puppeteer 依赖,首次运行会自动下载 Chromium。
|
|
361
|
+
|
|
362
|
+
## 许可证
|
|
363
|
+
|
|
364
|
+
MIT License
|
|
365
|
+
|
|
366
|
+
---
|
|
367
|
+
|
|
368
|
+
**Made with ❤️ by Inspiration Team**
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# LLM 提供商配置
|
|
2
|
+
# 必填项,可选值: deepseek, kimi, zhipu, minimax 默认值: deepseek
|
|
3
|
+
LLM_PROVIDER=deepseek
|
|
4
|
+
|
|
5
|
+
# DeepSeek API 配置
|
|
6
|
+
DEEPSEEK_API_KEY=your_deepseek_api_key
|
|
7
|
+
# DeepSeek API URL 默认值: https://api.deepseek.com/v1/chat/completions
|
|
8
|
+
DEEPSEEK_API_URL=https://api.deepseek.com/v1/chat/completions
|
|
9
|
+
DEEPSEEK_MODEL=deepseek-chat
|
|
10
|
+
|
|
11
|
+
# Kimi (月之暗面) API 配置
|
|
12
|
+
KIMI_API_KEY=your_kimi_api_key
|
|
13
|
+
# Kimi API URL 默认值: https://api.moonshot.cn/v1/chat/completions
|
|
14
|
+
KIMI_API_URL=https://api.moonshot.cn/v1/chat/completions
|
|
15
|
+
KIMI_MODEL=moonshot-v1-8k
|
|
16
|
+
|
|
17
|
+
# 智谱 GLM API 配置
|
|
18
|
+
ZHIPU_API_KEY=your_zhipu_api_key
|
|
19
|
+
# Zhipu API URL 默认值: https://open.bigmodel.cn/api/paas/v4/chat/completions
|
|
20
|
+
ZHIPU_API_URL=https://open.bigmodel.cn/api/paas/v4/chat/completions
|
|
21
|
+
ZHIPU_MODEL=glm-4-flash
|
|
22
|
+
|
|
23
|
+
# MiniMax API 配置
|
|
24
|
+
MINIMAX_API_KEY=your_minimax_api_key
|
|
25
|
+
MINIMAX_GROUP_ID=your_minimax_group_id
|
|
26
|
+
MINIMAX_API_URL=https://api.minimax.chat/v1/chat/completions
|
|
27
|
+
MINIMAX_MODEL=abab6.5s-chat
|
|
28
|
+
|
|
29
|
+
# 飞书应用配置
|
|
30
|
+
# 必填项
|
|
31
|
+
FEISHU_APP_ID=your_feishu_app_id
|
|
32
|
+
# 必填项
|
|
33
|
+
FEISHU_APP_SECRET=your_feishu_app_secret
|
|
34
|
+
# 必填项
|
|
35
|
+
FEISHU_VERIFICATION_TOKEN=your_feishu_verification_token
|
|
36
|
+
# 非必填项,根据飞书设置配置,默认值为空
|
|
37
|
+
FEISHU_ENCRYPT_KEY=your_feishu_encrypt_key
|
|
38
|
+
# 非必填项,默认值为空
|
|
39
|
+
FEISHU_DEFAULT_CHAT_ID=your_default_chat_id
|
|
40
|
+
|
|
41
|
+
# 服务配置
|
|
42
|
+
PORT=3000
|
|
43
|
+
ENABLE_STREAM=true
|
|
44
|
+
|
|
45
|
+
# 命令安全配置
|
|
46
|
+
# COMMAND_WHITELIST_ENABLED=true 表示启用命令白名单模式(推荐)
|
|
47
|
+
# COMMAND_WHITELIST_ENABLED=false 表示禁用白名单,可执行任意命令(仅用于可信环境)
|
|
48
|
+
# 必填项,默认值: true
|
|
49
|
+
COMMAND_WHITELIST_ENABLED=true
|
|
50
|
+
|
|
51
|
+
# 数据库配置
|
|
52
|
+
# 必填项,默认值: ./data/ai_agent.db
|
|
53
|
+
DATABASE_PATH=./data/ai_agent.db
|