Aigoni 是博客,也是你和AI共同成长的Wiki知识库。
快速开始 · 核心能力 · API 文档 · LLM Wiki · 许可证 · 联系作者
Aigoni 把「博客」和「LLM Wiki知识库」放在一个“本地MD文件”的系统里:
- 个人笔记:可以将任何知识内容放入笔记中。
- 网页收藏:将任何网页内容通过API存入笔记。
- LLM Wiki:完全遵循 karpathy/llm-wiki 的Agent。
- 博客展示:文章/页面支持公开显示在前台中。
- 品牌官网:基于极简的博客文章系统可以构建任意官网。
- 企业知识库:使用REST API请求LLM WIKI获取答案。
- 自动化SEO站点:配合博客系统及REST API实现每天自动化提交。
它适合个人博客、网页收藏、知识笔记,以及任何需要把 Markdown 内容沉淀为可发布站点和可维护 Wiki 的场景。
如果你想在网页裁切收藏上更方便,可以使用同样开源的 Aigoni Clipper 浏览器插件。
| 能力 | 说明 |
|---|---|
| LLM WIKI | 通过向LLM对话,可以获得你真正需要的答案 |
| Markdown | 无数据库依赖,仅本地文件储存,方便迁移/整理 |
| 前后端分离 | 博客前台和后台管理均支持自定义切换前端UI界面。 |
| REST API | 你的任何二开需求几乎都可以完成。 |
Wiki 首页 |
Wiki 详情 |
博客首页 |
博客文章 |
后台列表 |
后台编辑 |
你可以通过REST API开发自己的博客、后台界面并将他放到frontend目录中并修改.env中的设置进行指定。
Aigoni的默认前端界面就是通过REST API进行开发的,你可以基于:Chinasiro/aigoni-frontend 进行二次开发。
- Go 1.22 或以上。
- 一个可用的
.env文件。
- 将
二进制文件上传至服务器,并手动运行一次 - 首次释放文件完毕后,重命名
.env.example为.env,并进行配置 - 完成运行
或
- 将
二进制文件+.env上传至服务器 - 完成运行
发给Ai:
请将项目 https://github.com/chinasiro/aigoni 下载到当前文件夹中并完成首次运行,创建.env文件,将ADMIN_PASSWORD设置为 8 位以上且不包含常见弱口令的密码。如遇到端口冲突可修改.env中的端口配置。
启动服务:
go run ./cmd/Aigoni默认访问:
- 博客站点:
http://localhost:8080 - 后台入口:
http://localhost:8080/admin
| 配置 | 说明 |
|---|---|
.env |
端口、后台路径、管理员密码、机器 API Key、前端目录、上传白名单、Wiki LLM 配置。含密钥,不应提交。 |
config.yaml |
本地站点配置;缺失时会从二进制内置的 config.yaml.example 释放,已有则不覆盖,后台设置页会写回此文件。 |
config.yaml.example |
默认站点配置模板,可提交到仓库。 |
WEB_FRONTEND_DIR / ADMIN_FRONTEND_DIR |
留空时使用二进制内置前端;填写路径时使用磁盘自定义前端。 |
content/ |
Markdown 内容根目录,包含 posts、pages、notes。 |
wiki/ |
LLM 生成和维护的 Wiki 目录。 |
public/uploads/ |
公开上传资源目录。 |
常用环境变量:
| 字段 | 说明 |
|---|---|
ADMIN_PASSWORD |
后台管理员密码,必填,至少 8 位并拒绝常见弱口令。 |
ADMIN_PATH |
后台访问路径,如 admin。 |
COOKIE_SECURE |
HTTPS 部署建议设为 true。 |
AIGONI_API_KEY |
机器 API Key;用于 /api/content 内容写入与 /api/admin/v1/wiki/ask:api 只读 Wiki Ask,留空时相关机器接口拒绝请求。 |
WEB_FRONTEND_DIR |
公开前台静态目录。 |
ADMIN_FRONTEND_DIR |
后台 SPA 静态目录。 |
WIKI_APIKEY |
Wiki Chat / Wiki Ask 使用的模型 API Key;留空时不可用。 |
WIKI_BASEURL |
OpenAI-compatible API Base URL。 |
WIKI_MODEL |
Wiki Agent 使用的模型名。 |
AIGONI_WIKI_ASK_API_ENABLED |
机器只读 Wiki Ask 接口开关,默认关闭;设为 true 才启用 POST /api/admin/v1/wiki/ask:api。 |
AIGONI_WIKI_ASK_API_RPM |
机器只读 Wiki Ask 提交接口每分钟请求上限,默认 60;只限制 Ask 提交频率。 |
AIGONI_WIKI_AGENT_CONCURRENCY |
Wiki Agent 总并发上限,默认 5;Admin Wiki Chat 与机器只读 Wiki Ask 共用,pending/running 都计入。 |
cmd/Aigoni/ 进程入口,加载 config.yaml/.env 并启动 HTTP Server
internal/ Go 业务代码
agent/ Eino Wiki Agent、提示词和文件工具
auth/ 单管理员登录、Session、CSRF 与限速
config/ config.yaml 与 .env 加载/写入
content/ Markdown 内容模型、解析、仓储和资源服务
search/ 前台与后台搜索
server/ 路由、REST/Admin API、静态资源与 Wiki 适配
frontend/ 前台和后台静态资源目录
content/ posts/pages/notes Markdown 数据
public/ uploads 与 robots.txt
wiki/ LLM 生成的 Wiki 页面与 append-only 日志
docs/ REST API 文档与 OpenAPI 契约
| 文档 | 说明 |
|---|---|
docs/restapi_web.md |
公开只读 REST API,基础路径 /rest/v1。 |
docs/restapi_admin.md |
后台 Admin REST API,基础路径 /api/admin/v1。 |
docs/content-api.md |
API Key 自动化写入接口,入口 POST /api/content。 |
docs/openapi.yaml |
OpenAPI 3 机器可读契约。 |
关键入口:
GET /rest/v1/site:公开站点配置。GET /rest/v1/posts:公开文章列表。GET /rest/v1/search?q=关键词:公开文章搜索。POST /api/content:通过 API Key 创建内容。POST /api/admin/v1/wiki/ask:api:通过 API Key 提交只读 Wiki Ask 问题(无 write 工具,不会改动 Wiki)。POST /api/admin/v1/session:后台登录。POST /api/admin/v1/wiki/chat:启动 Wiki Agent 任务。POST /api/admin/v1/wiki/chat:stream:流式运行 Wiki Agent。
Aigoni 的 LLM Wiki 完全基于 karpathy/LLM Wiki,通过 Agent 实现无数据库,纯MD文件储存。content/notes/对LLM来说是只读入口,它只有操作维护 wiki/ 的权限。
笔记 -> Agent -> Wiki
在维护Wiki时,你可以对Agent下发任何自然语言的指令,例如同步所有笔记到 Wiki或检查 Wiki 健康状态。
在需要查询时,只需要直接询问即可。
- 后台写操作需要管理员 Session Cookie 和
X-CSRF-Token。 - 后台登录失败同一 IP 连续 5 次会锁定 15 分钟。
COOKIE_SECURE=true时会话 Cookie 带 Secure 标记,适合 HTTPS 部署。- 远程图片下载会拦截内网、环回、链路本地、云元数据和 CGNAT 地址。
/uploads/、/assets/不列目录,静态资源带X-Content-Type-Options: nosniff。- 公开 API 只返回已发布内容,不暴露私人笔记、草稿和后台字段。
欢迎通过 Issue 或 Pull Request 改进 Aigoni。提交前建议:
- 保持 Go 代码符合 Google Go Style。
- 使用中文交流沟通即可,保持简洁清晰。
- CloudWeGo Eino:Aigoni 的 Wiki Agent 基于 Eino 构建。
- goldmark:Markdown 渲染。
- bluemonday:HTML 内容净化。
- Linux.do:学Ai,上L站。
Aigoni 使用 MIT License 发布。
本项目依赖的第三方组件仍遵循各自许可证。CloudWeGo Eino 是 Apache-2.0 依赖/致谢项,不改变 Aigoni 本身的 MIT 许可证。
请使用中文沟通即可 chinasiro@gmail.com






