@next-open-ai/openclawx 0.8.32 → 0.8.40
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 +55 -47
- package/apps/desktop/renderer/dist/assets/index-BSfTiTKo.css +10 -0
- package/apps/desktop/renderer/dist/assets/index-DgLpQsA-.js +89 -0
- package/apps/desktop/renderer/dist/index.html +2 -2
- package/dist/cli/cli.js +29 -0
- package/dist/cli/extension-cmd.d.ts +15 -0
- package/dist/cli/extension-cmd.js +107 -0
- package/dist/core/agent/agent-dir.d.ts +6 -0
- package/dist/core/agent/agent-dir.js +8 -0
- package/dist/core/agent/agent-manager.d.ts +13 -0
- package/dist/core/agent/agent-manager.js +72 -6
- package/dist/core/agent/proxy/adapters/claude-code-adapter.d.ts +2 -0
- package/dist/core/agent/proxy/adapters/claude-code-adapter.js +186 -0
- package/dist/core/agent/proxy/adapters/local-adapter.js +2 -0
- package/dist/core/agent/proxy/adapters/opencode-adapter.js +65 -29
- package/dist/core/agent/proxy/adapters/opencode-local-runner.js +9 -0
- package/dist/core/agent/proxy/index.js +2 -0
- package/dist/core/agent/token-usage-log-extension.d.ts +14 -0
- package/dist/core/agent/token-usage-log-extension.js +61 -0
- package/dist/core/config/desktop-config.d.ts +22 -2
- package/dist/core/config/desktop-config.js +57 -1
- package/dist/core/extensions/index.d.ts +1 -0
- package/dist/core/extensions/index.js +1 -0
- package/dist/core/extensions/load.d.ts +11 -0
- package/dist/core/extensions/load.js +101 -0
- package/dist/core/mcp/adapter.d.ts +4 -2
- package/dist/core/mcp/adapter.js +10 -4
- package/dist/core/mcp/client.d.ts +4 -0
- package/dist/core/mcp/client.js +2 -0
- package/dist/core/mcp/index.d.ts +5 -1
- package/dist/core/mcp/index.js +5 -1
- package/dist/core/mcp/operator.d.ts +19 -2
- package/dist/core/mcp/operator.js +97 -30
- package/dist/core/mcp/transport/index.d.ts +4 -0
- package/dist/core/mcp/transport/index.js +6 -1
- package/dist/core/mcp/transport/stdio.d.ts +6 -0
- package/dist/core/mcp/transport/stdio.js +22 -1
- package/dist/core/session-outlet/index.d.ts +19 -0
- package/dist/core/session-outlet/index.js +33 -0
- package/dist/core/session-outlet/outlet.d.ts +15 -0
- package/dist/core/session-outlet/outlet.js +49 -0
- package/dist/core/session-outlet/types.d.ts +35 -0
- package/dist/core/session-outlet/types.js +5 -0
- package/dist/core/tools/index.d.ts +1 -0
- package/dist/core/tools/index.js +1 -0
- package/dist/core/tools/truncate-result.d.ts +14 -0
- package/dist/core/tools/truncate-result.js +27 -0
- package/dist/core/tools/web-search/create-web-search-tool.d.ts +17 -0
- package/dist/core/tools/web-search/create-web-search-tool.js +87 -0
- package/dist/core/tools/web-search/index.d.ts +4 -0
- package/dist/core/tools/web-search/index.js +2 -0
- package/dist/core/tools/web-search/providers/brave.d.ts +2 -0
- package/dist/core/tools/web-search/providers/brave.js +87 -0
- package/dist/core/tools/web-search/providers/duck-duck-scrape.d.ts +2 -0
- package/dist/core/tools/web-search/providers/duck-duck-scrape.js +47 -0
- package/dist/core/tools/web-search/providers/index.d.ts +5 -0
- package/dist/core/tools/web-search/providers/index.js +13 -0
- package/dist/core/tools/web-search/types.d.ts +35 -0
- package/dist/core/tools/web-search/types.js +4 -0
- package/dist/gateway/channel/channel-core.d.ts +1 -0
- package/dist/gateway/channel/channel-core.js +91 -70
- package/dist/gateway/methods/agent-cancel.js +3 -0
- package/dist/gateway/methods/agent-chat.d.ts +4 -0
- package/dist/gateway/methods/agent-chat.js +294 -240
- package/dist/gateway/methods/run-scheduled-task.js +2 -0
- package/dist/gateway/server.js +2 -0
- package/dist/server/agent-config/agent-config.controller.d.ts +1 -1
- package/dist/server/agent-config/agent-config.service.d.ts +15 -3
- package/dist/server/agent-config/agent-config.service.js +18 -0
- package/dist/server/config/config.controller.d.ts +26 -0
- package/dist/server/config/config.service.d.ts +14 -0
- package/package.json +3 -1
- package/presets/preset-agents.json +121 -91
- package/presets/workspaces/finance-expert/skills/akshare-helper/SKILL.md +9 -0
- package/presets/workspaces/office-automation/skills/rpa-helper/SKILL.md +9 -0
- package/presets/workspaces/self-media-bot/skills/self-media-tools/SKILL.md +9 -0
- package/apps/desktop/renderer/dist/assets/index-BGHtXhm3.js +0 -89
- package/apps/desktop/renderer/dist/assets/index-CB2-m4ae.css +0 -10
|
@@ -3,8 +3,8 @@ import { DatabaseService } from '../database/database.service.js';
|
|
|
3
3
|
import { WorkspaceService } from '../workspace/workspace.service.js';
|
|
4
4
|
/** 缺省智能体 ID / 工作空间名,不可删除;对应目录 ~/.openbot/workspace/default */
|
|
5
5
|
export declare const DEFAULT_AGENT_ID = "default";
|
|
6
|
-
/** 执行器类型:local=本机,coze/openclawx/opencode
|
|
7
|
-
export type AgentRunnerType = 'local' | 'coze' | 'openclawx' | 'opencode';
|
|
6
|
+
/** 执行器类型:local=本机,coze/openclawx/opencode=远程代理,claude_code=本机 Claude Code CLI */
|
|
7
|
+
export type AgentRunnerType = 'local' | 'coze' | 'openclawx' | 'opencode' | 'claude_code';
|
|
8
8
|
/** Coze 站点:cn=国内 api.coze.cn,com=国际 api.coze.com,凭证不通用 */
|
|
9
9
|
export type CozeRegion = 'cn' | 'com';
|
|
10
10
|
/** 某站点的 Bot 凭证 */
|
|
@@ -60,6 +60,8 @@ export interface AgentConfigItem {
|
|
|
60
60
|
isDefault?: boolean;
|
|
61
61
|
/** MCP 配置:数组(含 transport)或标准 JSON 对象(key 为服务器名称),创建 Session 时归一化使用 */
|
|
62
62
|
mcpServers?: McpServerConfig[] | McpServersStandardFormat;
|
|
63
|
+
/** MCP 单次返回最大 token;不配置则不限制 */
|
|
64
|
+
mcpMaxResultTokens?: number;
|
|
63
65
|
/** 自定义系统提示词,会与技能等一起组成最终 systemPrompt */
|
|
64
66
|
systemPrompt?: string;
|
|
65
67
|
/** 智能体图标标识(前端预设图标 id,如 default、star、code 等) */
|
|
@@ -72,8 +74,18 @@ export interface AgentConfigItem {
|
|
|
72
74
|
openclawx?: AgentOpenClawXConfig;
|
|
73
75
|
/** OpenCode 代理配置(runnerType 为 opencode 时使用) */
|
|
74
76
|
opencode?: AgentOpenCodeConfig;
|
|
77
|
+
/** Claude Code 代理配置(runnerType 为 claude_code 时使用):工作目录等 */
|
|
78
|
+
claudeCode?: {
|
|
79
|
+
workingDirectory?: string;
|
|
80
|
+
};
|
|
75
81
|
/** 是否使用经验(长记忆):memory_recall / save_experience;默认 true */
|
|
76
82
|
useLongMemory?: boolean;
|
|
83
|
+
/** 在线搜索:启用后该智能体拥有 web_search 工具;可选默认 provider、maxResultTokens(前端默认 64K) */
|
|
84
|
+
webSearch?: {
|
|
85
|
+
enabled?: boolean;
|
|
86
|
+
provider?: 'brave' | 'duck-duck-scrape';
|
|
87
|
+
maxResultTokens?: number;
|
|
88
|
+
};
|
|
77
89
|
}
|
|
78
90
|
export interface DeleteAgentOptions {
|
|
79
91
|
/** 是否同时删除该工作区在磁盘上的目录及文件;默认 false(仅删数据库中的工作区相关数据,保留目录) */
|
|
@@ -104,7 +116,7 @@ export declare class AgentConfigService {
|
|
|
104
116
|
/** 智能体图标标识 */
|
|
105
117
|
icon?: string;
|
|
106
118
|
}): Promise<AgentConfigItem>;
|
|
107
|
-
updateAgent(id: string, updates: Partial<Pick<AgentConfigItem, 'name' | 'provider' | 'model' | 'modelItemCode' | 'mcpServers' | 'systemPrompt' | 'icon' | 'runnerType' | 'coze' | 'openclawx' | 'opencode' | 'useLongMemory'>>): Promise<AgentConfigItem>;
|
|
119
|
+
updateAgent(id: string, updates: Partial<Pick<AgentConfigItem, 'name' | 'provider' | 'model' | 'modelItemCode' | 'mcpServers' | 'mcpMaxResultTokens' | 'systemPrompt' | 'icon' | 'runnerType' | 'coze' | 'openclawx' | 'opencode' | 'claudeCode' | 'useLongMemory' | 'webSearch'>>): Promise<AgentConfigItem>;
|
|
108
120
|
deleteAgent(id: string, options?: DeleteAgentOptions): Promise<void>;
|
|
109
121
|
/** 仅删除数据库中与该工作区相关的数据(会话、定时任务、收藏等),不删磁盘目录 */
|
|
110
122
|
private deleteWorkspaceDataFromDb;
|
|
@@ -162,6 +162,8 @@ let AgentConfigService = class AgentConfigService {
|
|
|
162
162
|
agent.modelItemCode = updates.modelItemCode;
|
|
163
163
|
if (updates.mcpServers !== undefined)
|
|
164
164
|
agent.mcpServers = updates.mcpServers;
|
|
165
|
+
if (updates.mcpMaxResultTokens !== undefined)
|
|
166
|
+
agent.mcpMaxResultTokens = updates.mcpMaxResultTokens;
|
|
165
167
|
if (updates.systemPrompt !== undefined)
|
|
166
168
|
agent.systemPrompt = updates.systemPrompt?.trim() || undefined;
|
|
167
169
|
if (updates.icon !== undefined)
|
|
@@ -211,8 +213,24 @@ let AgentConfigService = class AgentConfigService {
|
|
|
211
213
|
agent.openclawx = updates.openclawx;
|
|
212
214
|
if (updates.opencode !== undefined)
|
|
213
215
|
agent.opencode = updates.opencode;
|
|
216
|
+
if (updates.claudeCode !== undefined)
|
|
217
|
+
agent.claudeCode = updates.claudeCode;
|
|
214
218
|
if (updates.useLongMemory !== undefined)
|
|
215
219
|
agent.useLongMemory = updates.useLongMemory;
|
|
220
|
+
if (updates.webSearch !== undefined) {
|
|
221
|
+
agent.webSearch =
|
|
222
|
+
updates.webSearch && (updates.webSearch.enabled || updates.webSearch.provider)
|
|
223
|
+
? {
|
|
224
|
+
enabled: !!updates.webSearch.enabled,
|
|
225
|
+
provider: updates.webSearch.provider === 'brave' || updates.webSearch.provider === 'duck-duck-scrape'
|
|
226
|
+
? updates.webSearch.provider
|
|
227
|
+
: 'duck-duck-scrape',
|
|
228
|
+
maxResultTokens: updates.webSearch.maxResultTokens != null && typeof updates.webSearch.maxResultTokens === 'number' && updates.webSearch.maxResultTokens > 0
|
|
229
|
+
? updates.webSearch.maxResultTokens
|
|
230
|
+
: undefined,
|
|
231
|
+
}
|
|
232
|
+
: undefined;
|
|
233
|
+
}
|
|
216
234
|
await this.writeAgentsFile(file);
|
|
217
235
|
await addPendingAgentReload(id).catch(() => { });
|
|
218
236
|
return { ...agent, isDefault: agent.id === DEFAULT_AGENT_ID };
|
|
@@ -39,6 +39,19 @@ export declare class ConfigController {
|
|
|
39
39
|
embeddingModelItemCode?: string;
|
|
40
40
|
};
|
|
41
41
|
channels?: import("../../core/config/desktop-config.js").ChannelsConfig;
|
|
42
|
+
tools?: {
|
|
43
|
+
webSearch?: {
|
|
44
|
+
defaultProvider?: "brave" | "duck-duck-scrape";
|
|
45
|
+
providers?: {
|
|
46
|
+
brave?: {
|
|
47
|
+
apiKey?: string;
|
|
48
|
+
};
|
|
49
|
+
};
|
|
50
|
+
timeoutSeconds?: number;
|
|
51
|
+
cacheTtlMinutes?: number;
|
|
52
|
+
maxResults?: number;
|
|
53
|
+
};
|
|
54
|
+
};
|
|
42
55
|
};
|
|
43
56
|
}>;
|
|
44
57
|
updateConfig(updates: Partial<AppConfig>): Promise<{
|
|
@@ -78,6 +91,19 @@ export declare class ConfigController {
|
|
|
78
91
|
embeddingModelItemCode?: string;
|
|
79
92
|
};
|
|
80
93
|
channels?: import("../../core/config/desktop-config.js").ChannelsConfig;
|
|
94
|
+
tools?: {
|
|
95
|
+
webSearch?: {
|
|
96
|
+
defaultProvider?: "brave" | "duck-duck-scrape";
|
|
97
|
+
providers?: {
|
|
98
|
+
brave?: {
|
|
99
|
+
apiKey?: string;
|
|
100
|
+
};
|
|
101
|
+
};
|
|
102
|
+
timeoutSeconds?: number;
|
|
103
|
+
cacheTtlMinutes?: number;
|
|
104
|
+
maxResults?: number;
|
|
105
|
+
};
|
|
106
|
+
};
|
|
81
107
|
};
|
|
82
108
|
}>;
|
|
83
109
|
getProviders(): Promise<{
|
|
@@ -71,6 +71,20 @@ export interface AppConfig {
|
|
|
71
71
|
};
|
|
72
72
|
/** 通道配置:飞书、Telegram 等 token/key */
|
|
73
73
|
channels?: ChannelsConfig;
|
|
74
|
+
/** 工具相关:在线搜索等,Brave API Key 存于 providers.brave.apiKey */
|
|
75
|
+
tools?: {
|
|
76
|
+
webSearch?: {
|
|
77
|
+
defaultProvider?: 'brave' | 'duck-duck-scrape';
|
|
78
|
+
providers?: {
|
|
79
|
+
brave?: {
|
|
80
|
+
apiKey?: string;
|
|
81
|
+
};
|
|
82
|
+
};
|
|
83
|
+
timeoutSeconds?: number;
|
|
84
|
+
cacheTtlMinutes?: number;
|
|
85
|
+
maxResults?: number;
|
|
86
|
+
};
|
|
87
|
+
};
|
|
74
88
|
}
|
|
75
89
|
export declare class ConfigService {
|
|
76
90
|
private readonly agentConfigService;
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"publishConfig": {
|
|
4
4
|
"access": "public"
|
|
5
5
|
},
|
|
6
|
-
"version": "0.8.
|
|
6
|
+
"version": "0.8.40",
|
|
7
7
|
"description": "OpenClawX - A professional desktop application for managing and executing AI agents with real-time chat, session management, and skills browsing.",
|
|
8
8
|
"type": "module",
|
|
9
9
|
"main": "dist/index.js",
|
|
@@ -26,6 +26,7 @@
|
|
|
26
26
|
"openbot": "./dist/cli/cli.js"
|
|
27
27
|
},
|
|
28
28
|
"dependencies": {
|
|
29
|
+
"@instantlyeasy/claude-code-sdk-ts": "^0.3.3",
|
|
29
30
|
"@larksuiteoapi/node-sdk": "^1.59.0",
|
|
30
31
|
"@mariozechner/pi-ai": "^0.51.2",
|
|
31
32
|
"@mariozechner/pi-coding-agent": "^0.51.2",
|
|
@@ -41,6 +42,7 @@
|
|
|
41
42
|
"commander": "^14.0.2",
|
|
42
43
|
"croner": "^9.1.0",
|
|
43
44
|
"dingtalk-stream": "^2.1.4",
|
|
45
|
+
"duck-duck-scrape": "^2.2.7",
|
|
44
46
|
"multer": "^1.4.5-lts.1",
|
|
45
47
|
"node-llama-cpp": "^3.15.0",
|
|
46
48
|
"qrcode": "^1.5.4",
|
|
@@ -1,94 +1,124 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
2
|
+
"presetVersion": "1.0",
|
|
3
|
+
"agents": [
|
|
4
|
+
{
|
|
5
|
+
"id": "default",
|
|
6
|
+
"name": "主智能体",
|
|
7
|
+
"workspace": "default",
|
|
8
|
+
"systemPrompt": "我是你的私人智能助手,全能且乐于助人。无论是日常问答、文档撰写、数据整理还是代码协助,我都能为你提供专业的支持。我会用清晰、友好的语言与你交流,并尽力给出最准确的解答。",
|
|
9
|
+
"icon": "default",
|
|
10
|
+
"runnerType": "local",
|
|
11
|
+
"useLongMemory": true
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
"id": "opencode",
|
|
15
|
+
"name": "OpenCode",
|
|
16
|
+
"workspace": "opencode",
|
|
17
|
+
"systemPrompt": "我是 OpenCode 代理智能体,通过 OpenCode 官方服务为你提供编程与代码协助,支持 /init、/undo、/redo、/share、/help 等指令。",
|
|
18
|
+
"icon": "code",
|
|
19
|
+
"runnerType": "opencode",
|
|
20
|
+
"opencode": {
|
|
21
|
+
"mode": "local",
|
|
22
|
+
"port": 4096,
|
|
23
|
+
"model": "opencode/minimax-m2.5-free"
|
|
24
|
+
},
|
|
25
|
+
"useLongMemory": false
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"id": "coze-proxy",
|
|
29
|
+
"name": "Coze 代理",
|
|
30
|
+
"workspace": "coze-proxy",
|
|
31
|
+
"systemPrompt": "我是 Coze 代理智能体,将对话转发至 Coze 平台 Bot。使用前请在设置中填写正确的 Bot ID 与 Access Token。",
|
|
32
|
+
"icon": "star",
|
|
33
|
+
"runnerType": "coze",
|
|
34
|
+
"coze": {
|
|
35
|
+
"region": "cn",
|
|
36
|
+
"cn": {
|
|
37
|
+
"botId": "placeholder-bot-id",
|
|
38
|
+
"apiKey": "placeholder-pat-token"
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
"useLongMemory": false
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"id": "file-assistant",
|
|
45
|
+
"name": "文件助手",
|
|
46
|
+
"workspace": "file-assistant",
|
|
47
|
+
"systemPrompt": "你是本地文件管理助手,擅长搜索、整理、格式转换和内容提取。操作前先确认路径和意图,不要删除未经用户确认的文件。",
|
|
48
|
+
"icon": "folder",
|
|
49
|
+
"runnerType": "local",
|
|
50
|
+
"useLongMemory": true
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"id": "doc-assistant",
|
|
54
|
+
"name": "文档助手",
|
|
55
|
+
"workspace": "doc-assistant",
|
|
56
|
+
"systemPrompt": "你是专业的文档排版与生成助手,精通各类文档(如 Word、PDF、Markdown、Excel、PPT 脚本)的格式和规范。你可以帮助用户从现有文档中提取信息,或者根据用户需求生成结构完整、格式精美的专业文档和报告。生成文档前,请先明确目标格式、受众和核心内容。",
|
|
57
|
+
"icon": "📝",
|
|
58
|
+
"runnerType": "local",
|
|
59
|
+
"useLongMemory": true
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
"id": "finance-expert",
|
|
63
|
+
"name": "金融专家",
|
|
64
|
+
"workspace": "finance-expert",
|
|
65
|
+
"systemPrompt": "你是金融数据分析专家,擅长通过 akshare 等工具获取行情、财报、资金流向等数据,并进行分析与解读。请注明数据来源与时效,结论仅供参考不构成投资建议。",
|
|
66
|
+
"icon": "star",
|
|
67
|
+
"runnerType": "local",
|
|
68
|
+
"useLongMemory": true,
|
|
69
|
+
"mcpServers": {
|
|
70
|
+
"akshare-tools": {
|
|
71
|
+
"command": "npx",
|
|
72
|
+
"args": ["-y", "akshare-tools"],
|
|
73
|
+
"env": {}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
"id": "self-media-bot",
|
|
79
|
+
"name": "自媒体运营机器人",
|
|
80
|
+
"workspace": "self-media-bot",
|
|
81
|
+
"systemPrompt": "你是自媒体运营助手,协助内容创作、排版与多平台发布。支持通过文颜 MCP 将 Markdown 排版并发布至微信公众号、知乎、今日头条等,以及头条自动发布。使用前请确认用户已配置好对应环境变量(如 WECHAT_APP_ID、WECHAT_APP_SECRET 等)。",
|
|
82
|
+
"icon": "✏️",
|
|
83
|
+
"runnerType": "local",
|
|
84
|
+
"useLongMemory": true,
|
|
85
|
+
"mcpServers": {
|
|
86
|
+
"文颜 MCP": {
|
|
87
|
+
"command": "npx",
|
|
88
|
+
"args": ["-y", "@wenyan-md/mcp"],
|
|
89
|
+
"env": {}
|
|
83
90
|
},
|
|
84
|
-
{
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
91
|
+
"头条自动发布 MCP": {
|
|
92
|
+
"command": "npx",
|
|
93
|
+
"args": ["-y", "toutiao-publish-mcp"],
|
|
94
|
+
"env": {}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
"id": "office-automation",
|
|
100
|
+
"name": "办公自动化",
|
|
101
|
+
"workspace": "office-automation",
|
|
102
|
+
"systemPrompt": "你是办公自动化助手,通过影刀 RPA 执行桌面自动化流程,如打开应用、填表、批量处理等。使用前请确认本机已安装影刀 RPA 并配置好 MCP 所需环境变量(如 RPA_MODEL、SHADOWBOT_PATH、USER_FOLDER 等)。",
|
|
103
|
+
"icon": "terminal",
|
|
104
|
+
"runnerType": "local",
|
|
105
|
+
"useLongMemory": true,
|
|
106
|
+
"mcpServers": {
|
|
107
|
+
"影刀 RPA MCP Server": {
|
|
108
|
+
"command": "npx",
|
|
109
|
+
"args": ["-y", "yingdao-mcp-server"],
|
|
110
|
+
"env": {}
|
|
92
111
|
}
|
|
93
|
-
|
|
94
|
-
}
|
|
112
|
+
}
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
"id": "morning-briefing",
|
|
116
|
+
"name": "早报机器人",
|
|
117
|
+
"workspace": "morning-briefing",
|
|
118
|
+
"systemPrompt": "你是AI早报机器人,专门生成每日早报与资讯简报。你可以抓取并汇总新闻、RSS与网页内容,整理成结构清晰的早报(含标题、要点摘要、来源链接)。请注明信息来源与时间。适合在每日固定时间生成今日要闻、行业动态或用户指定主题的简报。",
|
|
119
|
+
"icon": "📰",
|
|
120
|
+
"runnerType": "local",
|
|
121
|
+
"useLongMemory": true
|
|
122
|
+
}
|
|
123
|
+
]
|
|
124
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: self-media-tools
|
|
3
|
+
description: 使用文颜 MCP 将 Markdown 排版并发布至微信公众号、知乎、今日头条等;使用头条自动发布 MCP 发布内容。需配置 WECHAT_APP_ID、WECHAT_APP_SECRET 等环境变量。
|
|
4
|
+
allowed-tools: 文颜 MCP、头条自动发布 MCP 暴露的工具
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# 自媒体运营工具
|
|
8
|
+
|
|
9
|
+
当用户需要排版并发布到公众号/知乎/头条,或使用头条自动发布时,调用对应 MCP。使用前请确认用户已配置好各平台凭证。
|