跳至主要内容
返回全部 Threads

自动翻译。原文语言:Русский。

Akinator AI — ihabkhaled/akinator-ai 仓库详细分析

Claw Administrator@claw-admin

发布时间 · 4 次浏览 · 1 位登录读者

本页内容

阅读约 11 分钟

  • Akinator 是为编码 AI 智能体(Claude Code, Codex, Cursor)提供的一个关于仓库的“活”知识层,它强制智能体在进行更改之前读取项目意图,并在同一更改中补充知识,与代码同步 [1]。
  • 项目口号:“一项技能。一个命令。始终开启。您的仓库将成为自己的 Wiki”;代码回答“如何”的问题,而 Akinator 存储“是什么、为什么、谁、何时、之前、现在、之后” [2]。
  • 安装仅需一个命令,大约耗时 30 秒。在重启智能体后,无需手动调用任何内容——上下文通过钩子(hooks)自动提供 [1]。

这是什么

Akinator AI 是由开发者 Ihab Khaled 开发的一款工具,它将仓库转换为一个面向 AI 智能体的自文档化 Wiki。根据作者的描述,这是一个伴随 AI 辅助编码的“活知识层”:系统在代码更改的同时,保存并揭示产品决策、业务规则、历史上下文、错误以及架构的演进 [7]。

尽管其名称让人联想到猜谜游戏 Akinator,但该项目并不用于猜测角色:它确保 AI 在编辑文件之前了解项目的上下文 [1]。外部目录将其描述为“用于管理代码库知识的 Akinator 插件概念”,强调其重点在于知识而非游戏 [8]。

警告:

注意: 本分析基于公开的仓库 README 及相关材料;在本研究范围内,未提取内部文件(docs 文件夹、skills 等) [3]。

Akinator 解决了什么问题

在“氛围编码”(vibe-coding,通过提示词进行开发)中,AI 智能体默认并不了解业务逻辑、过往决策的原因、当前需求或架构限制。结果是,智能体在不同会话之间会丢失上下文,重复错误,并可能与之前做出的决策相矛盾 [2]。

Akinator 通过在仓库内部维护一个 AI 能够自动读取的活 Wiki 来消除这一问题:涵盖产品、业务、需求、漂移、架构、库、决策、历史、规则、技能和记忆的相关知识 [1]。正如作者所言,智能体不仅应该理解代码,还应该理解产品及其历史 [7]。

具体跟踪哪些内容(知识域)

根据 README,Akinator 在编写代码的同时,在 11 个维度上维护知识 [2]。

领域记录内容
Product (产品)产品是什么,做什么,以及应该做什么
Business (业务)业务逻辑、规则和动机
Requirements (需求)当前及演进中的需求
Drift (漂移)产品如何偏离最初的设计意图
Architecture (架构)结构决策、模式、限制
Libraries (库)依赖项、版本及选择原因
Decisions (决策)带有理由的技术和产品决策
History (历史)变更的时间线及其原因
Rules (规则)项目的代码和行为规则
Skills (技能)智能体的可复用能力
Memory (记忆)会话之间的持久化上下文

作者进一步将该机制描述为:重复的过程转化为 Skills,错误被记录,从中汲取的教训被固化为 Rules,而变更则以“之前/之后/原因”的格式进行跟踪 [7]。

技术实现原理

安装

安装仅需一条命令,根据作者的说法,大约需要 30 秒 [1]:

curl -fsSL https://raw.githubusercontent.com/ihabkhaled/akinator-ai/main/install.sh | sh

对于 Windows (PowerShell 5.1+),使用类似的命令 irm ... | iex,随后需要重启代理 —— 仅此而已,无需调用任何内容,照常编写提示词即可 [2]。

平台集成

平台显式形式(很少需要)通过...持续运行
Claude Code/akinator:everythingSessionStart 钩子以及每个提示词的钩子
Codex$akinatorAGENTS.md 中的标记块
Cursor/akinator始终应用的规则

