mirror of
https://github.com/tinyhumansai/openhuman.git
synced 2026-07-27 21:08:00 +00:00
0f439fe1e1
## Summary - 添加第二批核心功能模块的中文翻译(8 个文件):隐私与安全、第三方集成、吉祥物、模型路由、编码器、语音、定时任务、系统与工具 - 修复批次 A 遗留的 12 处未本地化内部链接(因第二批新增目标 `.zh-CN` 文件,之前保留的英文链接现在可指向中文版) - 修复第二批翻译中的 12 处质量问题:错别字、过直译、中英混杂、指向不存在的 `.zh-CN` 链接 - 修复隐私与安全文档中指向 `local-ai.zh-CN.md` 和 `triggers.zh-CN.md` 等尚未翻译文件的错误链接 - 统一 mascot、integrations 等跨模块链接指向,确保中文读者在 zh-CN 文档间流转 - 所有修改仅涉及 `.md` 文档,无代码变更 ## Problem - OpenHuman 中文用户阅读英文文档存在语言障碍 - 第一批汉化(overview + lightweight features)完成后,核心功能模块(integrations、model-routing、native-tools 等)仍无中文版 - 批次 A 的部分链接因目标文件当时未翻译而保留英文版,随着第二批新增 zh-CN 文件,这些链接已过时 ## Solution - 基于英文原文逐文件翻译,遵循术语统一表(vault→存储库、Agent→智能体、LLM/Token 保留英文等) - 翻译完成后运行审计脚本扫描,修复所有未本地化链接、MD040 代码块标识、术语一致性问题 - 对于目标 `.zh-CN.md` 不存在的链接(如 triggers、subconscious、local-ai、agent-coordination),保持指向英文原文,在 Related 中标记后续批次覆盖计划 ## Submission Checklist - [x] I have read the Codex PR Checklist - [x] I have confirmed Type Check passes (`pnpm typecheck`) (N/A: Markdown docs only) - [x] I have confirmed the app builds locally (`pnpm build`) (N/A: Markdown docs only) - [x] I have added tests for this change (N/A: i18n docs do not affect testable logic) - [x] I have updated documentation (N/A: this PR is documentation-only) - [x] I have confirmed no feature flags are required (N/A: no code changes) - [x] I have confirmed Prettier passes (`pnpm format:check`) (N/A: Markdown docs only) ## Impact - Runtime/platform impact: None - Performance/security/migration/compatibility: None ## Related - Follow-up PR(s)/TODOs: - Batch C: subconscious.zh-CN.md, triggers.zh-CN.md, local-ai.zh-CN.md, agent-coordination.zh-CN.md - Batch C: memory-tools.zh-CN.md, meeting-agents.zh-CN.md, developing/cef.zh-CN.md --- ## AI Authored PR Metadata ### Linear Issue - Key: N/A - URL: N/A ### Commit & Branch - Branch: `docs/i18n-batch-b-core-features` - Commit SHA: see PR commits ### Validation Run - [x] `pnpm --filter openhuman-app format:check` — N/A: no code changed - [x] `pnpm typecheck` — N/A: no code changed - [x] Focused tests: N/A - [x] Rust fmt/check: N/A - [x] Tauri fmt/check: N/A ### Validation Blocked - N/A ### Behavior Changes - Intended behavior change: None - User-visible effect: Chinese users can now read core feature docs in zh-CN ### Parity Contract - Legacy behavior preserved: N/A - Guard/fallback/dispatch parity checks: N/A ### Duplicate / Superseded PR Handling - N/A <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Localization** * Updated Simplified Chinese UI strings for vault operations and MCP server/settings. * **Documentation** * Added extensive Chinese documentation covering integrations, mascot/meeting agents, model routing, native tools (voice, web search/scraper, coder, cron, system/tools), memory tree, obsidian wiki, token compression, platform, privacy/security, and subconscious/agent coordination. * **Chores** * Updated ignore rules to exclude AI assistant progress tracking. * Added documentation maintenance and validation scripts. <!-- review_stack_entry_start --> [](https://app.coderabbit.ai/change-stack/tinyhumansai/openhuman/pull/2450?utm_source=github_walkthrough&utm_medium=github&utm_campaign=change_stack) <!-- review_stack_entry_end --> <!-- end of auto-generated comment: release notes by coderabbit.ai --> Co-authored-by: agent:skill-master <skill-master@openclaw> Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
3.5 KiB
3.5 KiB
description, icon
| description | icon |
|---|---|
| 每隔二十分钟,OpenHuman 遍历每个活跃集成,将新数据整合进你的记忆树。 无需提示词,无需编写轮询循环。 | arrows-rotate |
自动拉取集成
大多数"AI 助手"是被动的:你提问,它们思考,它们回答。OpenHuman 则相反。它持续从你的技术栈中拉取数据,所以当你问"昨晚我的收件箱收到了什么?"时,答案已经在记忆树里了。
工作原理
一个单一的周期性调度器每二十分钟触发一次。每次触发时,它遍历每个活跃的集成,查找匹配的原生 provider,如果该连接的距上次同步的时间足够长,就调用 provider.sync(ctx, SyncReason::Periodic)。
每 20 分钟
|
v
遍历每个活跃连接(Gmail、Notion、GitHub……)
|
+--> 检查 sync_state(toolkit, connection_id)
| - 上次同步时间戳
| - 每日预算
| - 去重集合
| - 游标
|
+--> 如果间隔已过 -> provider.sync()
|
+--> 成功 -> record_sync_success(ts)
这里有几个关键点:
- 一个全局触发,而不是每个连接一个任务。 每个用户的连接数很少;一个 20 分钟的触发周期足够了,而且 bookkeeping 很简单。
- 状态按
(toolkit, connection_id)划分。 每个连接有自己的游标、上次同步时间戳、去重集合和每日预算。重启时从中重建;即使重启后错过了一次周期性同步也无害,因为下一个触发周期会重新拾取。 - 原生同步与事件驱动路径共享。 当 webhook 或
on_connection_created事件触发非周期性同步时,它们在同一个 sync_state 上盖戳,所以调度器不会冗余地重新触发。 - 错误被记录并静默处理。 调度器绝不能在其循环中 panic,否则周期性同步会在进程剩余生命周期内静默停止。
什么进入记忆树
每个 provider 负责定义自己的摄入逻辑。例如 Gmail provider 获取一页新消息,运行邮件规范化器,通过相同的手动 UI 摄入路径传输结果,块进入 SQLite,摘要 bucket 被填充,任何被触及的实体都会将主题树标记为脏。
其他 providers(GitHub、Slack、Notion……)遵循相同的形状:从游标后获取新项目 → 规范化 → 摄入到记忆树。
为什么是 20 分钟触发周期
最初设计每 60 秒运行一次。当连接了多个 provider 时,这意味着持续不断的 HTTP 获取和数据库写入,在笔记本上明显繁忙。二十分钟用一点延迟换取明显更少的前台负载。每个 provider 的 sync_interval_secs 仍然限制实际同步之间的最小延迟;全局触发周期只放宽上限。
调优和可见性
- 每个 provider 的间隔。 每个原生 provider 声明自己的
sync_interval_secs,所以高流量工具包(Gmail)可以比低流量工具包(Stripe)更频繁地同步。 - 每日预算。 每个连接有每日请求预算,以保持 API 成本和速率限制合理。
- 日志。 同步活动以 debug 级别记录在 core 日志中。
另见
- 第三方集成。自动拉取运行的连接器层。
- 记忆树。一切最终到达的地方。
- 智能 Token 压缩。使"获取一切"保持低成本的原因。