学习笔记 · Obsidian

OpenWiki:配置、提供商、自动化与安全

LangChainLangSmith

CLI 工作方式

  • openwiki:当前仓库的交互式 code-mode session。
  • openwiki --init / --update:初次生成或增量更新,不能同时使用。
  • openwiki -p:一次性运行,打印最终输出后退出。
  • openwiki personal ...:个人 wiki。
  • openwiki visualize:本地 graph reader。
  • openwiki auth:OAuth 与 connector 配置。
  • openwiki ingest <source|instance|all>:抓取 source raw data 并更新 personal wiki。
  • openwiki cron ...:macOS personal connector schedule。

交互 session 可用 /provider、/model、/api-key、/langsmith-key、/init、/update 与 /exit。API key prompt 被遮罩,配置持久化到本地 .env。

本地状态

路径用途
~/.openwiki/.envprovider config、API key、OAuth token
~/.openwiki/openwiki.sqliteconversation checkpoint
~/.openwiki/install-id匿名 telemetry 安装 ID
~/.openwiki/wiki/personal wiki
~/.openwiki/onboarding.jsonpersonal onboarding 与 connector schedules
~/.openwiki/connectors/connector config 与 raw data

文档声明目录权限为 0700、.env 为 0600。OAuth refresh token 应按密码级别保护;配置文件不得包含 secret 原值。

模型提供商

支持 OpenAI、ChatGPT OAuth、GitHub Copilot、OpenRouter、Anthropic、Gemini、Vertex AI、Bedrock、Baseten、Fireworks、Nebius、NVIDIA 和 OpenAI-compatible endpoints。

关键边界:

  • 进程环境优先于 ~/.openwiki/.env。
  • provider/model 由 OPENWIKI_PROVIDER 与 OPENWIKI_MODEL_ID 指定。
  • provider request 默认重试三次,可配置为正整数。
  • Copilot 在本地可复用 GitHub CLI credential;CI 需要 OAuth token,classic/fine-grained PAT 不适用。
  • ChatGPT provider 使用订阅侧 Codex allowance,OAuth refresh token 必须视为密码。
  • Vertex AI 使用 ADC、project/location 和模型权限;MaaS model 可能有区域限制。
  • Bedrock 优先显式 credential,否则走 AWS SDK default chain;部分模型需要 cross-region inference profile ID。
  • OpenAI-compatible endpoint 即便忽略 key,OpenWiki 仍要求配置一个 key 值。
  • OpenRouter 可显式限制上游 provider,减少路由漂移。

Customization

  • openwiki/INSTRUCTIONS.md 与 ~/.openwiki/INSTRUCTIONS.md 是用户拥有的 brief,init/update 不重写。
  • Code run 只维护 agent instruction 文件的 OpenWiki marker block。
  • --telemetry-file=<path> 可把实际将发送的 telemetry payload 写到本地供检查。

匿名 telemetry 默认记录 run command、success/failure/no-op、粗粒度错误类别,以及 init 时的 mode/provider/connector names;文档声明不收集文件内容、仓库名、凭据、prompt、模型输出、connector payload、错误消息、路径、URL、model ID 或个人信息。

可以使用 OPENWIKI_TELEMETRY_DISABLED=1 或 DO_NOT_TRACK=1 禁用;CI 也应显式决定是否保留 telemetry。

CI 自动更新

官方提供 GitHub Actions、GitLab CI、Bitbucket Pipelines 示例。CI 使用:

openwiki code --update --print

--update 在没有初始 wiki 时也会创建,因此 CI 不需要先执行 --init。workflow 通过仓库 secret/CI variable 注入 provider、model 与可选 LangSmith tracing key。

OpenWiki 只有在 wiki 实际变化时才更新 .last-update.json,无变化则不产生 PR/MR。变更 PR 可能包含 wiki、AGENTS.md、CLAUDE.md 和 workflow 本身,review 时应分别检查生成知识、agent pointer 和 CI 权限。

供应链与权限建议

  • CI token 只授予读取源码与创建分支/PR 所需的最小权限。
  • 固定 OpenWiki 与 action 版本,升级前审查 changelog 与生成 diff。
  • .openwikiignore 排除 secrets、生成物、大型二进制和受限目录。
  • 禁止把 ~/.openwiki/.env、connector raw data 或 checkpoint 提交仓库。
  • PR 中重点审查敏感信息泄露、错误架构结论、AGENTS marker 变化与异常大 diff。
  • 自动更新只创建可审查 PR,不直接写保护分支。

Changelog 边界

文档内的 changelog 路径当前以 HTTP 307 重定向到 OpenWiki GitHub Releases。它是外部发布记录入口,不是 docs.langchain.com 内的独立正文页;升级时需要单独审查 release notes 和依赖变更。