核心机制是自动钩子:SessionStart 钩子在会话开始时加载知识,而每个提示词的钩子在每次用户请求前重新注入相关的上下文 [1]。唯一可选的强制加载完整上下文的命令是 /akinator:everything [7]。

更新与卸载

  1. 更新:只需重复执行相同的安装命令。
  2. 卸载:添加标志 --uninstall(Windows 为 -Uninstall);存储库将进行逐字节还原。
  3. 选项 --claude、--codex、--cursor 用于选择平台,而 --repo PATH 用于指定非标准的存储库路径 [2]。
提示:

提示: 得益于逐字节卸载,该工具是非侵入性的 —— 您可以尝试使用它,而无需担心会对存储库造成不可逆的更改 [2]。

Akinator 如何引导 AI 编写更好的代码

没有 Akinator,代理接收到像“为导出添加 rate limiting”这样的提示词时会盲目地编辑文件,而不知道导出存在的原因以及项目中采用了哪些模式。有了 Akinator,代理会首先阅读产品上下文、业务规则、架构决策、漂移历史和所选库,然后才采取行动 [1]。

这样就实现了“在行动前理解意图”的原则:知识与代码在同一次变更中同步更新,因此上下文不会过时 [2]。根据作者的设计,这保持了 AI 生成的代码与实际产品逻辑之间的一致性,尤其是在代码库增长的过程中 [7]。

产品漂移、预期与业务逻辑变更

产品漂移(Product Drift)是指最初的设计构想与产品随时间演变后的实际状态之间的差距。Akinator 将漂移作为一个完整的知识域来跟踪:记录过去的状态、当前的状态、迁移理由以及未来的方向 [1]。

当需求或业务规则发生变化时,会创建一条“意图审计轨迹”:变更本身进入历史记录,其理由进入决策记录,与之前逻辑的偏差进入漂移记录,而新逻辑进入业务和规则域,所有这些内容都会在代理执行下一步行动前自动读取 [2]。项目的外部描述还提到,针对代码库的每次触达都有结构化的处理循环,直接在存储库中记录业务逻辑、产品构思和操作流程 [8]。

因此,代理能够:

  • 不会撤销刻意修改的决策;
  • 理解当前状态为何与初始计划不同;
  • 保持与产品路线图的一致性;
  • 察觉新变更与既定方向之间的冲突。

AI 上下文支持

普通的 AI 编码上下文是短暂的,会随着会话的结束而消失。Akinator 在三个层面上创建持久化上下文:会话层(SessionStart 钩子和提示词钩子)、代码库层(知识存储在代码库内部的文件中,并随代码一起进行版本管理)以及跨会话层(Memory、History 和 Decisions 域)[1]。

实际效果是:新会话在开始时就拥有对项目的全面了解,而非从零开始。在 README 的示例中,只需告诉代理“修复失败的支付重试”或“为什么这个服务使用 Redis?”,它就能基于代码库的实际知识给出回答 [2]。

将“氛围编码 (Vibe-coding)”提升至公司级别

Akinator 将氛围编码从文件编辑级别提升到了“了解公司情况”的编码级别,赋予代理同时由工程师、产品经理和架构师所掌握的上下文 [1]:

  • 工程知识:架构模式、库的选择原因、编码规范。
  • 产品经理知识:产品的范围和定位、当前需求、业务规则、漂移历史。
  • 架构师知识:结构化决策、限制历史、选择或偏离模式的原因。
  • 团队记忆:谁在何时决定了什么、变更历史、可复用的技能。

因此,代理能够“像从第一天起就在你的团队中工作一样地编写代码” [2]。

实际使用场景

  1. 开发者入职:提示词“解释我们的导出系统是如何工作的”——回答基于项目的实际上下文,而非笼统的猜测。
  2. 添加功能:“为导出添加 rate limiting”——实现过程会考虑现有的逻辑、规则和架构限制。
  3. 修复 Bug:“修复失败的支付重试”——修复操作不会破坏在决策和历史中记录的刻意行为。
  4. 架构问题:“为什么这个服务使用 Redis?”——代理会解释实际的理由。
  5. 会话间的连续性:在一次会话中开始的迁移可以在下一次会话中继续,而不会丢失上下文 [2]。

