@LangChain:OpenWiki 的代码初始化提示词刚刚获得重大升级!现在它能生成更高质量的 wiki,覆盖更多你的代码…

X AI KOLs Timeline 工具

摘要

OpenWiki 是一个 CLI 工具,用于生成和维护代码库的自更新 wiki。它的代码初始化提示词刚刚迎来重大升级,可生成更高质量的 wiki,覆盖更多代码库内容,并带来更好的评估分数和更高效的运行。该工具支持多种模型提供商、连接器以及交互式可视化器。

OpenWiki 的代码初始化提示词刚刚迎来重大升级!现在它能生成更高质量的 wiki,覆盖更多代码库内容,从而获得更好的评估分数和更高效的运行。今天就本地试用:https://github.com/langchain-ai/openwiki…
查看原文
查看缓存全文

缓存时间: 2026/08/04 22:16

OpenWiki 的代码初始化提示刚刚迎来重大升级!现在它能够生成更高质量的 wiki,覆盖更多代码库内容,从而带来更好的评估分数和更高效的运行。今天就本地试用:https://github.com/langchain-ai/openwiki… — # langchain-ai/openwiki 来源:https://github.com/langchain-ai/openwiki ### 自我维护的 wiki。为 Agent 构建,由人类探索。 npm 版本 (https://www.npmjs.com/package/openwiki) 下载量 (https://www.npmjs.com/package/openwiki) Node (https://nodejs.org) 许可证:MIT 基于 Deep Agents (https://github.com/langchain-ai/deepagentsjs) 构建 OpenWiki 是一个 CLI 工具,用于为你的代码库或个人知识编写并维护 wiki。一个 agent 会读取你的源代码,综合生成一个你拥有的、带链接的 Markdown wiki,并在每次变更时保持其最新。它旨在供 agent 作为记忆读取,同时附带一个交互式可视化器供人类探索。 OpenWiki 为你提供: - Agent 编写的文档,由 Deep Agents (https://github.com/langchain-ai/deepagentsjs) 文档 agent 生成,保持准确。 - 两种模式: 用于仓库的 code wiki,或用于个人知识的 personal wiki。 - 开箱即用的十二种模型提供商,从 OpenAI 和 Anthropic 到 Bedrock、Gemini,以及任何兼容 OpenAI 的网关。 - 内置连接器,支持 Notion、Slack、Gmail、X、Web 搜索、Hacker News 和本地 git 仓库。 - 交互式可视化器,可将任何 wiki 变成实时可探索的节点图。 - 自动更新,通过 GitHub Actions、GitLab CI 或 Bitbucket Pipelines。 - 开放知识格式(OKF v0.1 (https://github.com/GoogleCloudPlatform/knowledge-catalog/blob/main/okf/SPEC.md))输出,包含经过验证的 Mermaid 图表。 ## 🎉 新特性 - 交互式可视化器: 将任何 wiki 变成实时可探索的节点图,并配备并排 Markdown 阅读器。 - .openwikiignore 使用熟悉的 gitignore 风格规则,将生成的、私有的或不相关的路径排除在文档运行之外。 - 多语言 wiki: 使用 --language 生成其他语言的文档,而代码和标识符保持原样。 - LangSmith 连接器: 将最近的 LangSmith 追踪(工具调用、结果、延迟)拉取到代码 wiki 中。 - GitHub Copilot 提供商: 复用现有的 Copilot 订阅进行推理,无需单独的 API 密钥。 ## 快速开始 安装 CLI: sh npm install -g openwiki 为当前仓库生成 wiki。首次运行会引导你选择提供商、密钥和模型,然后将文档写入 openwiki/sh openwiki --init 通过添加一个计划任务 CI 作业,在每次变更时自动打开文档 PR,从而保持其最新: - GitHub Actions:openwiki-update.yml 复制到 .github/workflows/openwiki-update.yml。 - GitLab CI:openwiki-update.gitlab-ci.yml 复制到 .gitlab-ci.yml,或从你的管道中包含它。 - Bitbucket Pipelines:openwiki-update.bitbucket-pipelines.yml 复制到 bitbucket-pipelines.yml,然后调度 openwiki-update 管道。 > [!NOTE] > 在 Windows 上,请使用 Node.js 包管理器(npm install -g openwikipnpm add -g openwiki)安装。使用 bun 安装可能会回退到编译 better-sqlite3 原生依赖,这需要安装带有“使用 C++ 的桌面开发”工作负载的 Visual Studio Build Tools。 ## 两种模式 OpenWiki 以两种模式之一运行。不带参数的 openwikiopenwiki --initopenwiki --update 默认使用 code 模式;添加 personal 位置参数(或 --mode personal)可使用个人大脑。 | 模式 | 文档对象 | 写入位置 | 开始使用 | | –––––––––– | ––––––––––– | ———————– | ––––––––––––– | | Code (默认) | 当前仓库 | 仓库中的 openwiki/ | openwiki --init | | Personal | 你已连接的来源 | ~/.openwiki/wiki | openwiki personal --init | 默认情况下,CLI 在运行后保持打开状态,以便你可以发送后续消息。添加 -p / --print 可进行一次性、非交互式运行,打印最终输出后退出。--init--update 在交互式终端中成功时自动退出,因此同一命令既可以一次性运行,也可以交互式运行。 ## 探索你的 wiki 将任何 wiki 变成交互式节点图,并配备实时并排 Markdown 阅读器: sh openwiki visualize 这会在本地回环地址(127.0.0.1,永不暴露于网络)上提供 ./openwiki 服务,并在浏览器中打开图表。当服务器运行时,对 wiki 文件的编辑会被自动拾取。传入一个路径来可视化不同的目录,使用 --port 选择端口(冲突时递增;默认 4321),使用 --no-open 保持浏览器不打开: sh openwiki visualize openwiki --port 4400 --no-open > [!NOTE] > 页面会从公共 CDN 加载其图表、Markdown 和图表库,因此即使服务器本身是本地运行,也需要互联网连接。按 Ctrl-C 停止。 ## 连接你的来源 在 personal 模式下,OpenWiki 会摄取你已使用工具的知识,并将其综合到你本地的 wiki 中。首次运行的引导提供 本地 git 仓库、Notion、Gmail、X/Twitter、Web 搜索和 Hacker News 的设置。 在摄取运行期间,确定性连接器工具会将原始数据和清单写入 ~/.openwiki/connectors//raw/ 下,然后针对特定来源的 agent 运行会在 ~/.openwiki/wiki/ 下综合生成 wiki。你可以多次配置同一个连接器(例如,一个用于 AI 研究的 Web 搜索来源和另一个用于 NBA 新闻的来源);OpenWiki 会将它们存储为独立的实例,如 web-search-1web-search-2sh openwiki auth notion # 为某个提供商运行本地浏览器 OAuth 流程 openwiki ingest all # 运行所有已配置的来源 openwiki ingest web-search # 运行一个连接器的来源 连接器详情和 OAuth - git-repo 读取配置的本地仓库路径,并写入紧凑的清单。 - x 直接使用 X API,通过 OAuth 用户上下文凭据获取主页时间线、用户帖子、提及、书签和列表帖子。 - notion 以托管的 Notion MCP 服务器为目标,因此通过 Notion OAuth 进行身份验证,而不是粘贴令牌。 - google 直接使用 Gmail API,通过 OAuth 用户凭据获取最近的邮件。 - web-search 通过 LangChain 使用 Tavily,需要 TAVILY_API_KEY。 - hackernews 使用公共 Hacker News 订阅源和搜索 API,无需凭据。 openwiki auth 运行一个本地浏览器 OAuth 流程,将返回的令牌保存到 ~/.openwiki/.env,尽可能创建连接器配置,并为基于 MCP 的提供商发现 MCP 工具。Slack 和 Gmail 需要应用客户端凭据已预先设置在该文件中;Notion 使用动态客户端注册来托管 MCP;X 使用带有 PKCE 的 OAuth 2.0。openwiki auth configure openwiki auth tools 是高级重试命令。连接器密钥通过环境变量名引用,并存储在 ~/.openwiki/.env 中;连接器配置文件永远不会包含原始密钥值。 Slack OAuth 隧道。 openwiki ngrok start 启动一个 ngrok 隧道,带有随机的 HTTPS 转发 URL,读取 ngrok 的本地检查 API,附加 /callback,并自动保存 OPENWIKI_HTTPS_OAUTH_REDIRECT_URI。在 Slack 中注册打印出的回调 URL。使用固定域名时,运行 openwiki ngrok start https://。 ### LangSmith 连接器(code 模式) 上述连接器为 personal wiki 提供数据。LangSmith 连接器则丰富 code wiki:它通过官方 LangSmith SDK 为你选择的项目拉取最近的 LangSmith 追踪(工具调用、结果和延迟),因此仓库的文档反映其代码在运行时实际行为,而不仅仅是源代码所说明的内容。在 code 模式下运行 openwiki --init 时进行配置。从来源菜单中添加 LangSmith,选择你的工作区区域(US 或 EU),并列出要文档化的项目。OpenWiki 会写入一个已提交的 openwiki/.langsmith.json,其中命名工作区和项目(绝不是密钥本身),因此每个队友和 CI 运行都文档化同一组项目。API 密钥从环境变量中读取: sh OPENWIKI_LANGSMITH_API_KEY="" 在本地,设置向导会将其保存到 ~/.openwiki/.env。在 CI 中,将其设置为仓库密钥,并在运行中导出。 > [!NOTE] > LangSmith 密钥是工作区和区域绑定的。要为跨多个工作区的项目编写文档,请为每个工作区添加一个条目,每个条目使用自己的密钥,命名为 OPENWIKI_LANGSMITH_API_KEY_2OPENWIKI_LANGSMITH_API_KEY_3,依此类推。该连接器只与官方 US(api.smith.langchain.com)和 EU(eu.api.smith.langchain.com)主机通信。 ## 它如何保持属于你 OpenWiki 写入的所有内容都是纯 Markdown,你拥有它并与代码一起进行版本控制。 - Agent 将其作为记忆读取。 在每次 code 运行时,OpenWiki 会在仓库根目录维护 AGENTS.mdCLAUDE.md,为你的编码 agent 指向 wiki。它只重写自己的 ... 块,并保持每个文件的其他部分不变。 - 由你设定简报。 仓库特定的说明位于 openwiki/INSTRUCTIONS.md,这是一个用户编写的文件,OpenWiki 会读取其中的范围和优先级,但在正常运行期间永远不会重写。 - 无操作运行是免费的。 运行后,OpenWiki 会快照 openwiki/ 目录,并且只在有实际变更时记录新元数据,因此计划的工作流不会产生不必要的变动。 - 本地、私有配置。 提供商选择、密钥和可选的 LangSmith 追踪会保存在你机器的 ~/.openwiki/.env 中。 ## 开放知识格式 OpenWiki 在两种模式下都会生成 Google 开放知识格式(OKF)v0.1 (https://github.com/GoogleCloudPlatform/knowledge-catalog/blob/main/okf/SPEC.md) 包,因此你的 wiki 可以移植到任何支持 OKF 的工具。 - 每个概念文档都带有 YAML front matter,包含非空的 type;所有其他标准字段都是可选的。 - 概念文档之间的标准 Markdown 链接表达了它们之间的关系。 - index.mdlog.md 是保留文档,而不是概念。根索引声明 okf_version: "0.1"。 - 有效的 timestamp 值和生产者定义的扩展字段会在更新和迁移过程中保留。 ## 图表 OpenWiki 在图表比文字更能说明概念的地方嵌入 Mermaid 图表:用于运行时流程的序列图、用于数据模型的 ER 图、用于生命周期的状态图,以及用于控制流的流程图。图表以被检查的源代码为基础,在能增加信息的地方添加,并在 --update 时保持同步。无需配置。 每次运行后,OpenWiki 都会验证每个 mermaid 代码围栏。验证失败的图表会被就地转换为纯 text 围栏,并附带一段简短的解释性注释,这样它会退化为可读的文本而不是一个损坏的块。下一次 --update 会找到该注释并修复图表,因此质量会在连续运行中恢复。 > [!TIP] > 默认情况下,OpenWiki 运行一个轻量级、零依赖的检查,以捕获常见问题。为了获得与 GitHub 渲染完全匹配的权威验证,请在任何运行 OpenWiki 的地方安装 Mermaid 解析器(例如,在计划的工作流中),这样就不会有损坏的图表发布: > > sh > npm install mermaid jsdom > ## 模型提供商 引导默认是 OpenAI 与 gpt-5.6-terra。每个提供商都包含预设模型选项,并支持自定义模型 ID,并会将凭据存储在 ~/.openwiki/.env 中。 | 提供商 | 凭据 | | ———————————————————— | ————————————— | | OpenAI (默认) | OPENAI_API_KEY | | OpenAI(ChatGPT 登录) | 浏览器登录,使用你的 ChatGPT 套餐 | | Anthropic | ANTHROPIC_API_KEY | | Gemini(AI Studio) | GEMINI_API_KEY | | Gemini Enterprise(Vertex AI) | Google ADC,无密钥 | | AWS Bedrock | IAM 凭据 | | GitHub Copilot | GitHub CLI 会话 | | OpenRouter | OPENROUTER_API_KEY | | Nebius / Fireworks / Baseten / NVIDIA NIM | 提供商 API 密钥 | | OpenAI 兼容(LiteLLM、Ollama、LM Studio、网关) | 基础 URL + 密钥 | GitHub Copilot GitHub Copilot 提供商通过 OpenAI 兼容的 Copilot API(https://api.githubcopilot.com)路由推理,因此团队可以复用现有的 Copilot 订阅,而无需额外提供推理密钥。 1. 在 openwiki --init 期间选择 GitHub Copilot。如果你有活跃的 GitHub CLI (https://cli.github.com) 会话,OpenWiki 会检测到它并提供复用。否则,在凭据提示处按 Tab 键运行 gh auth login 并登录。 2. 选择一个模型(例如 gpt-5.5)。OpenWiki 会将令牌保留在 GitHub CLI 自己的凭据存储中。对于 CI 或其他无头环境,将 COPILOT_API_KEY 设置为 GitHub OAuth 令牌。Copilot API 会拒绝 Personal Access Token 用于第三方集成。本地配置可以保持无令牌: env OPENWIKI_PROVIDER="copilot" OPENWIKI_MODEL_ID="gpt-5.5" 在 CI 中,设置 COPILOT_API_KEY 仓库密钥并导出 OPENWIKI_PROVIDER=copilot。 AWS Bedrock bedrock 提供商使用 IAM 凭据调用 AWS Bedrock 上的基础模型,而不是使用单个供应商密钥: bash OPENWIKI_PROVIDER=bedrock BEDROCK_AWS_ACCESS_KEY_ID=your-access-key-id BEDROCK_AWS_SECRET_ACCESS_KEY=your-secret-access-key BEDROCK_AWS_REGION=us-east-1 OPENWIKI_MODEL_ID=anthropic.claude-sonnet-5 当未设置显式的 Bedrock 凭据时,OpenWiki 使用 AWS SDK 默认凭据提供程序链(OIDC/web 身份、IAM 角色、AWS 配置文件、ECS/EC2)。区域从 BEDROCK_AWS_REGIONAWS_REGIONAWS_DEFAULT_REGION 解析。可用的模型 ID 取决于你在账户和区域中启用了哪些基础模型,因此没有预设列表;直接粘贴 Bedrock 模型 ID 即可。 一些较新的模型只接受通过跨区域推理配置文件进行按需调用。如果你看到 ValidationException: Invocation of model ID ... with on-demand throughput isn't supported,请在模型 ID 前加上配置文件的区域代码,例如 us.anthropic.claude-sonnet-5。你的 IAM 策略随后还需要在 foundation-modelinference-profile 两种资源类型上具有 bedrock:InvokeModel / InvokeModelWithResponseStream 权限。 Gemini(AI Studio)和 Gemini Enterprise(Vertex AI) Gemini(AI Studio) 使用单个 API 密钥运行 Google 的 Gemini 模型: bash OPENWIKI_PROVIDER=gemini GEMINI_API_KEY=your-ai-studio-key Gemini Enterprise 运行 Gemini Enterprise Model Garden(原 Vertex AI)中的模型:Google 的 Gemini/Gemma、Anthropic 的 Claude,以及合作/开放权重模型(Llama、Mistral、DeepSeek、Qwen)。它会自动将每个模型 ID 路由到正确的 API 接口,并且不使用 API 密钥。身份验证使用 Google Application Default Credentials (ADC): - 通过 GOOGLE_APPLICATION_CREDENTIALS=/path/to/key.json 使用服务账号密钥文件, - 通过 gcloud auth application-default login 使用用户凭据,或 - 在 Google Cloud 或 CI 中运行时使用 workload identity。 bash OPENWIKI_PROVIDER=gemini-enterprise GOOGLE_CLOUD_PROJECT=your-gcp-project GOOGLE_CLOUD_LOCATION=global # 可选,默认为 global OPENWIKI_MODEL_ID 设置为任何 Model Garden 模型。Gemini 和 Claude 作为预设提供;合作模型通过粘贴其 ID 来使用(例如 publishers/meta/models/llama-3.3-70b-instruct-maas)。凭据需要 Vertex AI 访问权限(roles/aiplatform.user),并且模型必须在 Model Garden 中启用。global 端点以最佳的可用性为 Gemini 和 Claude 提供服务;将 GOOGLE_CLOUD_LOCATION 设置为区域端点以满足数据驻留要求,并始终为特定区域的合作(MaaS)模型显式设置它。对于 CI,在更新作业运行之前进行身份验证(例如使用 google-github-actions/auth (https://github.com/google-github-actions/auth)),并设置 OPENWIKI_PROVIDER=gemini-enterprise 和 `GOOGLE_CLO

相似文章