商业产业 Hacker News AI 2026-10-08T18:50 正文 ok 1107 words

Show HN:Aura——具备按用户分隔图谱记忆的自托管多用户 AI Agent

英文标题:🔶 Show HN: Aura – a self-hosted, multi-user AI agent with per-person graph memory

Aura 是一个自托管、多用户 AI Agent,使用 Go 二进制承载运行时、工具、CLI、Telegram 网关和内嵌 Web 控制台,并为每位用户隔离身份、记忆数据库、工作区与沙箱。其记忆系统基于 ArcadeDB 图数据库,支持事实来源、有效期窗口、可追溯证据和文档检索;对话则由 Postgres 作为权威存储。Aura 可通过 OpenRouter、ChatGPT 订阅、本地 llama.cpp 或 Ollama 运行模型,但选择云端模型时,发送给模型的上下文仍会离开本机。项目提供 Docker Compose 部署、MCP 工具扩展、定时任务、多渠道交互及图像/视频工作室功能,对希望私有化部署具备真实工具调用能力的 Agent 的开发者具有参考价值。
打开原文相关 3 · 机会 1
media1.5 KB media11.8 MB media2.2 KB media2.2 KB media1.2 KB media3.5 KB media555.7 KB media2.0 MB media114.4 KB

中文


Aura 是一个自托管、多用户 AI Agent。其 Go 二进制程序承载运行时、工具、CLI、Telegram 网关和内嵌 Web 控制台;每个人均以自己的身份登录,并拥有各自的记忆数据库、工作区和沙箱。Docker Compose 会同时运行 Postgres、ArcadeDB、Garage、嵌入模型、文档摄取、Web 搜索、语音服务,以及打包提供的各类集成。

模型可在控制台设置中选择:OpenRouter(默认路由)、ChatGPT 订阅、内置的本地 llama.cpp 服务器或 Ollama。本地存储并不意味着云端推理离线:云服务提供商会接收发送给其模型的上下文;使用本地服务器时,推理数据不会离开主机。

硬件: 一台配备 16 GB RAM 的迷你 PC 即可满足需求。默认技术栈在一台 16 GB 迷你 PC 上运行语音转文本和文本转语音时,实测占用 7 GB(2026-09-02)。默认不运行本地 LLM:推理将发送至你选择的服务提供商。

Aura 控制台:Agent 将生日保存至记忆图谱并安排提醒,随后新对话从记忆中作答

一次在本地技术栈上的真实运行:Aura 将该事实存入其记忆图谱,按需加载延迟 task 工具并安排提醒;随后,一个新对话会基于记忆给出带有溯源信息的回答。模型回复由 Claude 通过 OpenAI 兼容端点生成;其中已裁去等待时间。

  • 流式 Agent 循环:采用共享的步骤/时间预算和重复调用控制,以限制工作量。
  • 延迟工具与 tool_search:在需要时发现工具并加载其 schema,包括来自已挂载 MCP 服务器的工具。
  • 自适应推理路由器:使用配置的分类器以及当前模型支持的能力,选择推理强度。
  • 完整主机终端和文件系统工具:提供真实的操作能力,并设有破坏性命令审批机制和密钥脱敏。
  • 图谱原生记忆:在 ArcadeDB 中存储事实、来源和有效期窗口;时间路径会返回支持性证据。以 Postgres 为权威的对话拥有派生的召回投影和受管理的上下文压缩机制。
  • 文档检索:支持带有来源哈希和引用的索引段落,也可访问原始文件以进行计算和整文件任务。
  • 自我扩展:可编写和运行技能,使用内置的记忆/PIM/WhatsApp 集成,并连接额外的 MCP 服务器。
  • 调度器与自唤醒:通过一个 task 工具(at | every | cron)执行提醒和 agent_job 运行,具备任务策略、操作员控制,并将结果发送至所属对话。
  • 按身份隔离的沙箱:为每位操作员提供完整能力的隔离环境(选择加入的 sandbox 配置文件;原生 Linux 上使用 gVisor runsc),交付物通过通道以 send_file 返回,绝不以文件路径形式返回。
  • 多用户:使用 Authula 登录(密码,以及为启用 TOTP 的账户提供的 TOTP 步骤);服务器强制为每个身份隔离 ArcadeDB 数据库,提供能力授权及管理员审计视图。
  • 多渠道:CLI REPL、Telegram(语音/照片/文档/HITL),以及基于 AG-UI/SSE 的 Web 控制台,支持对话中途引导、审批、语音输入/输出和实时设置。
  • Studio:在控制台内提供图像与视频生成、照片与视频编辑,以及多轨视频编辑器(docs/STUDIO.md)。
  • 内置集成:日历/电子邮件(PIM MCP、OAuth 提供商)、WhatsApp(非官方客户端)、通过内置 SearXNG 的 Web 搜索、指向对话的快照分享链接,以及 Cloudflare 远程访问。

