refactor(ux): consolidate BMAD skills, update design system, and clean up Prisma generated client

This commit is contained in:
Sepehr Ramezani
2026-04-19 19:21:27 +02:00
parent 5296c4da2c
commit 25529a24b8
2476 changed files with 127934 additions and 101962 deletions

View File

@@ -1,7 +1,7 @@
{
"about": {
"appDescription": "具有 AI 功能的强大笔记应用程序",
"appName": "Keep Notes",
"appName": "Memento",
"buildDate": "构建日期",
"description": "应用程序信息",
"features": {
@@ -69,7 +69,9 @@
"providerOllamaOption": "🦙 Ollama (Local & Free)",
"providerOpenAIOption": "🤖 OpenAI (GPT-5, GPT-4)",
"providerCustomOption": "🔧 Custom OpenAI-Compatible",
"saved": "(已保存)"
"saved": "(已保存)",
"chatProvider": "聊天提供商",
"chatDescription": "用于聊天助手的 AI 提供商。如果未配置,将回退到标签提供商。"
},
"aiTest": {
"description": "测试您的 AI 提供商的标签生成和语义搜索嵌入",
@@ -93,7 +95,22 @@
"tipDescription": "在测试之前使用 AI 测试面板诊断配置问题。",
"tipTitle": "提示:",
"title": "AI 提供商测试",
"vectorDimensions": "向量维度"
"vectorDimensions": "向量维度",
"tagsGenerationTest": "🏷️ 标签生成测试:",
"tagsStep1": "向 AI 提供商发送一条示例笔记",
"tagsStep2": "根据内容请求 3-5 个相关标签",
"tagsStep3": "显示生成的标签及其置信度分数",
"tagsStep4": "测量响应时间",
"embeddingsTestLabel": "🔍 嵌入测试:",
"embeddingsStep1": "向嵌入提供商发送一段示例文本",
"embeddingsStep2": "生成向量表示(数字列表)",
"embeddingsStep3": "显示嵌入维度和示例值",
"embeddingsStep4": "验证向量是否有效且格式正确",
"tipContent": "您可以为标签和嵌入使用不同的提供商!例如,使用 Ollama免费生成标签使用 OpenAI最佳质量生成嵌入以优化成本和性能。",
"testSuccessToast": "{type} 测试成功!",
"testFailedToast": "{type} 测试失败",
"testingType": "正在测试 {type}...",
"technicalDetails": "技术详情"
},
"aiTesting": "AI 测试",
"security": {
@@ -105,6 +122,22 @@
"updateSuccess": "安全设置已更新"
},
"settings": "管理员设置",
"resend": {
"title": "Resend推荐",
"description": "通过 Resend API 发送邮件。如已配置,优先于 SMTP。",
"apiKey": "Resend API 密钥",
"apiKeyHint": "从 resend.com 获取 API 密钥。用于代理通知和密码重置。",
"saveSettings": "保存 Resend 设置",
"updateSuccess": "Resend 设置已更新",
"updateFailed": "Resend 设置更新失败",
"configured": "Resend 已配置并激活"
},
"email": {
"title": "邮件配置",
"description": "配置代理通知和密码重置的邮件发送。",
"provider": "邮件提供商",
"saveSettings": "保存邮件设置"
},
"smtp": {
"description": "配置用于密码重置的邮件服务器。",
"forceSSL": "强制 SSL/TLS通常用于端口 465",
@@ -127,7 +160,7 @@
"userManagement": "用户管理",
"users": {
"addUser": "添加用户",
"confirmDelete": "Are you sure? This action cannot be undone.",
"confirmDelete": "确定吗?此操作无法撤销。",
"createFailed": "创建用户失败",
"createSuccess": "用户创建成功",
"createUser": "创建用户",
@@ -153,6 +186,38 @@
"name": "姓名",
"role": "角色"
}
},
"chat": "AI 聊天",
"lab": "实验室",
"agents": "代理",
"workspace": "工作区",
"sidebar": {
"dashboard": "仪表盘",
"users": "用户",
"aiManagement": "AI 管理",
"chat": "AI 聊天",
"lab": "实验室(想法)",
"agents": "代理",
"settings": "设置"
},
"metrics": {
"vsLastPeriod": "与上一周期相比"
},
"tools": {
"title": "代理工具",
"description": "配置代理工具使用的外部工具:网络搜索、网页抓取和 API 访问。",
"searchProvider": "网络搜索提供商",
"searxng": "SearXNG自托管",
"brave": "Brave Search API",
"both": "两者皆可SearXNG 优先Brave 备用)",
"searxngUrl": "SearXNG URL",
"braveKey": "Brave Search API 密钥",
"jinaKey": "Jina Reader API 密钥",
"jinaKeyOptional": "可选 — 无密钥也可使用,但有速率限制",
"jinaKeyDescription": "用于网页抓取。无密钥也可使用,但有速率限制。",
"saveSettings": "保存工具设置",
"updateSuccess": "工具设置更新成功",
"updateFailed": "更新工具设置失败"
}
},
"ai": {
@@ -201,7 +266,8 @@
"languageDetected": "检测到的语言",
"notebookSummary": {
"regenerate": "重新生成摘要",
"regenerating": "正在重新生成摘要..."
"regenerating": "正在重新生成摘要...",
"exportPDF": "导出为 PDF"
},
"original": "原文",
"poweredByAI": "由 AI 驱动",
@@ -229,7 +295,21 @@
"transformError": "转换时出错",
"transformMarkdown": "转换为 Markdown",
"transformSuccess": "文本已成功转换为 Markdown",
"transforming": "转换中..."
"transforming": "转换中...",
"clarifyDesc": "使文本更清晰易懂",
"shortenDesc": "总结文本并突出要点",
"improve": "改进写作",
"improveDesc": "修复语法并增强风格",
"toMarkdown": "格式化为 Markdown",
"toMarkdownDesc": "添加标题、项目符号并组织文本结构",
"translate": "翻译",
"translateDesc": "更改文本语言",
"translateBack": "返回",
"translationApplied": "翻译已应用",
"translationFailed": "翻译失败",
"undo": "撤销 AI",
"undoAI": "撤销 AI 转换",
"undoApplied": "已恢复原始文本"
},
"aiSettings": {
"description": "配置您的 AI 驱动功能和偏好设置",
@@ -255,7 +335,11 @@
},
"appearance": {
"description": "自定义应用的外观",
"title": "外观"
"title": "外观",
"notesViewDescription": "选择笔记在主页和笔记本中的显示方式。",
"notesViewLabel": "笔记布局",
"notesViewTabs": "标签页OneNote 风格)",
"notesViewMasonry": "卡片(网格)"
},
"auth": {
"backToLogin": "返回登录",
@@ -283,7 +367,7 @@
"sending": "发送中...",
"signIn": "登录",
"signInToAccount": "登录您的账户",
"signOut": "Sign out",
"signOut": "退出登录",
"signUp": "注册"
},
"autoLabels": {
@@ -453,11 +537,11 @@
},
"diagnostics": {
"apiStatus": "API 状态",
"checking": "Checking...",
"checking": "检查中...",
"configuredProvider": "已配置的提供商",
"description": "Check your AI provider connection status",
"errorStatus": "Error",
"operational": "Operational",
"description": "检查您的 AI 提供商连接状态",
"errorStatus": "错误",
"operational": "正常运行",
"testDetails": "测试详情:",
"tip1": "确保 Ollama 正在运行ollama serve",
"tip2": "检查模型是否已安装ollama pull llama3",
@@ -482,13 +566,13 @@
"apply": "应用",
"back": "返回",
"cancel": "取消",
"clean": "Clean",
"clean": "清理",
"clear": "清除",
"close": "关闭",
"confirm": "确认",
"edit": "编辑",
"error": "发生错误",
"indexAll": "Index All",
"indexAll": "全部索引",
"loading": "加载中...",
"next": "下一步",
"operationFailed": "操作失败",
@@ -499,7 +583,7 @@
"save": "保存",
"select": "选择",
"submit": "提交",
"testConnection": "Test Connection",
"testConnection": "测试连接",
"tryAgain": "请重试"
},
"generalSettings": {
@@ -507,37 +591,39 @@
"title": "常规设置"
},
"labels": {
"addLabel": "Add label",
"allLabels": "All Labels",
"changeColor": "Change Color",
"changeColorTooltip": "Change color",
"clearAll": "Clear all",
"confirmDelete": "Are you sure you want to delete this label?",
"addLabel": "添加标签",
"allLabels": "所有标签",
"changeColor": "更改颜色",
"changeColorTooltip": "更改颜色",
"clearAll": "清除全部",
"confirmDelete": "确定要删除此标签吗?",
"count": "{count} 个标签",
"createLabel": "Create label",
"delete": "Delete",
"deleteTooltip": "Delete label",
"editLabels": "Edit Labels",
"editLabelsDescription": "Create, edit colors, or delete labels.",
"filter": "Filter by Label",
"filterByLabel": "Filter by label",
"labelColor": "Label color",
"labelName": "Label name",
"loading": "Loading...",
"manage": "Manage Labels",
"manageLabels": "Manage labels",
"manageLabelsDescription": "Add or remove labels for this note. Click on a label to change its color.",
"manageTooltip": "Manage Labels",
"namePlaceholder": "Enter label name",
"newLabelPlaceholder": "Create new label",
"createLabel": "创建标签",
"delete": "删除",
"deleteTooltip": "删除标签",
"editLabels": "编辑标签",
"editLabelsDescription": "创建、编辑颜色或删除标签。",
"filter": "按标签筛选",
"filterByLabel": "按标签筛选",
"labelColor": "标签颜色",
"labelName": "标签名称",
"loading": "加载中...",
"manage": "管理标签",
"manageLabels": "管理标签",
"manageLabelsDescription": "为此笔记添加或移除标签。点击标签可更改其颜色。",
"manageTooltip": "管理标签",
"namePlaceholder": "输入标签名称",
"newLabelPlaceholder": "创建新标签",
"noLabels": "暂无标签",
"noLabelsFound": "No labels found.",
"notebookRequired": "⚠️ Labels are only available in notebooks. Move this note to a notebook first.",
"selectedLabels": "Selected Labels",
"showLess": "Show less",
"showMore": "Show more",
"tagAdded": "Tag \"{tag}\" added",
"title": "Labels"
"noLabelsFound": "未找到标签。",
"notebookRequired": "⚠️ 标签仅在笔记本中可用。请先将此笔记移至笔记本。",
"selectedLabels": "已选标签",
"showLess": "收起",
"showMore": "展开更多",
"tagAdded": "标签 \"{tag}\" 已添加",
"title": "标签",
"confirmDeleteShort": "确认?",
"labelRemoved": "标签 \"{label}\" 已移除"
},
"memoryEcho": {
"clickToView": "点击查看笔记",
@@ -611,7 +697,8 @@
"thanksFeedback": "感谢您的反馈!",
"thanksFeedbackImproving": "谢谢!我们将利用此来改进。",
"title": "我注意到了一些事情...",
"viewConnection": "查看关联"
"viewConnection": "查看关联",
"match": "{percentage}% 匹配"
},
"nav": {
"accountSettings": "账户设置",
@@ -646,7 +733,10 @@
"supportDevelopment": "支持 Memento 开发 ☕",
"trash": "回收站",
"userManagement": "用户管理",
"workspace": "工作区"
"workspace": "工作区",
"chat": "AI 聊天",
"lab": "实验室",
"agents": "代理"
},
"notebook": {
"cancel": "取消",
@@ -667,7 +757,16 @@
"selectIcon": "图标",
"summary": "笔记本摘要",
"summaryDescription": "生成此笔记本中所有笔记的 AI 摘要。",
"summaryError": "生成摘要时出错"
"summaryError": "生成摘要时出错",
"namePlaceholder": "例如:第四季度营销策略",
"myNotebook": "我的笔记本",
"saving": "保存中...",
"pdfTitle": "摘要 — {name}",
"pdfNotesLabel": "笔记:",
"pdfGeneratedOn": "生成日期:",
"confidence": "置信度",
"savingReminder": "保存提醒失败",
"removingReminder": "移除提醒失败"
},
"notebookSuggestion": {
"description": "这条笔记似乎属于这个笔记本",
@@ -676,7 +775,7 @@
"generalNotes": "普通笔记",
"move": "移动",
"moveToNotebook": "移动到笔记本",
"title": "移动到 {icon} {name}"
"title": "移动到 {name}"
},
"notebooks": {
"allNotebooks": "所有笔记本",
@@ -784,7 +883,16 @@
"unpinned": "未置顶",
"untitled": "无标题",
"uploadFailed": "上传失败:{filename}",
"view": "查看笔记"
"view": "查看笔记",
"emptyStateTabs": "这里还没有笔记。使用侧边栏中的「新建笔记」来添加AI 标题建议会出现在编辑器中)。",
"viewCards": "卡片视图",
"viewCardsTooltip": "卡片网格,支持拖拽排序",
"viewTabs": "列表视图",
"viewTabsTooltip": "上方为标签页,下方为笔记 — 拖拽标签页可排序",
"viewModeGroup": "笔记显示模式",
"reorderTabs": "重新排序标签页",
"modified": "已修改",
"created": "已创建"
},
"pagination": {
"next": "→",
@@ -833,12 +941,12 @@
"preferredLanguage": "首选语言",
"profileError": "更新个人资料时出错",
"profileUpdated": "个人资料已更新",
"recentNotesUpdateFailed": "Failed to update recent notes setting",
"recentNotesUpdateSuccess": "Recent notes setting updated successfully",
"recentNotesUpdateFailed": "更新最近笔记设置失败",
"recentNotesUpdateSuccess": "最近笔记设置更新成功",
"selectFontSize": "选择字体大小",
"selectLanguage": "选择语言",
"showRecentNotes": "Show Recent Notes Section",
"showRecentNotesDescription": "Display recent notes (last 7 days) on the main page",
"showRecentNotes": "显示最近笔记部分",
"showRecentNotesDescription": "在主页上显示最近 7 天的笔记",
"title": "个人资料",
"updateFailed": "更新个人资料失败",
"updatePassword": "更新密码",
@@ -887,21 +995,21 @@
"about": "关于",
"account": "账户",
"appearance": "外观",
"cleanTags": "Clean Orphan Tags",
"cleanTagsDescription": "Remove tags that are no longer used by any notes",
"cleanTags": "清理孤立标签",
"cleanTagsDescription": "移除不再被任何笔记使用的标签",
"description": "管理您的设置和偏好",
"language": "语言",
"languageAuto": "自动检测",
"maintenance": "Maintenance",
"maintenanceDescription": "Tools to maintain your database health",
"maintenance": "维护",
"maintenanceDescription": "维护数据库健康的工具",
"notifications": "通知",
"privacy": "隐私",
"profile": "个人资料",
"searchNoResults": "未找到匹配的设置",
"security": "安全",
"selectLanguage": "选择语言",
"semanticIndexing": "Semantic Indexing",
"semanticIndexingDescription": "Generate vectors for all notes to enable intent-based search",
"semanticIndexing": "语义索引",
"semanticIndexingDescription": "为所有笔记生成向量以启用基于意图的搜索",
"settingsError": "保存设置时出错",
"settingsSaved": "设置已保存",
"theme": "主题",
@@ -909,15 +1017,29 @@
"themeLight": "浅色",
"themeSystem": "跟随系统",
"title": "设置",
"version": "版本"
"version": "版本",
"cleanupDone": "已同步 {created} 条标签记录,移除 {deleted} 个孤立标签",
"cleanupNothing": "无需操作 — 标签已与笔记匹配",
"cleanupWithErrors": "部分操作失败",
"cleanupError": "无法清理标签",
"indexingComplete": "索引完成:已处理 {count} 条笔记",
"indexingError": "索引期间出错",
"emailNotifications": "电子邮件通知",
"emailNotificationsDesc": "通过电子邮件接收重要通知",
"desktopNotifications": "桌面通知",
"desktopNotificationsDesc": "在浏览器中接收通知",
"notificationsDesc": "管理您的通知偏好"
},
"sidebar": {
"archive": "Archive",
"editLabels": "Edit labels",
"labels": "Labels",
"notes": "Notes",
"reminders": "Reminders",
"trash": "Trash"
"archive": "归档",
"editLabels": "编辑标签",
"labels": "标签",
"notes": "笔记",
"reminders": "提醒",
"trash": "回收站",
"newNoteTabs": "新建笔记",
"newNoteTabsHint": "在此笔记本中创建笔记",
"noLabelsInNotebook": "此笔记本中暂无标签"
},
"support": {
"aiApiCosts": "AI API 成本:",
@@ -987,10 +1109,19 @@
"thanksFeedbackImproving": "谢谢!我们将利用此来改进。"
},
"trash": {
"deletePermanently": "永久删除",
"empty": "回收站是空的",
"title": "回收站",
"empty": "回收站为空",
"emptyDescription": "已删除的笔记将显示在这里",
"restore": "恢复",
"title": "回收站"
"deletePermanently": "永久删除",
"noteTrashed": "笔记已移至回收站",
"noteRestored": "笔记已恢复",
"notePermanentlyDeleted": "笔记已永久删除",
"emptyTrash": "清空回收站",
"emptyTrashConfirm": "确定永久删除回收站中的所有笔记?",
"emptyTrashSuccess": "回收站已清空",
"permanentDelete": "永久删除",
"permanentDeleteConfirm": "此笔记将被永久删除,此操作无法撤销。"
},
"ui": {
"close": "关闭",
@@ -1003,7 +1134,7 @@
"description": "管理 API 密钥并配置外部工具",
"whatIsMcp": {
"title": "什么是 MCP",
"description": "模型上下文协议MCP是一个开放协议使 AI 模型能够与外部工具和数据源安全交互。通过 MCP您可以将 Claude Code、Cursor 或 N8N 等工具连接到您的 Keep Notes 实例,以编程方式读取、创建和整理笔记。",
"description": "模型上下文协议MCP是一个开放协议使 AI 模型能够与外部工具和数据源安全交互。通过 MCP您可以将 Claude Code、Cursor 或 N8N 等工具连接到您的 Memento 实例,以编程方式读取、创建和整理笔记。",
"learnMore": "了解更多关于 MCP"
},
"serverStatus": {
@@ -1057,5 +1188,241 @@
"description": "在您的 N8N MCP 节点中使用以下凭据:"
}
}
},
"agents": {
"title": "代理",
"subtitle": "自动化您的监控和研究任务",
"newAgent": "新建代理",
"myAgents": "我的代理",
"noAgents": "暂无代理",
"noAgentsDescription": "创建您的第一个代理或安装下方的模板以自动化监控任务。",
"types": {
"scraper": "监控器",
"researcher": "研究员",
"monitor": "观察者",
"custom": "自定义"
},
"typeDescriptions": {
"scraper": "抓取多个网站并创建摘要",
"researcher": "搜索有关主题的信息",
"monitor": "监视笔记本并分析笔记",
"custom": "使用自定义提示的自由代理"
},
"form": {
"agentType": "代理类型",
"name": "名称",
"namePlaceholder": "例如:周二 AI 观察",
"description": "描述(可选)",
"descriptionPlaceholder": "每周 AI 新闻摘要",
"urlsLabel": "要抓取的 URL",
"urlsOptional": "(可选)",
"sourceNotebook": "要监视的笔记本",
"selectNotebook": "选择笔记本...",
"targetNotebook": "目标笔记本",
"inbox": "收件箱",
"instructions": "AI 指令",
"instructionsPlaceholder": "描述代理的行为...",
"frequency": "频率",
"cancel": "取消",
"saving": "保存中...",
"save": "保存",
"create": "创建代理",
"editTitle": "编辑代理",
"createTitle": "新建代理",
"nameRequired": "名称为必填项",
"addUrl": "添加 URL",
"advancedMode": "高级模式",
"instructionsHint": "替换自动提示词",
"researchTopic": "研究主题",
"researchTopicPlaceholder": "例如:人工智能最新进展",
"notifyEmail": "邮件通知",
"notifyEmailHint": "每次运行后通过邮件接收代理结果"
},
"frequencies": {
"manual": "手动",
"hourly": "每小时",
"daily": "每天",
"weekly": "每周",
"monthly": "每月"
},
"status": {
"success": "成功",
"failure": "失败",
"running": "运行中",
"pending": "等待中"
},
"actions": {
"edit": "编辑",
"run": "运行",
"delete": "删除",
"deleteConfirm": "删除代理 \"{name}\"",
"toggleOn": "代理已启用",
"toggleOff": "代理已禁用"
},
"toasts": {
"created": "代理已创建",
"updated": "代理已更新",
"deleted": "\"{name}\" 已删除",
"deleteError": "删除时出错",
"runSuccess": "\"{name}\" 执行成功",
"runError": "错误:{error}",
"runFailed": "执行失败",
"runGenericError": "执行期间出错",
"toggleError": "切换代理时出错",
"installSuccess": "\"{name}\" 已安装",
"installError": "安装时出错",
"saveError": "保存时出错"
},
"templates": {
"title": "模板",
"install": "安装",
"installing": "安装中...",
"veilleAI": {
"name": "AI 观察",
"description": "抓取 5 个 AI 专业网站并生成每周摘要。"
},
"veilleTech": {
"name": "科技观察",
"description": "抓取主要科技网站并创建新闻摘要。"
},
"veilleDev": {
"name": "开发观察",
"description": "抓取开发网站并总结新技术和框架。"
},
"surveillant": {
"name": "笔记观察者",
"description": "分析笔记本中的近期笔记并建议补充内容、参考和链接。"
},
"chercheur": {
"name": "主题研究员",
"description": "搜索有关主题的深入信息并创建带有参考的结构化笔记。"
}
},
"runLog": {
"title": "历史记录",
"noHistory": "暂无执行记录",
"toolTrace": "{count} 次工具调用",
"step": "第 {num} 步"
},
"tools": {
"title": "代理工具",
"webSearch": "网络搜索",
"webScrape": "网页抓取",
"noteSearch": "笔记搜索",
"noteRead": "读取笔记",
"noteCreate": "创建笔记",
"urlFetch": "获取 URL",
"memorySearch": "记忆",
"configNeeded": "配置",
"selected": "{count} 个已选择",
"maxSteps": "最大迭代次数"
},
"metadata": {
"executions": "{count} 次执行"
},
"defaultRoles": {
"scraper": "您是一个监控助手。将不同网站的文章综合成清晰、结构化的摘要。",
"researcher": "您是一位严谨的研究员。针对请求的主题,制作包含背景、要点、争议和参考文献的研究笔记。",
"monitor": "您是一位分析助手。分析提供的笔记并建议线索、参考和笔记之间的联系。",
"custom": "您是一位有帮助的助手。"
},
"help": {
"title": "代理指南",
"btnLabel": "帮助",
"close": "关闭",
"whatIsAgent": "什么是代理?",
"whatIsAgentContent": "An **agent** is an AI assistant that runs automatically to perform tasks for you. It has access to **tools** (web search, web scraping, note reading...) and produces a **note** with its results.\n\nThink of it as a small autonomous worker: you give it a mission, it researches or scrapes information, then writes a structured note you can read later.",
"howToUse": "如何使用代理?",
"howToUseContent": "1. Click **\"New Agent\"** (or start from a **Template** at the bottom of the page)\n2. Choose an **agent type** (Researcher, Monitor, Observer, Custom)\n3. Give it a **name** and fill in the type-specific fields\n4. Optionally pick a **target notebook** where results will be saved\n5. Choose a **frequency** (Manual = you trigger it yourself)\n6. Click **Create**, then hit the **Run** button on the agent card\n7. Once finished, a new note appears in your target notebook",
"types": "代理类型",
"typesContent": "### Researcher\nSearches the web on a **topic you define** and creates a structured note with sources and references.\n\n- **Fields:** name, research topic (e.g. \"Latest advances in quantum computing\")\n- **Default tools:** web search, web scraping, note search, note creation\n- **Requirements:** a web search provider must be configured (SearXNG or Brave Search)\n\n### Monitor (Scraper)\nScrapes a **list of URLs** you specify and produces a summary of their content.\n\n- **Fields:** name, list of URLs (e.g. tech news sites, blogs...)\n- **Default tools:** web scraping, note creation\n- **Use case:** weekly tech watch, competitor monitoring, blog roundups\n\n### Observer (Notebook Monitor)\nReads notes from a **notebook you select** and produces analysis, connections, and suggestions.\n\n- **Fields:** name, source notebook (the one to analyze)\n- **Default tools:** note search, note read, note creation\n- **Use case:** find connections between your notes, get reading suggestions, detect recurring themes\n\n### Custom\nA blank canvas: you write your own **prompt** and pick your own **tools**.\n\n- **Fields:** name, description, custom instructions (in Advanced mode)\n- **No default tools** — you choose exactly what the agent needs\n- **Use case:** anything creative or specific that doesn't fit the other types",
"advanced": "高级模式AI指令最大迭代",
"advancedContent": "Click **\"Advanced mode\"** at the bottom of the form to access additional settings.\n\n### AI Instructions\n\nThis field lets you **replace the default system prompt** for the agent. If left empty, the agent uses an automatic prompt adapted to its type.\n\n**Why use it?** You want to control exactly how the agent behaves. For example:\n- \"Write the summary in English, even if sources are in French\"\n- \"Structure the note with sections: Context, Key Points, Personal Opinion\"\n- \"Ignore articles older than 30 days and focus on recent news\"\n- \"For each detected theme, suggest 3 follow-up leads with links\"\n\n> **Note:** Your instructions replace the defaults, they don't add to them.\n\n### Max iterations\n\nThis is the **maximum number of cycles** the agent can perform. One cycle = the agent thinks, calls a tool, reads the result, then decides the next action.\n\n- **3-5 iterations:** for simple tasks (scraping a single page)\n- **10 iterations (default):** good balance for most cases\n- **15-25 iterations:** for deep research where the agent needs to explore multiple leads\n\n> **Warning:** More iterations = more time and potentially higher API costs.",
"tools": "可用工具(详细)",
"toolsContent": "When advanced mode is enabled, you can choose exactly which tools the agent can use.\n\n### Web Search\nAllows the agent to **search the internet** via SearXNG or Brave Search.\n\n- **What it does:** The agent formulates a query, gets search results, and can then scrape the most relevant pages.\n- **When to enable:** When the agent needs to find information on a topic (Researcher or Custom type).\n- **Configuration required:** SearXNG (with JSON format enabled) or a Brave Search API key. Configurable in **Admin > Agent Tools**.\n- **Example:** The agent searches \"React Server Components best practices 2025\", gets 10 results, then scrapes the top 3.\n\n### Web Scrape\nAllows the agent to **extract text content from a web page** given its URL.\n\n- **What it does:** The agent visits a URL and retrieves the structured text (headings, paragraphs, lists). Ads, menus and footers are typically filtered out.\n- **When to enable:** For the Monitor type (mandatory), or any agent that needs to read web pages.\n- **Configuration:** Works out of the box, but a **Jina Reader API key** improves quality and removes rate limits. Configurable in **Admin > Agent Tools**.\n- **Example:** The agent scrapes 5 tech blogs and produces a synthesized summary.\n\n### Note Search\nAllows the agent to **search your existing notes**.\n\n- **What it does:** The agent performs a text search across all your notes (or a specific notebook).\n- **When to enable:** For Observer-type agents, or any agent that needs to cross-reference information with your notes.\n- **Configuration:** None — works immediately.\n- **Example:** The agent searches all notes containing \"machine learning\" to see what you've already written on the topic.\n\n### Read Note\nAllows the agent to **read the full content of a specific note**.\n\n- **What it does:** After finding a note (via Note Search), the agent can read its entire content to analyze or use it.\n- **When to enable:** As a companion to Note Search. Enable both together so the agent can search AND read.\n- **Configuration:** None.\n- **Example:** The agent finds 5 notes about \"productivity\", reads them all, and writes a synthesis.\n\n### Create Note\nAllows the agent to **write a new note** in your target notebook.\n\n- **What it does:** The agent creates a note with a title and content. This is how results end up in your notebooks.\n- **When to enable:** Almost always — without this tool, the agent cannot save its results. **Leave it enabled by default.**\n- **Configuration:** None.\n- **Example:** The agent creates a note \"Tech Watch - Week 16\" with a summary of 5 articles.\n\n### Fetch URL\nAllows the agent to **download the raw content of a URL** (HTML, JSON, text...).\n\n- **What it does:** Unlike scraping which extracts clean text, Fetch URL retrieves raw content. Useful for APIs, JSON files, or non-standard pages.\n- **When to enable:** When the agent needs to query REST APIs, read RSS feeds, or access raw data.\n- **Configuration:** None.\n- **Example:** The agent queries the GitHub API to list the latest commits of a project.\n\n### Memory\nAllows the agent to **access its previous execution history**.\n\n- **What it does:** The agent can search through results from past runs. This lets it compare, track changes, or avoid repeating the same information.\n- **When to enable:** For agents that run regularly and need to maintain continuity between executions.\n- **Configuration:** None.\n- **Example:** The agent compares this week's news with last week's and highlights what's new.",
"frequency": "频率和计划",
"frequencyContent": "| Frequency | Behavior\n|-----------|----------\n| **Manual** | You click \"Run\" yourself — no automatic scheduling\n| **Hourly** | Runs every hour\n| **Daily** | Runs once per day\n| **Weekly** | Runs once per week\n| **Monthly** | Runs once per month\n\n> **Tip:** Start with \"Manual\" to test your agent, then switch to an automatic frequency once you're satisfied with the results.",
"targetNotebook": "目标笔记本",
"targetNotebookContent": "When an agent finishes its task, it **creates a note**. The **target notebook** determines where that note goes:\n\n- **Inbox** (default) — the note goes to your general notes\n- **Specific notebook** — choose a notebook to keep agent results organized\n\n> **Tip:** Create a dedicated notebook like \"Agent Reports\" to keep all automated content in one place.",
"templates": "模板",
"templatesContent": "Templates are pre-configured agents ready to install in one click. You'll find them at the **bottom of the Agents page**.\n\nAvailable templates include:\n\n- **AI Watch** — weekly AI news roundup from 5 specialized sites\n- **Tech Watch** — general tech news summary\n- **Dev Watch** — developer news and new frameworks\n- **Note Observer** — analyzes a notebook and suggests connections\n- **Topic Researcher** — deep research on a specific topic\n\nOnce installed, you can edit the agent to customize it.",
"tips": "提示和故障排除",
"tipsContent": "- **Start with a template** and customize it — it's the fastest way to get a working agent\n- **Test with \"Manual\"** frequency before enabling automatic scheduling\n- **A \"Researcher\" agent requires a web search provider** — configure SearXNG (JSON format) or Brave Search in **Admin > Agent Tools**\n- **If an agent fails**, click on its card then **History** to see the execution log and tool traces\n- **The \"Enabled/Disabled\" toggle** lets you pause an agent without deleting it\n- **Web scraping quality** improves with a Jina Reader API key (optional, in Admin > Agent Tools)\n- **Combine \"Note Search\" + \"Read Note\"** so the agent can find AND analyze your notes' content\n- **Enable \"Memory\"** if your agent runs regularly — it will avoid repeating the same information across runs",
"tooltips": {
"agentType": "选择代理将执行的任务类型。每种类型具有不同的功能和字段。",
"researchTopic": "代理将在网络上研究的主题。请具体说明以获得更好的结果。",
"description": "关于此代理功能的简短描述。帮助您记住其用途。",
"urls": "要抓取的网站列表。代理将访问每个URL并提取内容。",
"sourceNotebook": "代理将分析的笔记本。它读取此笔记本中的笔记以查找关联和主题。",
"targetNotebook": "代理的结果笔记将保存到哪里。选择收件箱或特定笔记本。",
"frequency": "代理自动运行的频率。从手动开始测试。",
"instructions": "替换默认AI提示的自定义指令。留空则使用自动提示。",
"tools": "选择代理可以使用的工具。每个工具赋予代理特定能力。",
"maxSteps": "最大推理循环数。更多步骤 = 更深入的分析,但耗时更长。"
}
}
},
"chat": {
"title": "AI 聊天",
"subtitle": "与您的笔记和 AI 代理聊天",
"newConversation": "新对话",
"noHistory": "暂无历史记录",
"untitled": "无标题对话",
"deleteConfirm": "删除此对话?",
"yes": "是",
"placeholder": "向助手发送消息...",
"allNotebooks": "所有笔记本",
"inAllNotebooks": "在所有笔记本中",
"active": "活跃",
"disclaimer": "AI 可能会出错。请核实重要信息。",
"assistantError": "助手错误",
"loadError": "加载对话时出错",
"createError": "创建对话时出错",
"deleteError": "删除时出错",
"renamed": "对话已重命名",
"renameError": "重命名时出错",
"welcome": "我可以帮助您综合笔记、生成新想法或讨论您的笔记本。",
"searching": "搜索中...",
"noNotesFoundForContext": "未找到与此问题相关的笔记。请用你的常识回答。"
},
"labHeader": {
"title": "实验室",
"live": "实时",
"currentProject": "当前项目",
"choose": "选择...",
"yourSpaces": "您的空间",
"updated": "已更新",
"newSpace": "新思考空间",
"new": "新建",
"renamed": "空间已重命名",
"renameError": "重命名时出错",
"created": "新空间已创建",
"createFailed": "创建失败",
"deleteSpace": "删除空间",
"deleted": "空间已删除",
"deleteError": "删除时出错"
},
"notification": {
"shared": "分享了\"{title}\"",
"untitled": "无标题",
"notifications": "通知",
"accept": "Accept",
"accepted": "Share accepted",
"decline": "Decline",
"declined": "分享已拒绝",
"noNotifications": "No new notifications",
"removed": "笔记已从列表中移除"
},
"reminders": {
"title": "提醒",
"empty": "暂无提醒",
"emptyDescription": "为笔记添加提醒后,它会显示在这里。",
"upcoming": "即将到来",
"overdue": "已过期",
"done": "已完成",
"markDone": "标记为已完成",
"markUndone": "标记为未完成",
"todayAt": "今天 {time}",
"tomorrowAt": "明天 {time}"
}
}