一个原生支持演化的多 Agent 运行时。
Lineage 让 Agent 像生命一样演化。它们不是一次性的配置文件 —— 有父代、世代、不可变的基因组记录和适应度历史。 评估驱动演化:弱者退役,强者繁衍。
告诉 Founder Agent 你想要什么,它会帮你把模糊的想法变成高质量 Agent, 并在创建 Agent 时跑离线评估。 后续每次使用都留下可评估痕迹,被证实更强的改动才会传到下一代; 同时沉淀出可复用的 how-to,未来同领域的 Agent 都能继承。
Agent Kernel 为真实工作设计:长对话不丢目标、跨天任务能续上、 跨 provider prompt cache 省 70-90% token、任意底模都可调用 advisor。
Local-first,默认自托管。Rust 内核 + Ratatui TUI。 brew、npm、curl 三种安装方式。
curl -fsSL https://www.lineagent.ai/install.sh | sh
安装#
选你已经在用的那个包管理器即可。三条渠道发的是同一个 release —— 同一个 semver、同一个二进制、同一套自更新行为。按熟悉程度选就行。
Homebrew(macOS 与 Linux)
brew install nowa/lineage/lineage
npm
npm install -g @lineage/cli
直装(curl)
curl -fsSL https://www.lineagent.ai/install.sh | sh
安装脚本会下载对应平台的 tarball,对照公开的 checksums.txt
校验 SHA-256,然后把 lineage 放到 ~/.local/bin。
它拒绝以 root 身份运行;如果 ~/.local/bin 不在你的
$PATH 里,会给出提示。
验证:
lineage --version
lineage status
Windows 暂未支持。在此之前请用 WSL 2 + 较新的 Ubuntu rootfs。
Lineage 是什么?#
Lineage 是一个让 Agent 自己长大的系统。
你不需要写 YAML,也不需要懂 prompt engineering。 告诉它你想要什么 —— "帮我处理 SRE 事故分级"、"写更好的 release notes" —— Founder Agent 会读你的代码库、设计规格、写 prompt、配工具策略, 并在交付之前先跑一次离线评估。 从模糊的想法到一个可用的 Agent,中间那段苦力活,Lineage 替你做了。
更关键的是它不会停在第一个版本。每次对话都留下可评估的痕迹, Lineage 会观察什么有效、什么没效,自动提出改进, 在历史 trace 上安全复跑,只把"被证实比当前版本更强"的改动发上去。 Agent 本身在变精准 —— prompt 更准、工具策略更紧; 同时它的"工作手册"也在变厚 —— 每次试错沉淀成可复用的 how-to,同领域的未来 Agent 都能继承。 Agent 在学,团队的集体知识也在累积。
底层的 Agent Kernel 是为真实工作设计的:长对话不丢目标、 跨天任务崩溃后能续上、完整的上下文工程默认全开、 跨 provider 自动 prompt cache 省 70-90% token、 以及任意底模都可调用的 advisor 模式 —— 日常跑便宜模型,硬骨头交给 Opus 或 GPT-5。 在 agentic benchmark 上,Lineage 的任务通过率比 Hermes、Claude Code 平均高约 15%,单次消耗 token 少约 30%。
Lineage 做了八件别家产品没做的事:
- 再模糊的想法,也能造出高质量 Agent。 告诉 Lineage 你大概想要什么 —— "我需要一个处理 SRE 事故分级的 Agent"、 "帮我写更好的 release notes" —— Lineage 的 Founder Agent 会读你的代码库、设计这个 Agent 的规格、写好 prompt 和工具策略, 并在它出现在你面前之前先跑一次离线评估。 你不需要写 YAML,只需要描述这个 Agent 该做什么工作。
- 越用越好用。每一次对话都留下可评估的痕迹。 Lineage 会注意到什么有效、什么没效,提出改进方案, 在历史 trace 上安全地复跑一遍评估, 只把"比当前版本更强"的改进发上去。 你不需要每周五去调一次 prompt —— Lineage 在调,你只需要 approve。
- 两种方式让你的 Agent 成长。Agent 本身的表现会越来越精准 —— prompt 更准、工具策略更紧 —— 但每个改动都得通过评估,只有被证实更好的那部分才会传到下一代。 另外,Agent 的"工作手册"也在变厚 —— 每次试错沉淀下来的方法被写成可复用的 how-to, 同领域的任何未来 Agent 都能继承。 既是 Agent 在学,也是团队集体知识在累积,两件事同时发生。
- 按你已有的工作习惯来。两种模式同时在跑: 一个 personal 模式跟着你走 (类似 OpenClaw —— 你的习惯、你的记忆、你的快捷方式, 和你在哪个目录无关);一个 project 模式 尊重每个项目的边界(类似 Claude Code —— 每个代码仓有自己的 memory、信任状态、规则)。 不需要你来回切,两边都开着。
- 业内最强的 agentic 推理能力。Lineage 的 Agent Kernel 在那些 "决定谁真能干活" 的环节上是为最佳表现设计的: 长对话不丢目标、跨天任务能在崩溃后续上、 完整的上下文工程能力(渐进式披露 + just-in-time 检索 + 上下文卸载)默认全开、跨 provider 自动 prompt cache (重复工作上省 70-90% token)、以及之前只有 Claude Code 才有的 advisor 模式。在 agentic benchmark 上和 Hermes、 Claude Code 同场对比,Lineage 任务通过率平均高出约 15%, 单次成功消耗 token 少约 30%。
- 像信任软件那样自然地控权限。三层 override,
和你日常的信任习惯对齐 ——
全局默认("在这台电脑上,永远不允许 Agent 跑 sudo")、
项目级再收紧("在这个客户仓里,也别动
.env")、 个人/本地层("我自己机器上,让 X 通过用于测试")。 三层都是你能看见、能回退的纯 JSON 文件 —— 没有什么藏在设置 UI 里的东西。 - 任何模型都能用 advisor。日常跑一个快又便宜的主力模型, 遇到硬骨头,kernel 会在同一轮里问一个更强的 advisor —— Claude Opus、GPT-5、或你配置的任何模型。 这之前是 Claude Code 自家产品独有的能力 —— Lineage 把它加在任意底模上,含你笔记本上跑的开源模型。
- 即将到来:把演化好的 Agent 分享给你信任的人。 AMP(Agent Marketplace Protocol)是一种点对点的方式, 让你把演化出来的 Strain 和 Genome 直接发给朋友、同事、家人 —— 就像分享一份你训出来的 Agent 歌单一样。 他们的评估反馈也会流回来。 没有中心权威决定哪个 Agent 该活下来 —— 网络靠信任长大,不靠排行榜。计划:MVP-B Alpha。
支撑这一切的四个原语:
Strain
可复用的 Agent 模板 —— 编码、邮件、浏览器自动化。 定义这个族里的 Agent 能用哪些 tool、怎么被评估。 想把 Lineage 适配到你自己的领域,fork 一个 Strain 就行 —— 演化机制照旧。
Agent
具体在跑的实例 —— 你能用的 pal、explore、founder 本体。
每一个都带着不可变的 genome 快照、parent 引用、世代号、
持续记录的 fitness 历史。生命周期 4 状态:
candidate → stable → deprecated → extinct ——
退役和回滚是头等公民,不是临时凑出来的。
Genome
Agent 的"源代码"—— prompt、planner 配置、tool-policy 权重 —— 冻结成内容寻址的 JSON。编辑 genome 会产生一个新的子 Agent, 永远不会改父代。所以"为什么这个 Agent 变了?"这个问题, 永远能用一次 diff 答出来。
Evolution
别家工具没有的闭环。CUSUM 监控线上质量信号 → 变异 → 离线评估 → 人工 gate → Blue-Green 切换 → 7 天观察窗 → 检测到回归自动回滚。 选择是机械化、可回滚的,而不是凭感觉。
底下跑的是四个协作子系统。一个请求从 Control 进来, 在 AgentKernel 里执行,从 Capability 取工具和记忆,由 Evolution 循环观察 —— 无论请求来自你的终端、IM 频道,还是 API,结构都一样。
文件是 Source of Truth;SQLite DB 只是物化索引,
任何时候都可以从 data/ 重建。
快速开始#
Lineage 是 TUI 优先的产品。进到一个项目目录,跑 lineage chat:
$ cd ~/your-project
$ lineage chat
∴ lineage 0.123.x — pal ready
> review the auth middleware for timing-attack risks
● filesystem.read crates/auth/src/middleware.rs
● filesystem.grep "compare|hmac|verify" crates/auth/
Found one — line 47 compares HMAC tags with `==`, which short-
circuits on first byte mismatch. A sufficiently noisy attacker
can recover the tag byte-by-byte from response timing.
Constant-time compare via `subtle::ConstantTimeEq` would fix it.
Want me to write the patch and run the test suite?
> yes, patch it
● filesystem.edit crates/auth/src/middleware.rs (1 hunk)
● cli.execute cargo test -p auth --lib
passed 17/17 in 3.4s
Done. Diff is ready to commit.
首次运行会引导你完成 provider 配置 (Anthropic / OpenAI / OpenAI-compat / Codex 订阅), 询问是否信任当前项目目录,然后进入三栏聊天布局 —— 中间是会话,底部是状态栏,侧边可选上下文面板。
会话是持久化的。lineage chat --resume 接续上次对话。
lineage agents 列出系谱树;
lineage cost 查看 token 花费;
lineage soul 编辑当前 strain 的人格设定。
支持的模型与内置 Strain#
支持的模型 provider
Lineage 通过多 provider 注册表对接 LLM。你配置哪些 provider 都行, 路由按模型名前缀走。一个 Strain 用一种模型 —— 比如 pal 跑 Claude Sonnet, explore 跑更便宜的 Qwen,同一个会话里混搭。
claude-*- Anthropic —— Claude Opus / Sonnet / Haiku 4.x 系列。
gpt-*/o3-*/o4-*- OpenAI —— Chat Completions 与 Responses API。 外加 OpenAI Codex 订阅(原生归属,浏览器 OAuth 配对, 不需要 API key)。
deepseek-*- DeepSeek —— V3 / R1 系列。
qwen*- Qwen(走 DashScope)—— Qwen 3 / Qwen Max / Qwen Coder。
moonshot-*/kimi-*- Moonshot —— Kimi K2 / Kimi Latest。
groq/llama-*/mixtral-*- Groq —— Llama / Mixtral / DeepSeek 在 Groq LPU 上托管(速度非常快)。
openrouter/*- OpenRouter —— 200+ 模型的元路由(Anthropic / OpenAI / Google / Meta / Mistral 等)。
minimax-*/fireworks-*- MiniMax(M2、abab)和 Fireworks AI(DeepSeek / Llama / Qwen on Fireworks 基础设施)。
内置 Strain
Lineage 出厂内置六个 Strain。每个都有一份不可变的 seed genome, 你可以 fork 它来派生自己的变体。其中三个面向用户,三个跑在演化管线内部。
面向用户
pal- 你的主 Agent。所有请求先到 pal —— 能自己处理就自己处理, 需要领域专长时再委派给专家。
explore- 只读代码库导航专家。擅长找模式、生成报告、回答 "X 定义在哪里?"之类的问题 —— 不改任何文件。
founder- 系统工程师。设计新 Strain、引导新 Agent、导入 Skill。 当你想扩展 Lineage 的 Agent 生态本身时使用。
演化管线
analyzer- 诊断引擎。检查评估结果,找出聚合分数遮蔽的模式, 把失败归因到根因,决定演化管线下一步用哪个 mutation operator。
grader- 评估神谕。按 EvalContract 维度给 Agent 输出打分, 必须提供证据。驱动演化决策 —— 准确性高于一切。
comparator- 盲审法官。比较两个 Agent 的输出, 不知道哪个是 champion、哪个是 candidate。 任何一侧的偏见都会污染整条管线。
Tools#
Tools 是 Agent 作用于世界的手段。Lineage 自带一套 Rust 原生工具箱, 覆盖一个 coding/ops Agent 真正需要的动作:读写文件、跑 shell、操控浏览器、 抓网页、委派给其他 Agent、调度后台任务。每一个 tool 都按 Strain 的 genome 权重门控 —— Strain 没声明的 tool 就调不到。不需要外部运行时、不需要 Node sidecar,不强制走 MCP fallback。
filesystem- read · write · edit · grep · glob · multi-edit,作用域限定在
当前
project_dir。改动记 diff。 cli- 执行 shell 命令。Strain 级 allowlist(正则)、按运行选沙箱档位、 写类命令可选 human-in-the-loop 确认。
delegate- 起一个新 Agent 或调用另一个 Agent —— 同步等、异步开、轮询查。 子会话有独立的 ExecutionTrace,可回放。
browser- navigate · click · type · evaluate · screenshot,
走自带的
agent-browserCDP 客户端。 独立 Chromium profile,控制端口只绑 loopback,不共享 cookie。 web- URL 抓取 → Markdown(htmd 转换)、走配置的搜索 provider、RSS 拉取。 默认不回落到 headless 浏览器。
memory- Strain 范围内的 JSONL 记忆:
save·recall·forget。 Project memory 按project_key分桶,跟跨项目的 strain memory 分开。 task- 创建/管理长任务(Task → Step → Job,参考 ADR-053)。 File-first 状态,带 stuck 检测看门狗。
system- 运行时自省 —— Agent 列表、系谱树、演化状态 (CUSUM 信号、在飞 candidate)、成本台账。
schedule/file_watch- cron 风格的定时触发器和文件系统变化触发器。 都进后台队列,不会插队到 interactive chat。
email/calendar/channel- 副作用类工具,DB 层用 idempotency key 去重 —— 同一调用重跑不会重发。
ask_user/checklist/progress- 对话辅助工具 —— 暂停等用户输入、TUI 里渲染 checklist、流进度标记。
这里没有 MCP 围墙:上面每一个 tool 都是一个带类型 schema 的 Rust 函数。 你可以再挂 MCP server 当作额外面,但核心 tool 不依赖它们。
Agent Kernel#
Agent Kernel 是 Lineage 把"一轮对话"转成"实际动作"的那块 —— 编译 prompt、调用 LLM、派发 tool call、把结果流回去。 我们把它做成了纯计算内核(Ports & Adapters 模式)—— 所以同一个 Agent 不需要改一行代码,就能跑在不同 provider、不同 transport、 不同交互界面上。Kernel 内置六项能力,组合起来正是 Lineage 在长会话、 多步骤任务、临时切换 provider 这些常见 "崩点" 上仍然能撑住的原因。
- 上下文工程
- 上下文工程 —— 把"高信号 token"装进模型有限注意力窗口的工程纪律 ——
才是决定一个 Agent 是越跑越锋利、还是越跑越糊的关键。
Lineage 把领域公认的 6 类槽位全部当成头等公民处理:
system 指令、项目 profile、recall 出来的 memory、
会话历史、工具状态、few-shot 范例 ——
每一类都有显式的 token 预算,由一个确定性的
PromptCompiler按同一规则组装 (同样的输入 → 同样的 prompt)。 默认开三项业内公认的高阶技巧:渐进式披露 (progressive disclosure) —— 工具和 memory 先以"名字 + 简介"形式进窗口,Agent 通过tool_search/memory_search按需展开 (工具池一胖,token 一般能省 90%+);just-in-time 检索 —— 每轮临时拉,不预加载快照;上下文卸载(context offloading) —— 体量大的工具输出和压缩前的历史落到磁盘上,窗口里只留引用。 会话直接流式落到磁盘 JSONL —— 中途崩了,从崩的那一秒继续跑,不是从头开始。 - 智能压缩 — 三种操作,三种时间尺度
- 大部分产品的 compaction 是二值的:窗口一满,要么摘要、要么挂掉。 Lineage 在三个不同时间尺度上各跑一种操作 —— Prune(每轮都跑、零 LLM 成本, 把陈旧的成功 tool result 折成占位符)、 Compact(窗口接近预算时跑、LLM 辅助结构化摘要, 保留目标 / 约束 / 决策 / 下一步;完整对话在压缩前归档为 JSONL + Markdown,原始证据不丢)、Distill (在段落边界跑,把通用知识蒸馏成可复用条目)。 切点严格走消息边界 —— 永不在 tool_result 里截断、 永不切散 tool_call 批次。这种切分粒度, 正是让一个 Agent 能跑一个跨天的长任务、 到最后还记得最初被交代的目标的关键。
- 四层 Memory — 全部在你磁盘上
- Anthropic 在 2026 年 4 月把 "memory = 文件系统" 当 Managed
Agents 的卖点发布 —— Lineage 从第一天就是这么做的,而且做得更彻底。
四层而非一层:Conversation(这轮 live working set)→
Project(项目级知识,
data/projects/{key}/memory.jsonl)→ Strain(跨项目领域专长,data/memory/{strain_id}.jsonl)→ Genome(不可变,只能通过演化被加固)。 状态化层级晋升(mem0 同思路):信息只能凭证据向上走, 不会"无意中漏到上层"。低层有写入速率上限 —— 一场吵闹的会话淹不掉信号。每一字节 memory 都是你磁盘上的纯 JSONL —— 能看、能改、能删、能 git。不需要任何 SaaS 替你保管。 - 长任务执行
- 真正有价值的工作不会在一轮对话里结束。Lineage 把多步骤计划建模为
Task → Step → Job:Task 是你定的目标、Step 是
逐个 checkpoint 的工作单元、Job 在 Step 内部跑。
Task 状态先写盘(
data/tasks/{id}/task.json), 不放在 Agent 脑子里 —— 所以一个 Step 可以暂停等人工 review、 休息后接续、或者在 Agent 之间转手。后台 watchdog 会把 "N 分钟没动" 的 Step 拎出来 —— 计划不会在中间静悄悄地死掉、然后三天后才被你想起来 "诶那件事呢?"。Anthropic 在 2026 年 4 月把 Managed Agents 的持久 memory 做成 public beta 来处理同一类问题; Lineage 在你自己的本地盘上提供了同样形状的东西, 不依赖任何托管云。 - Prompt Cache 自动命中
- 默认对接各家的 prompt cache —— Anthropic、OpenAI、DeepSeek, 以及任何暴露 cache 接口的后端。Kernel 在编译每个 prompt 时就把它做成 cache-friendly 的形状:稳定的 system 前缀放上面,易变的 context 放下面。长会话每次重复 turn 都按 cache-read 计价 —— 一般能砍掉 70-90% 的 token 成本 —— 自动生效,应用层不用改一行代码。
- Advisor 模式 — 不再被 Anthropic 锁定
- 在 Lineage 之前,advisor 模式 ——
用一个性价比好、速度快的模型跑日常工作,只把难题交给更强的模型 ——
基本是 Anthropic 自家的能力(写死在 Claude Code 里),别家用不了。
Lineage 把这套能力带到任何 provider 上,包括开源本地模型。
日常 90% 的轮次跑一个性价比平衡的主力模型
(比如
qwen-coder或deepseek-v3); 当 kernel 判断遇到难题,它会在同一轮自动升级到 SOTA advisor (Claude Opus、GPT-5 等)—— 不用你手动换模型、也不用切 Agent。 拿到 Claude-Code 级别的推理质量,但不用付 Claude-Code 的成本。
放在竞品里看:大多数 coding agent 产品只在自家 UI 里给你 context engineering, 只对接一家 provider,对话边界一过线索就断。 Lineage 把每一轮 turn 存成可回放的 artifact, 基于这些回放演化跑出它的 Agent,明天还允许你换底模。 kernel 就是让"跨会话、跨 provider、跨底模的连续性"真正成立的那块。
自更新#
lineage self-update 是频道感知的。Homebrew 装的会被引导去
brew upgrade lineage;npm 装的引导到
npm update -g @lineage/cli。
只有直装(install.sh)会就地原子 POSIX rename 替换,
并带 .prev hardlink 备份。
后台自动更新是主动 opt-in 的。默认情况下后台只做通知 ——
每 30 分钟查一次 GitHub,发现新版本就在启动时打条 banner,仅此而已。
要打开静默安装,编辑 ~/.config/lineage/lineage.toml:
[updates]
auto_check_enabled = true
auto_install_enabled = true # default false
check_interval_minutes = 30
遥测与隐私#
Lineage 默认开启匿名使用遥测。这些数据帮我们优先排功能,也帮我们发现真正的回归。 我们刻意没做首启同意对话框 —— 你在每个 CLI 工具里见过的每个"是否同意收集数据" 弹窗都在训练你下意识按"否",这意味着默认 off 的遥测只能采到一群自选样本, 每个产品决策都被偏置数据带跑偏。默认 on + 一键关停才能让我们看到代表性样本, 同时把控制权留给你。
会收集什么:
- 工具调用名和次数(
filesystem.read、delegate_wait等 —— 参数永远不传)。 - 每轮时长、会话长度、错误次数。
- Strain key(你用了哪些 Agent)。
- Lineage 版本号 + OS / 架构。
永远不会收集什么:
- 任何文件系统路径。
- Prompt、LLM 回复,或任何工具的输入/输出。
- 源 IP 地址(在 Cloudflare 边缘剥离,根本到不了 PostHog)。
- 任何近似你个人数据的东西。
三种关掉的方式:
# 1. 单次进程关闭(环境变量)
LINEAGE_DISABLE_TELEMETRY=1 lineage chat
# 2. 永久关闭(写到 lineage.toml)
lineage telemetry disable usage
# 3. 单次进程关掉本地 JSONL 审计日志
LINEAGE_DISABLE_LOCAL_TELEMETRY=1 lineage chat
遥测上传到的是我们自己自托管的 PostHog 实例(telemetry.lineagent.ai),
不是 PostHog Cloud,也不是任何第三方。
常见问题#
- 为什么用 Rust?
- Control / Execution / Capability 三个平面需要可预测的延迟, 热路径不能有 GC 停顿。Rust 的工具链够成熟,这些好处不需要在生产力上付代价就能拿到。 TUI 尤其受益 —— Ratatui 极快,把流式 token 实时渲染到三个面板, 在带 GC 的运行时里很难做到不撕裂。
- 我的数据存在哪里?
- 在你自己的机器上。会话历史是
data/conversations/下的 JSONL; Genome 和 Strain 是data/下的 YAML/JSON; 记忆是data/memory/下的 JSONL。 SQLite DB 只是索引,任何时候都可以lineage rebuild-index重建。文件是 Source of Truth。 - Agent 是自主运行的吗?安全性怎么保证?
- Capability Plane 跑在分层沙箱里 ——
MVP 用 Wasm/WASI,Phase 1 用 Linux namespace + seccomp + cgroups,
Phase 2 用 MicroVM。
工具策略是按 strain 走 genome 权重的:一个 strain 如果 allowlist 里没列
cli_execute,它字面上就 shell 不出去。 浏览器自动化走独立的 Chromium profile,且只绑 loopback。 - "Genome" 是什么?
- 某个 Agent 的 prompt、planner 配置、tool-policy 权重的不可变 JSON 快照。 Genome 用 SHA-256 内容寻址;编辑一个 genome 会产生新 Agent(子代), 旧的归档保留以供回放。这让系谱可审计 —— "什么变了?"永远可以通过 diff 父代 vs 子代 genome 答出来。
- 只支持 Linux / macOS?
- 目前是。路径和沙箱假设走的都是 POSIX(XDG 目录、flock、原子 rename 语义)。 Windows 如果有用户需求,在 Phase 1 加入。WSL 2 现在就能跑。
- 怎么彻底删除?
-
第一条命令删掉中央 PostHog 上你已上传的事件,并关掉未来上传。lineage telemetry disable usage --purge rm -rf "${XDG_DATA_HOME:-$HOME/.local/share}/lineage" \ "${XDG_STATE_HOME:-$HOME/.local/state}/lineage" \ "${XDG_CONFIG_HOME:-$HOME/.config}/lineage" \ "$HOME/.local/bin/lineage"rm在 XDG 变量没设时会使用默认目录,因此会删掉真实的本地数据、 状态、配置和二进制路径。 - 为什么不直接用 Claude Code / Cursor / Copilot?
- 完全可以,而且也应该用 —— 它们都很好用。 Lineage 适合的是另一个需求:希望 Agent 本身随时间基于评估演化。 Claude Code 是一个工具;Lineage 的 Agent 是一个有 fitness 历史的系谱节点。 如果你的需求就是"改这个文件、修这个 bug、写这个测试", 你不需要 Lineage。 如果你想调试"哪种 Agent 人格在哪类任务上跨周稳定胜出",并且想让这个筛选机械化、 不靠直觉,那才是 Lineage 开始发挥价值的地方。