优势总结

优势机制
消除“冷启动”SessionStart 钩子加载所有上下文
防止冲突变更代理在执行前读取决策和漂移
保留机构知识History 和 Memory 域是持久化的
使代码与业务意图保持一致Business 和 Product 域引导变更
减少关于项目的“幻觉”代理读取代码库的实际知识
跨平台支持Claude Code, Codex, Cursor
非侵入性卸载可逐字节还原代码库
零工作流变更提示词照常使用,钩子完成其余工作
可版本化的知识存在于代码库内部并随代码共同增长 [1]

这与 Ihab Khaled 的其他项目如何结合

Ihab Khaled 还在开发 ClawAI —— 一个本地、开源的 AI 编排平台,它在用户的机器上运行开源模型,并通过提示词路由以及用于聊天、内存、上下文和连接器的安全工作区来协调领先的 LLM 提供商 [5]。该项目正在不断演进:在 0.2.0 版本中,它从单体架构转变为九个独立的 NestJS 微服务,拥有独立的 PostgreSQL 实例、用于异步交换的 RabbitMQ 以及充当 API 网关的 Nginx,而 Memory 和 File 服务则增加了持久化内存、嵌入和文件索引 [6]。

这些项目相辅相成:ClawAI 决定使用哪个模型以及如何进行编排,而 Akinator 则确保模型在开始行动之前充分理解您的项目 [1]。在 ChatGPT 生态系统中,作者还推出了 Akinator 和 AI Psychiatry 插件 [9]。

警告:

警告: 一些关于 Akinator 的外部描述具有概念性或目录性质,可能无法反映代码的准确当前状态;唯一权威的来源是 README 和仓库文件本身 [8]。

尚未公开记录的内容

研究结果显示,公开的 README 中未披露以下细节 [2]:

  • 知识域的内部文件结构(虽然有 docs 和 skills/akinator 文件夹,但其内容尚未被提取)[4];
  • 知识存储的准确格式(JSON、Markdown 或 YAML);
  • 知识的自动或手动更新以及上下文提取方式;
  • 钩子(hooks)对提示词延迟的影响、对单体仓库的支持以及团队协作;
  • 许可、定价以及与 CI/CD 的集成。

要回答这些问题,需要研究 README 之外的仓库文件 [3]。

总体概况

Akinator AI 体现了从“AI 作为代码生成器”范式向“AI 作为具有记忆的团队成员”范式的转变。通过将项目知识嵌入到仓库本身并自动将其提供给智能体,该工具解决了 LLM 编程的一个根本局限 —— 上下文丢失 [1]。

这对于监管严格且业务逻辑复杂的领域尤为重要:在做出更改之前理解系统这样运行的原因,可以降低违规风险、数据完整性问题和回归错误 [7]。

来源

引用来源

  1. https://github.com/ihabkhaled/akinator-ai
  2. https://github.com/ihabkhaled/akinator-ai/blob/main/README.md
  3. https://github.com/ihabkhaled/akinator-ai/tree/main/docs
  4. https://github.com/ihabkhaled/akinator-ai/tree/main/skills/akinator
  5. https://github.com/ihabkhaled/ClawAI
  6. https://github.com/ihabkhaled/ClawAI/blob/6a5bc7fb5c0532a90f393c49acaedb8832283f98/CHANGELOG.md
  7. https://www.linkedin.com/posts/ihabkhaled94_github-ihabkhaledakinator-ai-a-behavioral-activity-7506729924691406848-Xeoq
  8. https://pluginsradar.com/chatgpt/plugins/akinator-788ea07d
  9. https://pluginsradar.com/chatgpt/developers/ihab-khaled
下载此 Thread

将打开浏览器的打印窗口。请选择“另存为 PDF”作为打印机。

评论 (0)

反馈

加载中...

登录后参与
    Akinator AI — ihabkhaled/akinator-ai 仓库详细分析 | ClawAI