foliko 1.1.71 → 1.1.73

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/docs/features.md CHANGED
@@ -1,120 +1,120 @@
1
- # Foliko 功能点清单
2
-
3
- ## 1. AI 对话
4
-
5
- | 功能 | 说明 |
6
- | ----------- | --------------------------------------- |
7
- | 流式输出 | 实时流式响应 |
8
- | 多 Provider | minimax / deepseek / openai / anthropic |
9
- | 模型配置 | 支持自定义 model、baseURL、apiKey |
10
- | 系统提示词 | 支持 sharedPrompt 模板变量 |
11
- | 思考过程 | 可选的 think 插件显示推理 |
12
-
13
- ## 2. 工具系统
14
-
15
- | 功能 | 说明 |
16
- | ------------------------ | --------------------------- |
17
- | `Bash` | 执行 Shell/Bash 命令 |
18
- | `Read` | 读取文件内容 |
19
- | `Write` | 写入文件 |
20
- | `Edit` | 编辑文件(diff 替换) |
21
- | `Glob` | 按模式搜索文件 |
22
- | `Grep` | 文件内容搜索 |
23
- | `python` | 执行 Python 代码 |
24
- | `execute_workflow` | 执行工作流 |
25
- | `loadSkill/reloadSkills` | 技能加载与重载 |
26
- | `reloadWorkflows` | 工作流重载 |
27
- | MCP 工具 | Model Context Protocol 集成 |
28
-
29
- ## 3. 插件系统
30
-
31
- | 功能 | 说明 |
32
- | ------------ | ------------------------------------ |
33
- | 插件目录 | `.foliko/plugins/` 自动加载 |
34
- | 插件生命周期 | install / start / reload / uninstall |
35
- | 工具注册 | 插件可注册工具到 Agent |
36
- | 事件系统 | 插件间通过事件通信 |
37
- | 状态持久化 | 插件配置保存到 JSON |
38
- | 优先级控制 | priority 决定加载顺序 |
39
-
40
- ## 4. 工作流引擎
41
-
42
- | 功能 | 说明 |
43
- | ----------- | ------------------------------- |
44
- | `script` | JavaScript 脚本执行 |
45
- | `loop` | 循环(maxIterations) |
46
- | `condition` | 条件分支 |
47
- | `delay` | 延时等待 |
48
- | `parallel` | 并行执行 |
49
- | 上下文共享 | variables / input / stepResults |
50
- | 目录加载 | `.foliko/workflows/` 自动注册 |
51
-
52
- ## 5. 技能系统
53
-
54
- | 功能 | 说明 |
55
- | -------- | ---------------------------- |
56
- | 技能目录 | `skills/` + `.foliko/skills/` |
57
- | SKILL.md | frontmatter 元数据格式 |
58
- | 自动发现 | 递归扫描子目录 |
59
- | 工具过滤 | allowed-tools 限制可用工具 |
60
- | 重载支持 | reloadSkills 动态加载 |
61
-
62
- ## 6. 会话管理
63
-
64
- | 功能 | 说明 |
65
- | ------------- | ------------------------- |
66
- | SessionPlugin | 统一会话历史管理 |
67
- | 多会话 | 按 sessionId 隔离 |
68
- | 消息持久化 | JSON 文件存储 |
69
- | 元数据 | 支持 platform / userId 等 |
70
- | 会话事件 | session:created / deleted |
71
-
72
- ## 7. 子 Agent
73
-
74
- | 功能 | 说明 |
75
- | ----------- | --------------------------- |
76
- | 子Agent配置 | `.foliko/agents/*.json/*.md` |
77
- | 角色定义 | role / description |
78
- | 工具继承 | parentTools 指定可用工具 |
79
- | 工具路由 | 自动匹配最合适 Agent |
80
- | 协作执行 | 支持多 Agent 分工 |
81
-
82
- ## 8. 通讯插件
83
-
84
- | 功能 | 说明 |
85
- | -------- | -------------------------------- |
86
- | Telegram | Bot Token / 群组模式 / 命令前缀 |
87
- | 微信 | WebSocket 登录 / 二维码 |
88
- | 飞书 | WS 长连接 / 事件订阅 |
89
- | 邮件 | IMAP 读取 / SMTP 发送 / 163 兼容 |
90
-
91
- ## 9. 执行器
92
-
93
- | 功能 | 说明 |
94
- | -------------- | ---------------------- |
95
- | ShellExecutor | system 命令执行 |
96
- | PythonExecutor | Python 3 代码执行 |
97
- | 超时控制 | 可配置 maxDuration |
98
- | 结果返回 | stdout/stderr/exitCode |
99
-
100
- ## 10. Web 服务
101
-
102
- | 功能 | 说明 |
103
- | ---------------------- | --------------------------------- |
104
- | `web_start` | 启动 HTTP 服务器 |
105
- | `web_stop` | 停止 HTTP 服务器 |
106
- | `web_register_route` | 注册 HTTP 路由 |
107
- | `web_register_webhook` | 注册 Webhook(数据交给 LLM 处理) |
108
- | `web_list_routes` | 列出所有路由和 Webhook |
109
- | 路由参数 | 支持 `/user/:id` 路径参数 |
110
- | Webhook LLM | 接收数据后转发给 LLM 处理 |
111
-
112
- ## 11. 其他内置插件
113
-
114
- | 功能 | 说明 |
115
- | ----------- | ------------------- |
116
- | `scheduler` | 定时任务 / 循环调度 |
117
- | `rules` | 规则引擎 / 条件触发 |
118
- | `storage` | 键值存储 |
119
- | `audit` | 操作审计日志 |
120
- | `install` | 插件安装工具 |
1
+ # Foliko 功能点清单
2
+
3
+ ## 1. AI 对话
4
+
5
+ | 功能 | 说明 |
6
+ | ----------- | --------------------------------------- |
7
+ | 流式输出 | 实时流式响应 |
8
+ | 多 Provider | minimax / deepseek / openai / anthropic |
9
+ | 模型配置 | 支持自定义 model、baseURL、apiKey |
10
+ | 系统提示词 | 支持 sharedPrompt 模板变量 |
11
+ | 思考过程 | 可选的 think 插件显示推理 |
12
+
13
+ ## 2. 工具系统
14
+
15
+ | 功能 | 说明 |
16
+ | ------------------------ | --------------------------- |
17
+ | `Bash` | 执行 Shell/Bash 命令 |
18
+ | `Read` | 读取文件内容 |
19
+ | `Write` | 写入文件 |
20
+ | `Edit` | 编辑文件(diff 替换) |
21
+ | `Glob` | 按模式搜索文件 |
22
+ | `Grep` | 文件内容搜索 |
23
+ | `python` | 执行 Python 代码 |
24
+ | `execute_workflow` | 执行工作流 |
25
+ | `loadSkill/reloadSkills` | 技能加载与重载 |
26
+ | `reloadWorkflows` | 工作流重载 |
27
+ | MCP 工具 | Model Context Protocol 集成 |
28
+
29
+ ## 3. 插件系统
30
+
31
+ | 功能 | 说明 |
32
+ | ------------ | ------------------------------------ |
33
+ | 插件目录 | `.foliko/plugins/` 自动加载 |
34
+ | 插件生命周期 | install / start / reload / uninstall |
35
+ | 工具注册 | 插件可注册工具到 Agent |
36
+ | 事件系统 | 插件间通过事件通信 |
37
+ | 状态持久化 | 插件配置保存到 JSON |
38
+ | 优先级控制 | priority 决定加载顺序 |
39
+
40
+ ## 4. 工作流引擎
41
+
42
+ | 功能 | 说明 |
43
+ | ----------- | ------------------------------- |
44
+ | `script` | JavaScript 脚本执行 |
45
+ | `loop` | 循环(maxIterations) |
46
+ | `condition` | 条件分支 |
47
+ | `delay` | 延时等待 |
48
+ | `parallel` | 并行执行 |
49
+ | 上下文共享 | variables / input / stepResults |
50
+ | 目录加载 | `.foliko/workflows/` 自动注册 |
51
+
52
+ ## 5. 技能系统
53
+
54
+ | 功能 | 说明 |
55
+ | -------- | ---------------------------- |
56
+ | 技能目录 | `skills/` + `.foliko/skills/` |
57
+ | SKILL.md | frontmatter 元数据格式 |
58
+ | 自动发现 | 递归扫描子目录 |
59
+ | 工具过滤 | allowed-tools 限制可用工具 |
60
+ | 重载支持 | reloadSkills 动态加载 |
61
+
62
+ ## 6. 会话管理
63
+
64
+ | 功能 | 说明 |
65
+ | ------------- | ------------------------- |
66
+ | SessionPlugin | 统一会话历史管理 |
67
+ | 多会话 | 按 sessionId 隔离 |
68
+ | 消息持久化 | JSON 文件存储 |
69
+ | 元数据 | 支持 platform / userId 等 |
70
+ | 会话事件 | session:created / deleted |
71
+
72
+ ## 7. 子 Agent
73
+
74
+ | 功能 | 说明 |
75
+ | ----------- | --------------------------- |
76
+ | 子Agent配置 | `.foliko/agents/*.json/*.md` |
77
+ | 角色定义 | role / description |
78
+ | 工具继承 | parentTools 指定可用工具 |
79
+ | 工具路由 | 自动匹配最合适 Agent |
80
+ | 协作执行 | 支持多 Agent 分工 |
81
+
82
+ ## 8. 通讯插件
83
+
84
+ | 功能 | 说明 |
85
+ | -------- | -------------------------------- |
86
+ | Telegram | Bot Token / 群组模式 / 命令前缀 |
87
+ | 微信 | WebSocket 登录 / 二维码 |
88
+ | 飞书 | WS 长连接 / 事件订阅 |
89
+ | 邮件 | IMAP 读取 / SMTP 发送 / 163 兼容 |
90
+
91
+ ## 9. 执行器
92
+
93
+ | 功能 | 说明 |
94
+ | -------------- | ---------------------- |
95
+ | ShellExecutor | system 命令执行 |
96
+ | PythonExecutor | Python 3 代码执行 |
97
+ | 超时控制 | 可配置 maxDuration |
98
+ | 结果返回 | stdout/stderr/exitCode |
99
+
100
+ ## 10. Web 服务
101
+
102
+ | 功能 | 说明 |
103
+ | ---------------------- | --------------------------------- |
104
+ | `web_start` | 启动 HTTP 服务器 |
105
+ | `web_stop` | 停止 HTTP 服务器 |
106
+ | `web_register_route` | 注册 HTTP 路由 |
107
+ | `web_register_webhook` | 注册 Webhook(数据交给 LLM 处理) |
108
+ | `web_list_routes` | 列出所有路由和 Webhook |
109
+ | 路由参数 | 支持 `/user/:id` 路径参数 |
110
+ | Webhook LLM | 接收数据后转发给 LLM 处理 |
111
+
112
+ ## 11. 其他内置插件
113
+
114
+ | 功能 | 说明 |
115
+ | ----------- | ------------------- |
116
+ | `scheduler` | 定时任务 / 循环调度 |
117
+ | `rules` | 规则引擎 / 条件触发 |
118
+ | `storage` | 键值存储 |
119
+ | `audit` | 操作审计日志 |
120
+ | `install` | 插件安装工具 |
@@ -1,160 +1,160 @@
1
- # Foliko 快速参考
2
-
3
- ## 启动框架
4
-
5
- ```javascript
6
- const framework = new Framework({ debug: false });
7
- await framework.bootstrap({
8
- agentDir: './.foliko',
9
- aiConfig: { provider: 'deepseek', model: 'deepseek-chat', apiKey: '...' },
10
- });
11
- ```
12
-
13
- ## 创建 Agent
14
-
15
- ```javascript
16
- const agent = framework.createAgent({
17
- name: 'MyAgent',
18
- systemPrompt: '你是一个有帮助的助手。',
19
- });
20
- ```
21
-
22
- ## 发送消息
23
-
24
- ```javascript
25
- // 流式
26
- for await (const chunk of agent.chatStream('你好')) {
27
- if (chunk.type === 'text') process.stdout.write(chunk.text);
28
- }
29
-
30
- // 非流式
31
- const result = await agent.chat('你好');
32
- ```
33
-
34
- ## 常用工具
35
-
36
- | 工具 | 用途 |
37
- | ---------------------- | ------------ |
38
- | `list_tools` | 列出所有工具 |
39
- | `loadSkill` | 加载技能 |
40
- | `reload_plugins` | 重载插件 |
41
- | `read_file` | 读取文件 |
42
- | `write_file` | 写入文件 |
43
- | `execute_command` | 执行命令 |
44
- | `schedule_once` | 定时任务 |
45
- | `think_now` | 主动思考 |
46
- | `email_send` | 发送邮件 |
47
- | `email_read` | 读取邮件 |
48
- | `enable_plugin` | 启用插件 |
49
- | `disable_plugin` | 禁用插件 |
50
- | `update_plugin_config` | 更新插件配置 |
51
-
52
- ## 插件位置
53
-
54
- - 内置插件:`plugins/`
55
- - 用户插件:`.foliko/plugins/`
56
-
57
- ## 插件管理
58
-
59
- ```javascript
60
- // 重启插件
61
- await framework.executeTool('reload_plugins', {});
62
- await framework.executeTool('reload_plugins', { pluginName: 'telegram' });
63
-
64
- // 启用/禁用插件
65
- await framework.executeTool('enable_plugin', { name: 'telegram' });
66
- await framework.executeTool('disable_plugin', { name: 'telegram' });
67
-
68
- // 更新插件配置(持久化)
69
- await framework.executeTool('update_plugin_config', {
70
- name: 'telegram',
71
- config: { allowedChats: ['123'], groupMode: true },
72
- });
73
- await framework.executeTool('get_plugin_config', { name: 'telegram' });
74
- ```
75
-
76
- ## 事件监听
77
-
78
- ```javascript
79
- // Framework 事件
80
- framework.on('framework:ready', (fw) => {});
81
- framework.on('plugin:loaded', (plugin) => {});
82
- framework.on('tool:registered', (tool) => {});
83
-
84
- // Agent 事件
85
- agent.on('status', ({ status }) => {}); // idle/busy/error
86
- agent.on('chunk', (chunk) => {}); // 流式输出
87
- agent.on('tool-call', ({ name, args }) => {});
88
- agent.on('tool-result', ({ name, result }) => {});
89
-
90
- // 子 Agent 事件
91
- agent.on('subagent:chat:start', (data) => {});
92
- agent.on('subagent:chat:end', (data) => {});
93
- agent.on('subagent:error', (data) => {});
94
- ```
95
-
96
- ## 子 Agent 注册
97
-
98
- ```javascript
99
- const { tool } = require('ai')
100
- const { z } = require('zod')
101
-
102
- // 方式1:配置 agents 数组自动注册
103
- class MyPlugin extends Plugin {
104
- agents = [
105
- {
106
- name: 'code-agent',
107
- role: '代码专家',
108
- tools: {
109
- compile: tool({
110
- description: '编译',
111
- parameters: z.object({ language: z.string(), code: z.string() }),
112
- execute: async (args) => ({ success: true })
113
- })
114
- },
115
- parentTools: ['read_file', 'write_file']
116
- }
117
- ]
118
- }
119
-
120
- // 方式2:手动调用
121
- this.registerSubAgent({ name: 'code-agent', role: '代码专家', tools: {...}, parentTools: [...] })
122
- ```
123
-
124
- ## 系统提示中的部分
125
-
126
- ```
127
- 【可用工具】
128
- - tool1: 描述
129
- - tool2: 描述
130
-
131
- 【可用技能】
132
- - skill1: 描述
133
- - skill2: 描述
134
-
135
- 【子 Agent 分配规则】
136
- - code-agent: 代码专家
137
-
138
- 【系统能力】
139
- - ai: AI 对话能力
140
- - storage: 存储
141
- ```
142
-
143
- ## 状态管理
144
-
145
- ```javascript
146
- agent.getStatus(); // 'idle' | 'busy' | 'error'
147
- agent.resetStatus(); // 重置状态
148
- agent.clearHistory(); // 清空历史
149
- ```
150
-
151
- ## 配置持久化
152
-
153
- 插件配置自动保存到 `.foliko/data/plugins-state.json`
154
-
155
- | 文件 | 用途 |
156
- | --------------------------------- | ------------------- |
157
- | `.foliko/data/plugins-state.json` | 插件启用状态和配置 |
158
- | `.foliko/data/storage.json` | 键值存储数据 |
159
- | `.foliko/data/telegram_images/` | Telegram 接收的图片 |
160
- | `.foliko/data/telegram_documents/` | Telegram 接收的文档 |
1
+ # Foliko 快速参考
2
+
3
+ ## 启动框架
4
+
5
+ ```javascript
6
+ const framework = new Framework({ debug: false });
7
+ await framework.bootstrap({
8
+ agentDir: './.foliko',
9
+ aiConfig: { provider: 'deepseek', model: 'deepseek-chat', apiKey: '...' },
10
+ });
11
+ ```
12
+
13
+ ## 创建 Agent
14
+
15
+ ```javascript
16
+ const agent = framework.createAgent({
17
+ name: 'MyAgent',
18
+ systemPrompt: '你是一个有帮助的助手。',
19
+ });
20
+ ```
21
+
22
+ ## 发送消息
23
+
24
+ ```javascript
25
+ // 流式
26
+ for await (const chunk of agent.chatStream('你好')) {
27
+ if (chunk.type === 'text') process.stdout.write(chunk.text);
28
+ }
29
+
30
+ // 非流式
31
+ const result = await agent.chat('你好');
32
+ ```
33
+
34
+ ## 常用工具
35
+
36
+ | 工具 | 用途 |
37
+ | ---------------------- | ------------ |
38
+ | `list_tools` | 列出所有工具 |
39
+ | `loadSkill` | 加载技能 |
40
+ | `reload_plugins` | 重载插件 |
41
+ | `read_file` | 读取文件 |
42
+ | `write_file` | 写入文件 |
43
+ | `execute_command` | 执行命令 |
44
+ | `schedule_once` | 定时任务 |
45
+ | `think_now` | 主动思考 |
46
+ | `email_send` | 发送邮件 |
47
+ | `email_read` | 读取邮件 |
48
+ | `enable_plugin` | 启用插件 |
49
+ | `disable_plugin` | 禁用插件 |
50
+ | `update_plugin_config` | 更新插件配置 |
51
+
52
+ ## 插件位置
53
+
54
+ - 内置插件:`plugins/`
55
+ - 用户插件:`.foliko/plugins/`
56
+
57
+ ## 插件管理
58
+
59
+ ```javascript
60
+ // 重启插件
61
+ await framework.executeTool('reload_plugins', {});
62
+ await framework.executeTool('reload_plugins', { pluginName: 'telegram' });
63
+
64
+ // 启用/禁用插件
65
+ await framework.executeTool('enable_plugin', { name: 'telegram' });
66
+ await framework.executeTool('disable_plugin', { name: 'telegram' });
67
+
68
+ // 更新插件配置(持久化)
69
+ await framework.executeTool('update_plugin_config', {
70
+ name: 'telegram',
71
+ config: { allowedChats: ['123'], groupMode: true },
72
+ });
73
+ await framework.executeTool('get_plugin_config', { name: 'telegram' });
74
+ ```
75
+
76
+ ## 事件监听
77
+
78
+ ```javascript
79
+ // Framework 事件
80
+ framework.on('framework:ready', (fw) => {});
81
+ framework.on('plugin:loaded', (plugin) => {});
82
+ framework.on('tool:registered', (tool) => {});
83
+
84
+ // Agent 事件
85
+ agent.on('status', ({ status }) => {}); // idle/busy/error
86
+ agent.on('chunk', (chunk) => {}); // 流式输出
87
+ agent.on('tool-call', ({ name, args }) => {});
88
+ agent.on('tool-result', ({ name, result }) => {});
89
+
90
+ // 子 Agent 事件
91
+ agent.on('subagent:chat:start', (data) => {});
92
+ agent.on('subagent:chat:end', (data) => {});
93
+ agent.on('subagent:error', (data) => {});
94
+ ```
95
+
96
+ ## 子 Agent 注册
97
+
98
+ ```javascript
99
+ const { tool } = require('ai')
100
+ const { z } = require('zod')
101
+
102
+ // 方式1:配置 agents 数组自动注册
103
+ class MyPlugin extends Plugin {
104
+ agents = [
105
+ {
106
+ name: 'code-agent',
107
+ role: '代码专家',
108
+ tools: {
109
+ compile: tool({
110
+ description: '编译',
111
+ parameters: z.object({ language: z.string(), code: z.string() }),
112
+ execute: async (args) => ({ success: true })
113
+ })
114
+ },
115
+ parentTools: ['read_file', 'write_file']
116
+ }
117
+ ]
118
+ }
119
+
120
+ // 方式2:手动调用
121
+ this.registerSubAgent({ name: 'code-agent', role: '代码专家', tools: {...}, parentTools: [...] })
122
+ ```
123
+
124
+ ## 系统提示中的部分
125
+
126
+ ```
127
+ 【可用工具】
128
+ - tool1: 描述
129
+ - tool2: 描述
130
+
131
+ 【可用技能】
132
+ - skill1: 描述
133
+ - skill2: 描述
134
+
135
+ 【子 Agent 分配规则】
136
+ - code-agent: 代码专家
137
+
138
+ 【系统能力】
139
+ - ai: AI 对话能力
140
+ - storage: 存储
141
+ ```
142
+
143
+ ## 状态管理
144
+
145
+ ```javascript
146
+ agent.getStatus(); // 'idle' | 'busy' | 'error'
147
+ agent.resetStatus(); // 重置状态
148
+ agent.clearHistory(); // 清空历史
149
+ ```
150
+
151
+ ## 配置持久化
152
+
153
+ 插件配置自动保存到 `.foliko/data/plugins-state.json`
154
+
155
+ | 文件 | 用途 |
156
+ | --------------------------------- | ------------------- |
157
+ | `.foliko/data/plugins-state.json` | 插件启用状态和配置 |
158
+ | `.foliko/data/storage.json` | 键值存储数据 |
159
+ | `.foliko/data/telegram_images/` | Telegram 接收的图片 |
160
+ | `.foliko/data/telegram_documents/` | Telegram 接收的文档 |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "foliko",
3
- "version": "1.1.71",
3
+ "version": "1.1.73",
4
4
  "description": "简约的插件化 Agent 框架",
5
5
  "main": "src/index.js",
6
6
  "type": "commonjs",