AI 文档生成器(Divar)
用五个并发 AI 智能体自动分析代码库,生成 README、CLAUDE.md、AGENTS.md 等文档,让新成员快速上手、文档不再腐化。
证据显示代理仅注册只读工具(FileReadTool、ListFilesTool,限定范围读取),最小权限有据可依,得2;但cronjob模式自动向GitLab项目开合并请求,缺少用户确认与回滚/清理机制,user_confirmation与external_effects仅1,rollback完全未见记载得0;敏感数据仅靠.env.sample提示,未见密钥轮换或脱敏说明;source_attribution仅在LICENSE署名Divar,生成文档是否标注AI来源无说明。
pyproject精确锁定依赖版本并配重试(指数退避、Retry-After),dependency_availability给2;README与pyproject的CLI、依赖描述一致,self_consistency给2;但实际错误处理、失败提示文案未见源码,failure_messages仅1。
面向开发者入职/文档维护场景,README覆盖Claude插件、pip、uv、Docker、Helm多种环境,audience_and_scenarios与environment_fit给2;触发精度方面CLI与配置分层(Pydantic默认<YAML<CLI)清晰,给2;但能力边界(何种代码库不适用、LLM幻觉风险)与已知局限几乎未提及,capability_boundaries给1。
LICENSE文件完整、MIT声明一致得3;安装说明详尽(含前置条件、多种安装方式)得2;目录结构与命名稳定;但无CHANGELOG(仅pyproject版本1.2.0),versioning_changelog给1;无FAQ、无测试证据展示,examples_and_faq与known_limitations各1;维护责任仅靠作者邮箱与博客,缺CONTRIBUTING或治理文件,maintenance_responsibility给1。
输出物(README、CLAUDE.md、AGENTS.md、cursor规则)定位明确,提供跳过已存在文件、行数限制等可用性选项,output_usability给2;相对人工写文档有明确边际价值,marginal_value给2;但成本(LLM调用、五个并发代理的token开销)无估算或预算控制说明,cost_benefit仅1。
README的功能声明与pyproject、workflow文件可部分互证(pydantic-ai、GitLab集成、Claude动作),cross_source_corroboration给2;但核心声明(五代理并发质量、生成的文档质量)无测试或样例输出佐证,claim_traceability与fact_inference_separation仅1,营销性博客链接与事实描述未分离。
- cronjob模式会自动向GitLab项目提交合并请求,部署前务必确认目标项目范围与凭据权限,避免误写仓库。
- 生成的README/CLAUDE.md/AGENTS.md由LLM产出,可能包含不准确描述,合并前需人工审核。
- 未提供回滚机制:若自动生成的文档覆盖了人工维护的内容,恢复需依赖Git历史。
- 五代理并发分析的LLM token成本未量化,大规模使用前应先估算。
- 仅有README级证据,核心源码与测试未在本次评审材料中,实际行为需自行验证。
这个 Agent 能做什么,适合哪些场景?
这是 Divar 开源的 ai-doc-gen,一个多智能体文档生成系统。它通过五个专职分析智能体并发地梳理代码库的结构、依赖、数据流、请求流和 API,并把分析结果写入 .ai/docs/。生成阶段由 DocumenterAgent 产出 README.md,由 AIRulesGeneratorAgent 产出 CLAUDE.md、AGENTS.md 和 Cursor 规则文件。项目同时是可安装的 Claude Code 插件,提供 analyze-codebase、generate-readme、generate-ai-rules 三个技能。它支持任何 OpenAI 兼容 API,并通过 GitLab cronjob 模式自动发现活跃项目并发起合并请求。可观测性方面集成了 logfire/OpenTelemetry 与 Langfuse。
运行 uv run src/main.py analyze --repo-path . 时,AnalyzerAgent 通过可配置的工作线程池(ANALYZER_MAX_WORKERS,0 为自动检测 CPU 数)并发调度五个分析智能体(代码结构、数据流、依赖、请求流、API),每个智能体使用 FileReadTool 和 ListFilesTool 读取文件,分析文档写入 .ai/docs/。generate readme 命令调用 DocumenterAgent 基于 .ai/docs/ 生成 README.md;generate ai-rules 命令调用 AIRulesGeneratorAgent 并发生成 CLAUDE.md、AGENTS.md 和 .cursor/rules/*.mdc。cronjob analyze 命令通过 python-gitlab 发现最近活跃的 GitLab 项目、执行分析并自动创建合并请求。配置按 Pydantic 默认值 < .ai/config.yaml < CLI 参数的优先级叠加,支持按智能体指定模型和端点。
- 工程团队接手大型陌生代码库,需要快速产出架构、依赖和数据流的入门文档以缩短新成员 onboarding 时间。
- 使用 Claude Code 或 Cursor 的开发者,希望为仓库一键生成 CLAUDE.md、AGENTS.md 和 .cursor/rules/,让 AI 编码助手理解项目规范。
- 维护多个 GitLab 项目的平台团队,配置 Kubernetes CronJob 定期重新分析活跃项目并以合并请求形式提交最新文档。
- 文档长期过时、README 无人维护的存量项目,可通过 --use-existing-readme 在旧文档基础上重新生成。
- 希望在本地使用自托管或 OpenRouter 等非 OpenAI 模型的团队,可为每个智能体单独配置模型与端点。
这个 Agent 有哪些优点和局限?
- 五个专职智能体并发分析(结构、数据流、依赖、请求流、API),覆盖面比单一 LLM 提示一次生成的文档更细。
- 同时是 Claude Code 插件,无需 API key 和 Python 环境即可通过三个技能使用,也可作为独立 CLI 运行。
- 支持任意 OpenAI 兼容 API(OpenRouter、本地模型等),且每个智能体可单独配置模型与端点,避免供应商锁定。
- 具备生产化细节:指数退避与 Retry-After 的 HTTP 重试、agent 级重试、logfire/OpenTelemetry 加 Langfuse 可观测性。
- GitLab cronjob 模式可自动发现活跃项目并以合并请求交付文档,适合持续维护。
- 要求 Python 3.13 这一较新运行时,老环境需升级。
- 核心是分析型文档生成,需要能访问 LLM API,会产生持续的 API 调用成本。
- GitLab 自动化依赖 python-gitlab 凭证和 cronjob 部署(Docker/Helm/K8s),纯 GitHub 工作流没有对等的自动化路径。
- 文档质量依赖底层模型能力,README 未提供生成质量基准或评估数据。
- 输出面向特定 AI 助手格式(CLAUDE.md、AGENTS.md、Cursor 规则),使用其他工具的团队需自行评估产出适用性。
如何安装或部署这个 Agent?
方式一(Claude Code 插件,无需 API key 和 Python):在 Claude Code 中运行 /plugin marketplace add divar-ir/ai-doc-gen 和 /plugin install ai-doc-gen@divar。方式二(本地运行):需要 Python 3.13、Git 和 OpenAI 兼容 LLM API 访问。克隆仓库 git clone https://github.com/divar-ir/ai-doc-gen.git && cd ai-doc-gen,推荐用 uv sync 安装(或 pip install -e .)。容器化部署提供 Dockerfile 和 Helm chart(k8s/helm/,用于 Kubernetes CronJob 定时任务)。
如何使用这个 Agent?
- 配置:cp .env.sample .env 填入 LLM API key、base URL 等;mkdir -p .ai && cp config_example.yaml .ai/config.yaml。2. 分析代码库:uv run src/main.py analyze --repo-path .,结果写入 .ai/docs/。3. 生成 README:uv run src/main.py generate readme --repo-path .。4. 生成 AI 助手配置:uv run src/main.py generate ai-rules --repo-path .。5. GitLab 批量模式:uv run src/main.py cronjob analyze,可用 --max-days-since-last-commit 14 过滤项目。可用 --exclude-code-structure 等跳过特定分析,--max-workers 2 限制并发,安装后也可通过 ai-doc-gen 控制台脚本调用相同命令。