ex-USSR Kinship Research
把 Codex、Claude Code 变成前苏联地区家谱研究员,层层留痕、区分证据与推断。
- Star 数
- ★ 1.9k
- 最近更新
- 1 天前
- License
- MIT
- 主语言
- Python
- FA 评分
- 56/100 · 缺口较多
30 秒速览
- 运行形态
- 可在哪里用
- 兼容但需适配Codex · Claude Code
- 费用
- 软件免费,模型调用费用自付
- 上手难度
- 低 · 几分钟可跑通
- 开始前需要
- 典型场景
- 家史研究者知道曾祖父 1930 年代被流放到哈萨克斯坦,想让 Agent 在教区簿中追溯其父母。
- 不适合
- 想查在世亲属现住址或联系方式的人
- 期待自动识别并确认血缘关系的用户
- 源码审查
- 56/100 · 缺口较多
这个 Agent 能做什么,适合哪些场景?
这是一个面向 AI Agent 技能运行时的家谱研究技能,覆盖前苏联 15 个加盟共和国及俄罗斯帝国时期。核心是 SKILL.md 里的工作流程与硬性规则,配套 references/ 下的来源策略、证据协议、司法辖区指南、隐私规则和多地专题(加利西亚、车臣驱逐、德国强制劳动、比萨拉比亚等)。它通过 Python 脚本把案例变成可复核的登记册:init_case.py 建案例目录,hash_artifact.py 给每份扫描件算 SHA-256,audit_evidence.py 在写结论前检查引用完整性与佐证强度,build_pdf.py 仅在明确要求时把 HTML 报告导出 PDF。最终交付默认是一份完整 HTML 报告,可按需导出 GEDCOM 家族树。技能指令以俄语撰写,但 Agent 用用户语言交流,并保留原始拼写加译文。
先做案例受理:明确一个研究问题、已知事实、谁可能在世、哪些内容禁止触碰,并用 init_case.py 在技能目录之外建立案例。研究阶段解析每件事在事件发生时的国家、省、县、教区或民事登记处,建立姓名变体矩阵(革命前俄语、乌克兰语、波兰语、罗马尼亚语、德语、意第绪语及转写),按“原件 → 官方目录 → 索引 → 出版文献 → 族谱与论坛线索”的顺序查找来源。发现物写入人员、器物、主张、关系与完整检索日志(CSV)登记册,每份保存的扫描件用 hash_artifact.py 记录 SHA-256。主张状态只用可解释的标签:hypothesis、single-source、corroborated、strongly-corroborated、contradicted、unresolved,同一记录的副本共享 independence_group,不计为独立佐证。audit_evidence.py 检查引用完整性、ID 与状态,并列出仍未佐证或标记为难以辨认的条目。研究助手脚本包括 familysearch.py(在已登录的合法浏览器会话中查找 FamilySearch 书籍与 DGS 记录并保存许可范围内的片段)、familysearch-mcp.md 描述的 MCP 连接流程、gwar.py(一战 GWAR 报告、医院、嘉奖与战俘记录检索)、register_search.py 与需要 Pillow 的 scan_montage.py。最后用 assets/report.template.html 产出带关系证据的 HTML 报告,必要时导出 GEDCOM 5.5.1(UTF-8)文件。
- 家史研究者知道曾祖父 1930 年代被流放到哈萨克斯坦,想让 Agent 在教区簿中追溯其父母。
- 手头有一份结婚证扫描件和一张士兵卡,需要判断是否同一人并搭建证据链。
- 要为一个 1890 年代波多利亚村庄找到教区与对应的 FamilySearch 胶卷,并逐条读取某姓氏的出生记录。
- 需要向档案馆、图书馆或大学起草并发送正式查询信,且要避免重复发送、把回信当作证据登记。
- 处理车臣 1944 年驱逐、德国 1941–1945 强制劳动或比萨拉比亚跨境记录等特定专题的家族。
- 要把已有家谱整理成带来源引用的 GEDCOM 文件,交给另一个家谱软件继续使用。
如何安装或部署这个 Agent?
需要 Node.js 时可用 Skills CLI 安装(默认装入当前项目,加 -g 则跨项目安装):
npx skills add https://github.com/DenisSergeevitch/ex-ussr-kinship-research也可以直接克隆到 Agent 的技能目录。Codex:
git clone https://github.com/DenisSergeevitch/ex-ussr-kinship-research ~/.codex/skills/ex-ussr-kinship-researchClaude Code 个人技能:
git clone https://github.com/DenisSergeevitch/ex-ussr-kinship-research ~/.claude/skills/ex-ussr-kinship-research单一项目则放进仓库内的 .claude/skills/。多数脚本只需要 Python 3 标准库;scan_montage.py 需要 Pillow,build_pdf.py 需要基于 Chromium 的浏览器(或设置 CHROME_PATH),加 --png-dir 渲染页面预览还需要 pypdfium2。
如何使用这个 Agent?
安装后直接用自然语言描述家族问题,Agent 会按技能工作流推进,并在等待档案回信时继续其他线索。例如:“我的曾祖父 1930 年代被流放到哈萨克斯坦,帮我在教区簿里找他的父母。”
在技能目录内初始化案例(脚本拒绝在技能文件夹内创建案例,包括 --force):
python scripts/init_case.py --case-dir ~/kinship-cases/my-case --research-question "Who were Maria's parents?" --subject-label "Maria"为每份保存的扫描件计算校验值:
python scripts/hash_artifact.py ~/kinship-cases/my-case/scans/marriage-1902.jpg写最终报告前审计证据登记册:
python scripts/audit_evidence.py --case-dir ~/kinship-cases/my-case只有在明确要求 PDF 时才导出(要求静态 HTML、本地或内嵌图片,拒绝活动脚本与网络图片源):
python scripts/build_pdf.py --html ~/kinship-cases/my-case/report.html --out ~/kinship-cases/my-case/report.pdf私有案例数据应放在技能 Git 检出目录之外。运行单元测试:
python3 -m unittest discover -s tests这个 Agent 有哪些优点和局限?
- 证据协议用可解释的状态标签代替百分比,并用 independence_group 防止把同一记录的副本当成独立佐证。
- 按事件发生时的历史司法辖区定位档案,而不是用今天的地图,减少找错档案馆。
- audit_evidence.py 在写结论前自动检查引用完整性、ID 与弱佐证,降低“先有结论再找证据”的风险。
- 默认交付完整 HTML 报告,关系逐条展开,PDF 仅在明确要求时才生成且会拒绝活动 HTML 与网络图片源。
- 明确拒绝查询在世人员的现住址、电话与账户,并对驱逐、镇压、收养、DNA 等敏感发现保持中立表述。
- 技能指令本身是俄语撰写,虽声称用用户语言交流,但维护与审阅仍需俄语能力。
- 多数能力依赖已登录的合法浏览器会话访问 FamilySearch,未登录或地区受限时功能受限。
- PDF 导出依赖本机安装 Chrome、Chromium 或 Edge,或设置 CHROME_PATH。
- FamilySearch MCP 工作流需要用户自行接入服务器并核对连接器的浏览器、隐私与写入能力,技能本身不提供托管。
- 档案通信只能通过用户授权的邮箱或工具发送,连接邮箱本身并不构成发送授权。
这个 Agent 与同类方案有什么区别?
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | 形态 / 费用 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|---|
| ex-USSR Kinship Research 当前 | 56 · 缺口较多 | Agent 插件 / 技能免费 + 模型费 | ★ 1.9k | 1 天前 | Python | Codex · Claude Code |
| Apify Agent Skills | 40 · 缺口较多 | Agent 插件 / 技能免费版 + 付费版 | ★ 2.5k | 5 天前 | Python | Codex · Claude Code |
| Jev Social | 71 · 存在缺口 | 命令行工具免费 + 模型费 | ★ 196 | 3 天前 | JavaScript | — |
| Principia | 66 · 存在缺口 | 命令行工具免费 + 模型费 | ★ 1.1k | 1 个月前 | Rich Text Format | — |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
README 明确声明拒绝追踪在世者、不将文件上传第三方、CAPTCHA 仅一次尝试并转交用户、发送邮件需授权、init_case.py 拒绝在技能目录内建案,体现最小权限与用户确认;但依赖安全仅以'仅需 Python 标准库'口头断言,未提供锁定或审计,扣分;回滚方面仅提到渲染失败保留旧 PDF,缺少更广的恢复机制,故为 1。
测试覆盖审计脚本的字段校验、独立性分组、状态一致性、报告 ID 引用等,自洽性较好;但依赖可用性仅靠 README 描述(Chromium、pypdfium2 可选),无版本约束或清单,扣分;错误信息在测试中显示为具体中文提示(如'文件未找到'、字段数不符),故给 2。
面向多语言用户与多场景(教会簿、军事、驱逐、FamilySearch、GWAR、GEDCOM),边界声明清晰(不自动判定身份、不安装外部程序);但触发精度仅靠 SKILL.md 描述,未见具体触发词或路由规则,故为 1;环境适配覆盖 Codex/Claude Code 及 CLI 安装,给 2。
README 结构清晰、安装说明完整、示例丰富、MIT 许可证明确;但命名稳定性仅见 changelog 引用,未见版本号或语义化版本策略,扣分;已知限制仅零散提及,未集中列出;维护责任仅署名作者,无治理或更新流程,故为 1。
输出可用性高(CSV 登记册、最终报告模板、PDF 生成、GEDCOM 导出),边际价值明显(证据优先、独立性分组、审计脚本);但成本效益受限于需人工准备案件目录、依赖外部浏览器与可选库,且未提供量化收益,故为 1。
证据协议明确区分假设、单源、佐证、强佐证、矛盾、未解决,并要求独立性分组与直接原始记录;审计脚本强制检查引用 ID 与状态匹配,事实与推断分离良好;但跨源佐证依赖用户正确填写分组,脚本仅能校验声明,无法验证实际独立性,故给 2。
- 依赖安全仅靠'仅需标准库'的口头声明,未提供锁定文件或依赖审计,实际使用中可能引入未审查的第三方包。
- 跨源佐证依赖用户手动填写独立性分组,审计脚本只能校验声明一致性,无法验证来源是否真正独立。
- 触发精度未在可见文件中明确,SKILL.md 未提供具体触发词或路由规则,可能导致误触发或漏触发。
- 版本与变更管理仅引用 changelog,未见语义化版本号或发布流程,长期维护责任不明确。