Artel

io.github.NicolasPrimeau由 GitHub 账号 NicolasPrimeau 发布v0.17.1更新于 Nov 2, 2026

Self-hosted shared-memory & coordination mesh for AI agent fleets. You host it; agents connect.

已验证Streamable HTTP可网页运行效率与工作流知识与记忆AI 与机器学习

概览

AI 生成的概览

自托管的共享记忆与协作服务器,让多个 AI 代理把经验写一次,并在需要时自动取回。

可以做什么
  • 写入并检索跨代理共享的笔记,按语义(向量嵌入)而非关键词查找
  • 自动把代理会话捕获为笔记,并排队等待后台整理
  • 把技能编译为分步流程执行,保留只追加的决策记录,并把关于代码的笔记固定到源码
  • 以 CRDT 形式在多台机器间同步笔记,并订阅外部 RSS/Atom 源
  • 在网页仪表盘中浏览、搜索并观察整个代理集群
适用场景
适合多个代理或会话在同一代码库或项目上工作、反复踩到同样的坑时,也适合希望跨会话、跨机器保持连续性且不把笔记交给第三方云的用户。
运行要求
需要一个自行部署的 Artel 实例(一个容器、一个端口)并可从配置的主机访问,没有公共实例。MCP 端点需要 X-Agent-Id 与 X-Api-Key 请求头,需先在该实例上注册代理获得。服务端配置通过环境变量完成,例如 AGENT_KEYS、UI_PASSWORD,以及可选的 ANTHROPIC_API_KEY(用于 archivist)。
安装前请注意
服务器在 X-Api-Key 请求头中保存代理 API 密钥,应视为机密,并尽量把代理限定到具体项目。笔记、会话捕获和决策会写入共享存储,实例上的其他代理可见。若配置了 archivist 密钥,捕获的会话会被发送给该模型提供商进行整理。仪表盘由 UI_PASSWORD 保护,开放注册应通过 REGISTRATION_KEY 加以控制。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Artel,将其添加到工作区。
  2. 连接 Custom headers 凭据。它们会被私密存储,绝不会在公开页面上展示。
  3. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

Artel

[CI] [License: MIT] [Glama] [Smithery] [Docs]

Your fleet's smart notepad. One that learns.

One pad that you and every agent you run write into. Whatever any of you figures out is written down once and handed back the moment it matters: the gotcha about this file right before you edit it, where you stopped on Friday, the thing another agent already learned the hard way. Nothing to file, nothing to tag, nothing to look up. A normal notepad waits to be opened; this one speaks up, in one line, and stays quiet when it has nothing worth saying, which is most of the time.

It also doesn't just accumulate. A background archivist works the pile while you're gone, so the pad gets sharper the more the fleet uses it. What one session learns at 3am, the rest know by morning; nobody solves the same thing twice.

You run it on your own machine. None of it goes to anyone's cloud.

What that looks like

An agent is about to…Artel sayswho wrote it
edit auth.py"the token refresh silently no-ops when the clock skews"a different agent, last month
start work Monday"Friday you stopped mid-migration; here's where"you, before the weekend
debug a flaky test"seen in March: it was the shared fixture, not the test"an agent on another machine
ask a questionthe one note that answers it, or nothing at allwhoever hit it first

Nobody opened a file to find any of that, and nobody had to know who to ask.


Quick start

There is no public instance to point at. This is your notepad, so you run it. One container, one port:

bash
curl -O https://raw.githubusercontent.com/NicolasPrimeau/artel/master/docker-compose.ymlcurl -O https://raw.githubusercontent.com/NicolasPrimeau/artel/master/.env.examplecp .env.example .env# edit .env: set UI_PASSWORD, and a key for the archivist if you want one# (ANTHROPIC_API_KEY, or OPENROUTER_API_KEY with ARCHIVIST_PROVIDER=openrouter)docker compose up -d

API + UI at http://<host>:8000, MCP at http://<host>:8000/mcp. Images at ghcr.io/nicolasprimeau/artel:edge.

Once running, register an agent:

bash
curl -fsSL http://<host>:8000/onboard | sh

mDNS note: the mdns service uses network_mode: host and only works on Linux. Remove it on Mac/Windows Docker Desktop.


Under the hood

A server, a database, and a librarian. Notes go in over HTTP or MCP, embeddings make them findable by meaning rather than keyword, and everything below the queue happens without an agent asking for it.

  you · Claude Code · opencode · Claude API · AutoGen        │   push: notes/skills/gotchas in  ┄  capture: sessions out        ▼   REST / MCP ──► Artel Server ──► SQLite (WAL) + embeddings                     ├── notes: semantic search · confidence decay · knowledge graph                     ├── captures queue ──► archivist compaction ──► notes                     ├── procedures · decisions · session handoffs                     └── archivist: capture · synthesis · merge · decay · promote        │   mesh (CRDT feeds + mDNS) ◄──► your other machines

What's inside

Each of these has a page in the docs; this is the map.

The pluginThe half that speaks up. One line when a note is close to what the agent is doing, silence otherwise. Agents never have to call anything.
CaptureSessions become notes on their own, spooled in ~10 ms so writing never slows an agent down.
ArchivistThe part that learns: merges duplicates, resolves contradictions, decays what stopped being true, promotes what held up.
Compile modeNotes about code pinned to the code, so they re-derive instead of rotting.
ProceduresA written skill compiled into steps. The server checks each against the repository and the agent is handed the next one when the last is really done.
DecisionsAppend-only record of what you chose and why. Never merged, never decayed.
Mesh and feedsSeveral machines converging as CRDTs, plus RSS/Atom subscriptions from the outside world.
DashboardBrowse, search, and watch the fleet from a browser.

Five kinds of note, with different lifespans: memory (fades if it stops being true), doc (settled reference), directive (standing instruction, never fades), skill (how to do a thing), compiled (pinned to source).

Any agent that speaks HTTP or MCP joins: Claude Code, OpenCode, Zed, a raw httpx script. See connecting clients.


REST API

All requests require X-Agent-ID and X-API-Key headers (except /agents/self-register and /onboard).

Full REST reference → covers every endpoint, generated from the OpenAPI schema. MCP tool reference → lists all 47 tools an agent can call.

A running server also serves interactive docs at /docs and the raw schema at openapi.json.


Configuration

Configured entirely through environment variables (or a .env file). The essentials:

VariableDescription
AGENT_KEYSagent-id:api-key pairs, comma-separated. Optional :proj1;proj2 suffix scopes an agent to projects.
UI_PASSWORDPassword for the dashboard.
ANTHROPIC_API_KEYEnables the archivist. Without it, Artel runs in passive mode.
REGISTRATION_KEYRequired by /agents/self-register. Unset disables open registration.
PUBLIC_URLExternally reachable base URL, used in OAuth metadata and onboarding.

Full configuration reference → covers all 56 settings across the server, MCP adapter, and archivist, generated from the settings classes.


Development

bash
uv sync --devuv run pytest tests/ -v

License

MIT. See LICENSE.md.

来源:README.md,提交 4361a67

工具

0
该服务器需要 API 密钥等凭据,因此 SourceWeft 无法在没有凭据的情况下读取其工具,也未收录。

版本历史

1
  1. v0.17.1最新Sep 16, 2026

评分

已满足适用检查项的 60%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式必需10 分
  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分