Aura 与 Open WebUI 和 LibreChat 的定位对比:docs/COMPARISON.md。

传输与用户体验     cmd/aura(CLI)· channels(+telegram)· agui(SSE)· webui(内嵌 SPA)· webauth(Authula)· setup · askuser
Agent 运行时      agent(LlmAgent、Budget、Events、hooks、workflow Seq/Par/Loop)· runner · swarm · steer
工具与 MCP        agent/tools(registry、deferred、tool_search、fs/shell/web/skill)· agent/mcptools · mcp(+manager)· mcpoauth · sandbox
智能能力          llm(+openai_compat)· chatgptplan · semindex(embed-index core)· reasoningtrace · scoring · multimodal · mediagen
能力模块          web · skills · cron · onboarding · documents · share · retention
持久化            db(Postgres+sqlc)· arcadedb(memory + retrieval)· conversations · identity · objectstore · secret · settings
可观测性          obs · agent/panicobs · reasoningtrace · toolinvocations · cachemetrics

| | ---|---
语言 | Go 1.27
持久化 | Postgres(sqlc、pgx)+ ArcadeDB(图谱记忆、全文检索 + LSM 向量索引)+ Garage(S3 对象存储)
模型 | 默认通过 OpenRouter 使用 DeepSeek-V4 Flash;也支持 ChatGPT 订阅、内置 llama.cpp 服务器(Gemma 4 12B QAT,localllm 配置文件)或 Ollama。活动配置文件(提供商、模型、预算)可从控制台设置热重载,无需重启
控制台 | 嵌入二进制程序的 React SPA,通过 Caddy 和 Authula 登录提供服务
测试 | 单元、属性、竞态、泄漏、变异、在线集成和浏览器测试;自有代码覆盖率 ≥85%
CI | build/vet/lint · CodeQL · -race + goleak · db/ArcadeDB/embed 集成 · MUSR 双身份 E2E · Web lint/test/mutation/Playwright · 关键变异测试杀死率 ≥70%
发行 | Docker Compose 一体化部署;edge 跟踪 master,v1.1.0 是最新的带标签版本(检查日期:2026-10-08)

cmd/aura/                CLI 入口和子命令
cmd/arcadedb-mcp/        Aura 自己的 ArcadeDB 记忆 MCP 服务器
cmd/aura-*/              边车二进制程序(Cloudflare 和摄取监督程序、媒体索引、文件卡片)
internal/                运行时,每个关注点一个包(参见 Architecture)
web/                     React 控制台,从 internal/webui/dist 嵌入二进制程序
services/ingest/         文档摄取边车服务
packages/create-aura/    npx 安装器(create-aura-appliance)
docker/ deploy/ caddy/   镜像构建、systemd 单元和更新器、Caddy 前端入口
scripts/                 安装、冒烟测试、恢复演练、覆盖率、文件大小上限
docs/                    安装、架构、能力、发布和备份指南
.planning/               GSD 规划产物

目标设备需要安装 Docker(4 个 CPU 核心、14 GiB 可用 RAM、20 GiB 可用磁盘空间),工作站需要 Node.js 22.13+。安装器会生成 .env,下载 Compose 资源并启动技术栈;可在本地运行,也可通过 SSH 在 Linux 主机上运行:

npx create-aura-appliance                 # 本地
npx create-aura-appliance --mode remote   # 通过 SSH 连接 Linux 目标主机

随后打开 https://<host>,创建第一个用户(操作员),并让首次运行设置选择模型路由、OpenRouter 密钥和可选的 Telegram 机器人:

https://<host>/setup/?token=<AURA_ACCESS_TOKEN>

Windows(Docker Desktop)、curl 安装器、发布渠道、本地 CA、更新和 WhatsApp 配对说明:docs/INSTALL.md。

