学习笔记 · Obsidian
OpenWiki:配置、提供商、自动化与安全
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/.env | provider config、API key、OAuth token |
~/.openwiki/openwiki.sqlite | conversation checkpoint |
~/.openwiki/install-id | 匿名 telemetry 安装 ID |
~/.openwiki/wiki/ | personal wiki |
~/.openwiki/onboarding.json | personal 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 和依赖变更。