feat(search): enable MindSearch defaults and sanitize user-facing search language.

Grant search_external and network egress for default users, enable search-enhanced skill, redact internal architecture terms from assistant UI text, and neutralize search skill prompts so chats use dual-engine web search without exposing vendor names.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
john
2026-07-29 14:04:11 +08:00
parent 57d90e6113
commit 1edec6e196
10 changed files with 82 additions and 18 deletions
+7 -4
View File
@@ -2,6 +2,7 @@ import fs from 'node:fs';
import path from 'node:path';
import { SYSTEM_CATEGORIES } from './mindspace.mjs';
import { resolveMindSpaceStorageRoot as resolveRuntimeMindSpaceStorageRoot } from './mindspace-runtime-config.mjs';
import { USER_FACING_ARCHITECTURE_LANGUAGE_RULE } from './conversation-display.mjs';
import { PUBLISH_ROOT_DIR, resolvePublishDir, resolveUserAddressName } from './user-publish.mjs';
/** 用户 MindSpace 下的分区子目录(与上传分类一致) */
@@ -23,11 +24,12 @@ function renderUserSpaceBrandingBlock(userAddressName) {
const name = userAddressName || '用户';
return `## 品牌与称呼(硬性)
- 你是 **TKMind** 助手;介绍产品时用 TKMind,不要称 goose、Goose、goosed
- 你是 **TKMind** 助手;介绍产品时用 TKMind,不要向用户暴露内部运行时、搜索引擎品牌、中间件或编排组件名称
- 与用户对话时,用 **${name}** 称呼用户(可辅以「你/您」),**禁止**把用户叫作 TKMind
- 仅在开场或用户打招呼时使用时段问候,且须与「TKMind 当前时间基准」一致(如「${name},早上好」);普通回复直接作答,不要每条都加问候;禁止把用户叫作 TKMind
- 不要描述本工作区为「Rust goose 项目」或「goose AI 框架」
- 不要描述本工作区为底层 AI 框架或 Rust 运行时项目
- 本工作区是 TKMind **MindSpace 用户空间**,用于 OA/公开文件管理与静态页面生成
- ${USER_FACING_ARCHITECTURE_LANGUAGE_RULE}
`;
}
@@ -136,7 +138,8 @@ export function buildUserSpaceConstraints({ username, workspaceRoot, publicBaseU
'## TKMind 用户空间分区(硬性约束)',
'',
`- 你是 **TKMind** 助手;与用户对话时用 **${addressName}** 称呼用户,禁止把用户叫作 TKMind`,
'- 禁止称 goose / Goose / goosed 或「Rust goose 项目」',
'- 禁止向用户暴露内部运行时、搜索引擎品牌、中间件或编排组件名称',
`- ${USER_FACING_ARCHITECTURE_LANGUAGE_RULE}`,
`- 用户 **${addressName}** 的 Agent 工作区:\`${workspaceRoot}\``,
`- 用户上传落在分区子目录:${zoneList}(例如 OA 文件在 \`oa/\``,
'- **查找文件**:只在上述工作区内搜索(如 `oa/2025-12-06T13-34_export.csv`',
@@ -146,7 +149,7 @@ export function buildUserSpaceConstraints({ username, workspaceRoot, publicBaseU
'- **默认只生成 HTML**:不要在没有明确需求时强制生成 Word、PDF、长图等伴生文件',
'- **Word 下载页**:若用户明确要求 Word / docx 下载,必须先 `load_skill` → `docx-generate` 生成 `public/*.docx` 并确认文件存在,再在 HTML 里用相对路径链接该文档',
'- 用 `apps__create_app` 设计页面时,最后一步仍要按 `static-page-publish` skill 把内容 `write_file` 落到 `public/*.html`,再给出下方前缀拼出的真实链接,不要停在 App 阶段就回复链接',
'- **需要查实时/真实世界信息(如机构名单、新闻、行情)时**:先 `load_skill` → `web`,同一轮同时调用 `tkmind_search`103 专用 SearXNG)和 `web_search`DuckDuckGo)并合并去重;一侧失败时继续使用另一侧,必要时再走 Bing/360 等可达搜索源,避免对反爬站点反复硬抓',
'- **需要查实时/真实世界信息(如机构名单、新闻、行情)时**:先 `load_skill` → `web`,同一轮同时调用 `tkmind_search`专用联网搜索)和 `web_search`内置联网搜索)并合并去重;向用户只称「联网搜索」,不要提具体搜索引擎或中间件名称;一侧失败时继续使用另一侧,必要时再走 Bing/360 等可达搜索源,避免对反爬站点反复硬抓',
'- **Word 下载页**:若用户明确要求 Word / docx 下载,必须先 `load_skill` → `docx-generate` 生成 `public/*.docx` 并确认文件存在,再在 HTML 里用相对路径链接该文档;不要用 shell/computercontroller 生成生产下载文件',
publicBaseUrl && slug
? `- 公网 HTML 前缀(公开区):\`${publicBaseUrl}/${PUBLISH_ROOT_DIR}/${slug}/public/\`(写入 \`public/页面.html\` 时分享链接必须含 \`public/\``