文档 用途
docs/INSTALL.md 安装与运行——Linux/macOS/Windows、发布渠道、首次访问、更新、边车服务
docs/ARCHITECTURE.md 系统构建方式——层级、单轮生命周期、不变量
docs/TECHNICAL_OVERVIEW.md CTO / 尽职调查概览——问题、差异化优势、成熟度
docs/CAPABILITIES.md 能力矩阵——已发布 / 开发中 / 路线图
docs/STUDIO.md Studio——图像和视频生成、照片及多轨视频编辑
docs/COMPARISON.md Aura 与 Open WebUI、LibreChat 的比较
docs/CLI.md CLI 参考——所有 aura 子命令
docs/BACKUP-RESTORE.md 备份计划、恢复演练、手动恢复、恢复范围
docs/release-readiness.md 发布方式——十一份报告的精确 SHA 门禁、运行检查
CLAUDE.md · prd.md 工程指导 · 产品需求(唯一事实来源)

从 go.mod、Docker 和 POSIX shell(Linux,或 Windows 上的 WSL)开始:

git clone https://github.com/chetto1983/Aura.git
cd Aura
cp .env.example .env
make tools && lefthook install
make quality                    # vet + lint + deadcode + race + vuln + build,不使用容器
make db-migrate memory-up       # 启动技术栈
make quality-full               # quality + 覆盖率门槛

源码构建、本地镜像、make 目标和代码审查规范:CONTRIBUTING.md。请按照 SECURITY.md 私下报告漏洞,切勿在公开 issue 中披露。

MIT Copyright 2026 Davide Marchetto。

English / 原文


Aura is a self-hosted, multi-user AI agent. Its Go binary hosts the runtime, tools, CLI, Telegram gateway, and embedded web cockpit; each person signs in to their own identity, with their own memory database, workspace and sandbox. Docker Compose runs Postgres, ArcadeDB, Garage, embedding, ingestion, web search, voice and the bundled integrations alongside it.

The model is chosen in the cockpit settings: OpenRouter (the default route), a ChatGPT plan, the bundled local llama.cpp server, or Ollama. Local storage does not make cloud inference offline: a cloud provider receives the context sent to its model; with a local server nothing leaves the host for inference.

Hardware: a mini PC with 16 GB of RAM is enough. The default stack measured 7 GB with speech-to-text and text-to-speech running on a 16 GB mini PC (2026-09-02). No local LLM runs by default: inference goes to the provider you choose.

Aura cockpit: the agent stores a birthday in its memory graph and schedules a reminder, then a new chat answers from memory

A real run on a local stack: Aura stores the fact in its memory graph, loads the deferred task tool and schedules the reminder; a new chat then answers from memory, with provenance. Model replies were written by Claude through an OpenAI-compatible endpoint; waiting time is trimmed.

  • Streaming agent loop with shared step/time budgets and repeated-call controls to bound work.
  • Deferred tools andtool_search — discover tools and load their schemas when needed, including tools from mounted MCP servers.
  • Adaptive reasoning router — selects reasoning effort using the configured classifier and the active model's supported capabilities.
  • Full host terminal + filesystem tools — real operating power, with destructive-command approval gates and secret redaction.
  • Graph-native memory — facts, sources and validity windows in ArcadeDB; temporal paths return supporting evidence. Postgres-authoritative conversations have a derived recall projection and managed context compaction.
  • Document retrieval — indexed passages with source hashes and citations, plus access to the original file for calculations and whole-file tasks.
  • Self-extension — author and run skills, use bundled memory/PIM/WhatsApp integrations, and connect additional MCP servers.
  • Scheduler and self wake-ups — one task tool (at | every | cron) for reminders and agent_job runs, with job policy, operator controls and outcomes delivered to the owning conversation.
  • Per-identity sandbox — a full-capability box per operator (opt-in sandbox profile; gVisor runsc on native Linux), with deliverables handed back over the channel (send_file), never as a path.
  • Multi-user — Authula sign-in (password, plus a TOTP step for accounts enrolled in it), one isolated ArcadeDB database per identity enforced by the server, capability grants, and an admin audit view.
  • Multi-channel — CLI REPL, Telegram (voice/photo/docs/HITL), and a web cockpit over AG-UI/SSE with mid-turn steering, approvals, voice input/output, and live settings.
  • Studio — image and video generation, photo and video editing, and a multi-track video editor, all in the cockpit (docs/STUDIO.md).
  • Bundled integrations — calendar/e-mail (PIM MCP, OAuth providers), WhatsApp (unofficial client), web search through a bundled SearXNG, snapshot share links to a conversation, and Cloudflare remote access.

Where Aura sits next to Open WebUI and LibreChat: docs/COMPARISON.md.

