架构概览
技术栈
- 语言: Go 1.25
- CLI: cobra + pflag
- 配置: YAML(5 层合并)
- LLM: Gemini SDK / OpenAI-compatible REST / Ollama HTTP
- 搜索: Brave Search / Serper
- 阅读器: Jina Reader
8 个关键内部包
cmd/jianwu/main.go
└── cli/ # cobra 命令树
├── engine/ # 创作引擎(6 个子包)
│ ├── grill/ # 访谈
│ ├── outline/ # 大纲
│ ├── scaffolding/ # 框架
│ ├── expand/ # 展开(调研→草稿→验证)
│ ├── factcheck/# 事实复核
│ └── revise/ # 修订
├── book/ # 领域类型
├── provider/ # 抽象层 + 工厂
│ ├── llm/ # Chatter/Embedder/Streamer
│ ├── search/ # Brave/Serper
│ └── reader/ # Jina
├── storage/ # Storage 接口(OS/MemStorage)
├── config/ # 5 层配置
├── workspace/ # 工作区管理
├── corpus/ # 语料库
└── archetypes/ + style/ # 嵌入资源
状态机
scaffolded → expanded → reviewed → final → export
outline.json 为状态单一真相源,.md frontmatter 镜像同步。
Provider 抽象
- Chatter / Embedder / Streamer — Go 风格的窄接口
- Retry 3 次(指数退避 + jitter)→ fallback 兜底
- 每个阶段可独立配置模型和超时