SuperAPI AI 工具集

openwiki

写作与研究

查看项目

更新于 10-22 20:09

技能介绍

用途

openwiki 用于为代码仓库构建并维护一套分类清晰、页面互链的 Markdown wiki。模型读取源码后先规划大纲,再按主题逐页撰写,并在页面中标注 file citations(文件路径与行号)。当仓库发生变化时,它可依据 git diff 刷新受影响的页面。

适用场景包括:

  • 希望获得一个可导航、且内容基于真实源码(带 path:line 引用)的仓库说明 wiki;
  • 智能体需要超出单个 instructions 文件范围的持久仓库上下文;
  • 希望 wiki 随仓库持续变化而保持更新。

主要能力

  • 生成:openwiki::generate { repo_url, model? } 启动 wiki 构建,返回 { wiki_id, status },随后轮询 openwiki::status。
  • 查看:openwiki::status { id } 获取生成进度;openwiki::wikis 列出已生成的 wiki;openwiki::wiki { id } 查看元数据;openwiki::pages { id } 获取页面索引;openwiki::page { id, slug } 获取单页 Markdown 与元数据。
  • 检索:openwiki::search { id, q } 在指定 wiki 内做关键词搜索。
  • 刷新:openwiki::refresh { id } 执行 git pull 并重新生成发生变更的页面。
  • 调度:openwiki::set-schedule { id, schedule } 设置自动刷新频率,可选 off | 3h | 6h | 12h | daily | weekly 或 cron 字符串。
  • 删除:openwiki::delete { id } 删除 wiki 及其全部页面。

上述操作同时通过 /openwiki/api/* 以 HTTP 形式暴露,/openwiki 提供浏览器 UI。

使用方式

  1. 提供公开 git 仓库地址,调用 openwiki::generate 启动生成,并按需指定模型。
  2. 轮询 openwiki::status 查看进度,完成后通过 openwiki::pages 与 openwiki::page 浏览页面内容。
  3. 需要定时保持更新时,用 openwiki::set-schedule 为单个 wiki 设置刷新频率,或通过 UI 控件设置。

自动化刷新

每个设置了自动刷新频率的 wiki 都会拥有独立的 cron trigger;触发时,openwiki::cron::refresh-due 会对所有已到刷新间隔的 wiki 执行增量刷新。刷新频率按 wiki 单独设置(openwiki::set-schedule 或 UI 控件),新 wiki 的默认频率来自 config worker 的 refresh_default。默认不调度(off)。当 openwiki 配置项变化时,openwiki::on-config-change 会重新加载默认模型、page-writer 并发数与默认刷新频率。

限制

  • 只读取与克隆公开 git 仓库,不修改仓库本身。
  • 生成质量取决于所路由的模型;它调用 router::complete,provider 与凭据位于 llm-router 配置中,而非本工具内。
  • 不是聊天机器人:它维护结构化页面,而非回答自由形式问题。
  • 克隆的仓库是本地磁盘上的临时工作副本,wiki 本身存放在 state 中。