Transport & UX     cmd/aura (CLI) · channels (+telegram) · agui (SSE) · webui (embedded SPA) · webauth (Authula) · setup · askuser
Agent runtime      agent (LlmAgent, Budget, Events, hooks, workflow Seq/Par/Loop) · runner · swarm · steer
Tools & MCP        agent/tools (registry, deferred, tool_search, fs/shell/web/skill) · agent/mcptools · mcp (+manager) · mcpoauth · sandbox
Intelligence       llm (+openai_compat) · chatgptplan · semindex (embed-index core) · reasoningtrace · scoring · multimodal · mediagen
Capabilities       web · skills · cron · onboarding · documents · share · retention
Persistence        db (Postgres+sqlc) · arcadedb (memory + retrieval) · conversations · identity · objectstore · secret · settings
Observability      obs · agent/panicobs · reasoningtrace · toolinvocations · cachemetrics

|
---|---
Language | Go 1.27
Persistence | Postgres (sqlc, pgx) + ArcadeDB (graph memory, full-text + LSM vector index) + Garage (S3 object store)
Models | Default DeepSeek-V4 Flash via OpenRouter; also a ChatGPT plan, the bundled llama.cpp server (Gemma 4 12B QAT, localllm profile) or Ollama. The active profile (provider, model, budgets) is hot-reloaded from the cockpit settings, no restart
Cockpit | React SPA embedded in the binary, served behind Caddy and the Authula sign-in
Tests | Unit, property, race, leak, mutation, live integration, and browser tests; owned-surface coverage ≥85%
CI | build/vet/lint · CodeQL · -race + goleak · db/ArcadeDB/embed integration · MUSR two-identity E2E · web lint/test/mutation/Playwright · critical mutation ≥70% killed
Distribution | Docker Compose appliance; edge tracks master, v1.1.0 is the latest tagged release (checked 2026-10-08)

cmd/aura/                CLI entry and subcommands
cmd/arcadedb-mcp/        Aura's own ArcadeDB memory MCP server
cmd/aura-*/              sidecar binaries (Cloudflare and ingest supervisors, media index, file cards)
internal/                the runtime, one package per concern (see Architecture)
web/                     React cockpit, embedded into the binary from internal/webui/dist
services/ingest/         document ingestion sidecar
packages/create-aura/    the npx installer (create-aura-appliance)
docker/ deploy/ caddy/   image builds, systemd units and the updater, Caddy front door
scripts/                 install, smoke, restore drill, coverage, file-size cap
docs/                    install, architecture, capabilities, release and backup guides
.planning/               GSD planning artifacts

You need Docker on the target (4 CPU cores, 14 GiB usable RAM, 20 GiB free disk) and Node.js 22.13+ on the workstation. The installer generates .env, downloads the Compose assets and starts the stack, locally or on a Linux host over SSH:

npx create-aura-appliance                 # local
npx create-aura-appliance --mode remote   # Linux target over SSH

Then open https://<host>, create the first user (the operator), and let the first-run setup pick the model route, the OpenRouter key and the optional Telegram bot:

https://<host>/setup/?token=<AURA_ACCESS_TOKEN>

Windows (Docker Desktop), the curl installer, release channels, the local CA, updates and WhatsApp pairing: docs/INSTALL.md.

Doc For
docs/INSTALL.md Install and operate — Linux/macOS/Windows, release channels, first access, updates, sidecars
docs/ARCHITECTURE.md How the system is built — layers, turn lifecycle, invariants
docs/TECHNICAL_OVERVIEW.md CTO / due-diligence overview — problem, differentiators, maturity
docs/CAPABILITIES.md Capability matrix — shipped / in-progress / roadmap
docs/STUDIO.md Studio — image and video generation, photo and multi-track video editing
docs/COMPARISON.md How Aura compares with Open WebUI and LibreChat
docs/CLI.md CLI reference — every aura subcommand
docs/BACKUP-RESTORE.md Backup schedules, restore drill, manual restore, recovery scope
docs/release-readiness.md How a release is cut — the eleven-report exact-SHA gate, operational checks
CLAUDE.md · prd.md Engineering guidance · product requirements (source of truth)

Go from go.mod, Docker and a POSIX shell (Linux, or WSL on Windows):

git clone https://github.com/chetto1983/Aura.git
cd Aura
cp .env.example .env
make tools && lefthook install
make quality                    # vet + lint + deadcode + race + vuln + build, no containers
make db-migrate memory-up       # bring the stack up
make quality-full               # quality + coverage gate

Source builds, the local image, make targets and the review discipline: CONTRIBUTING.md. Report vulnerabilities privately per SECURITY.md, never in a public issue.

MIT Copyright 2026 Davide Marchetto.