Token导航 LogoToken导航TokenDH.com
cersei (Pacifio) logo
AI代理未说明官方级别未说明来源级核验

cersei (Pacifio)

MCP Server

Cersei是一个完整的Rust SDK,用于构建生产级代码代理,提供工具执行、LLM流处理、子代理协调、持久内存和技能等功能。

工具数

0

提示词数

0

GitHub Stars

288

资源数

0
RustClaudeAI代理Claude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

pacifio

提供方

pacifio

最后核验

2026/5/17 20:19

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

瑟曦

用于构建编码代理的完整Rust SDK。

Cersei为您提供了生产编码代理的每个构建块——工具执行、LLM流、子代理编排、持久内存、技能、MCP集成——作为可组合库函数。构建一个克劳德代码替代品,在你的应用程序中嵌入一个代理,或者创建一些全新的东西。

use cersei::prelude::*;

#[tokio::main]
async fn main() -> anyhow::Result {
    let output = Agent::builder()
        .provider(Anthropic::from_env()?)
        .tools(cersei::tools::coding())
        .permission_policy(AllowAll)
        .run_with("Fix the failing tests in src/")
        .await?;

    println!("{}", output.text());
    Ok(())
}

______________________________________________________________________

为什么选择瑟曦

克劳德代码OpenCodeCersei SDK抽象CLI
外形尺寸CLI应用程序CLI应用图书馆CLI应用程序
可嵌入否(使用SDK)
提供者仅限人类多提供者多供应商多供应商
语言TypeScriptTypeScript
自定义工具插件插件impl Tool / #[derive(Tool)]通过SDK
启动~269ms~300ms不适用(库)约34毫秒
二进制/RSS174MB/330MB--N/A5.8毫巴/4.9毫巴
内存基于文件SQLite文件+图形文件+图形
技能.claude/commands/.claude/skills/两种格式两种格式

Cersei基于Claude Code(逆向工程Rust端口)的架构构建,旨在让任何人都可以构建一个完整的、可直接替换的Claude Code、OpenCode或任何编码代理——作为库调用。

______________________________________________________________________

摘要——CLI

摘要 是基于Cersei构建的完整CLI编码代理。一个二进制文件,零运行时依赖关系,默认情况下使用图形内存。

# Install
cargo install --path crates/abstract-cli

# Use
abstract                           # Interactive REPL
abstract "fix the failing tests"   # Single-shot
abstract --resume                  # Resume last session
abstract --model opus --max        # Opus with max thinking
abstract --no-permissions --json   # CI mode with NDJSON output

抽象代码与克劳德代码

所有号码来自 run_tool_bench.sh --full.

度量摘要克劳德代码获胜者
启动(温)32毫秒266毫秒摘要(8.2x)
二进制大小6.0 MB174 MB摘要(29x)
内存(RSS)4.9毫巴333 MB摘要(68x)
工具调度0.02至17毫秒5-265毫秒+摘要
记忆回忆98us (图表)7545ms(LLM)摘要(77000x)
内存写入30us (图表)20687ms(代理)摘要(689000x)
MEMORY.md加载9.6us17.1ms摘要(1781x)
顺序吞吐量906ms/请求12079ms/请求摘要(13.3x)
系统提示令牌~2,200~8000+摘要(减少3.6倍)
LLM呼吁召回不需要必填(十四行诗)摘要
Claude Code的记忆回忆每次都会调用Sonnet,根据相关性(测量7.5秒)对前5个文件进行排名。 Abstract的图在98微秒内完成索引查找——同样的功能,无需LLM调用,无需API成本。

完整基准: crates/abstract-cli/benchmarks/REPORT.md

特性

  • 34个内置工具(文件、shell、web、规划、编排、调度)
  • 多提供商:Anthropic+OpenAI(+Ollama、Azure、vLLM)
  • 默认情况下,图形内存(Grafeo)处于打开状态
  • 汽车紧凑型、汽车梦想、努力水平(低/中/高/最大)
  • MCP服务器支持
  • 会话持久性(兼容Claude Code的JSONL)
  • 具有会话缓存的交互式权限
  • 12个斜线命令(/help, /commit, /review, /memory, /model, /diff等等)
  • 带有语法高亮显示的流式markdown渲染
  • TOML配置: ~/.abstract/config.toml + .abstract/config.toml
  • 管道的JSON输出模式(--json)

______________________________________________________________________

安装

[dependencies]
cersei = { git = "https://github.com/pacifio/cersei" }
tokio = { version = "1", features = ["full"] }
anyhow = "1"

对于图形备份内存(可选):

cersei-memory = { git = "https://github.com/pacifio/cersei", features = ["graph"] }

______________________________________________________________________

建筑

cersei                    Facade crate — use cersei::prelude::*;
  cersei-types            Provider-agnostic messages, errors, stream events
  cersei-provider         Provider trait + Anthropic/OpenAI implementations
  cersei-tools            30+ tools, permissions, bash classifier, skills, git utils
  cersei-tools-derive     #[derive(Tool)] proc macro
  cersei-agent            Agent builder, agentic loop, compact, coordinator, effort
  cersei-memory           Memory trait, memdir, CLAUDE.md, sessions, Grafeo graph
  cersei-hooks            Hook/middleware system
  cersei-mcp              MCP client (JSON-RPC 2.0, stdio transport)
abstract-cli              CLI coding agent ("abstract") — REPL, commands, config, permissions

______________________________________________________________________

核心概念

提供者

任何LLM后端。内置:Anthropic(使用OAuth)、OpenAI(与Ollama、Azure、vLLM兼容)。

Agent::builder().provider(Anthropic::from_env()?)           // Anthropic API key
Agent::builder().provider(OpenAi::builder()
    .base_url("http://localhost:11434/v1")                   // Ollama
    .model("llama3.1:70b").api_key("ollama").build()?)
Agent::builder().provider(MyCustomProvider)                  // impl Provider

工具(30+)

编码代理所需的每个工具,按组组织:

cersei::tools::all()           // 30+ tools
cersei::tools::coding()        // filesystem + shell + web
cersei::tools::filesystem()    // Read, Write, Edit, Glob, Grep, NotebookEdit
cersei::tools::shell()         // Bash, PowerShell
cersei::tools::web()           // WebFetch, WebSearch
cersei::tools::planning()      // EnterPlanMode, ExitPlanMode, TodoWrite
cersei::tools::scheduling()    // CronCreate/List/Delete, Sleep, RemoteTrigger
cersei::tools::orchestration() // SendMessage, Tasks (6 tools), Worktree

10行自定义工具:

#[derive(Tool)]
#[tool(name = "search", description = "Search docs", permission = "read_only")]
struct SearchTool;

#[async_trait]
impl ToolExecute for SearchTool {
    type Input = SearchInput; // derives Deserialize + JsonSchema
    async fn run(&self, input: SearchInput, ctx: &ToolContext) -> ToolResult {
        ToolResult::success(format!("Found: {}", input.query))
    }
}

子代理编排

生成并行工作者,协调任务,在代理之间传递消息:

// AgentTool — model spawns sub-agents autonomously
Agent::builder()
    .tool(AgentTool::new(|| Box::new(Anthropic::from_env()?), cersei::tools::coding()))

// Coordinator mode — orchestrate parallel workers
Agent::builder()
    .tools(cersei::tools::all())  // includes Agent, Tasks, SendMessage
    // Workers get filtered tools (no Agent — prevents recursion)

// Task system
// TaskCreate → TaskUpdate → TaskGet → TaskList → TaskStop → TaskOutput

内存(三层)

use cersei::memory::manager::MemoryManager;

let mm = MemoryManager::new(project_root)
    .with_graph(Path::new("./memory.grafeo"))?;  // optional graph layer

// Tier 1: Flat files (~/.claude/projects//memory/)
let metas = mm.scan();                    // scan .md files with frontmatter
let content = mm.build_context();         // build system prompt injection

// Tier 2: CLAUDE.md hierarchy (managed > user > project > local)
// Automatically merged into build_context()

// Tier 3: Graph memory (Grafeo, optional)
let id = mm.store_memory("User prefers Rust", MemoryType::User, 0.9)?;
mm.tag_memory(&id, "preferences");
let results = mm.recall("Rust", 5);       // graph query with fallback to text match

// Session persistence (JSONL, append-only, tombstone soft-delete)
mm.write_user_message("session-1", Message::user("Hello"))?;
let messages = mm.load_session_messages("session-1")?;

技能(克劳德代码+兼容OpenCode)

// Auto-discovers skills from:
//   .claude/commands/*.md      (Claude Code format)
//   .claude/skills/*/SKILL.md  (OpenCode format)
//   ~/.claude/commands/*.md    (user-level)
//   Bundled skills             (simplify, debug, commit, verify, stuck, remember, loop)

let skill_tool = SkillTool::new().with_project_root(".");
// skill="list" → lists all available skills
// skill="debug" args="tests are flaky" → expands $ARGUMENTS template

实时事件

三种观察机制:

// 1. Callback
Agent::builder().on_event(|e| match e {
    AgentEvent::TextDelta(t) => print!("{}", t),
    AgentEvent::ToolStart { name, .. } => eprintln!("[{}]", name),
    _ => {}
})

// 2. Broadcast (multi-consumer)
let agent = Agent::builder().enable_broadcast(256).build()?;
let mut rx = agent.subscribe().unwrap();
tokio::spawn(async move { while let Ok(e) = rx.recv().await { /* ... */ } });

// 3. Stream (bidirectional control)
let mut stream = agent.run_stream("Deploy");
while let Some(e) = stream.next().await {
    if let AgentEvent::PermissionRequired(req) = e {
        stream.respond_permission(req.id, PermissionDecision::Allow);
    }
}

上下文管理

Agent::builder()
    .auto_compact(true)          // summarize old messages at 90% context usage
    .compact_threshold(0.9)      // trigger threshold
    .tool_result_budget(50_000)  // truncate oldest tool results above 50K chars
    .thinking_budget(8192)       // extended thinking tokens
    .effort(EffortLevel::High)   // Low/Medium/High/Max

MCP(模型上下文协议)

let mcp = McpManager::connect(&[
    McpServerConfig::stdio("db", "npx", &["-y", "@my/db-mcp"]),
    McpServerConfig::sse("docs", "https://mcp.example.com"),
]).await?;

Agent::builder().tools(mcp.tool_definitions().await)

OAuth(人类原生)

// Opens browser, PKCE flow, token storage, refresh
cargo run --example oauth_login

______________________________________________________________________

代理生成器-完整的API

Agent::builder()
    // Provider (required)
    .provider(Anthropic::from_env()?)

    // Tools
    .tool(MyTool)
    .tools(cersei::tools::coding())

    // Model & generation
    .model("claude-sonnet-4-6")
    .max_turns(10)
    .max_tokens(16384)
    .temperature(0.7)
    .thinking_budget(8192)

    // Prompt
    .system_prompt("You are a helpful assistant.")
    .append_system_prompt("Extra context.")

    // Environment
    .working_dir("./my-project")
    .permission_policy(AllowAll)          // or AllowReadOnly, DenyAll, RuleBased, Interactive

    // Memory
    .memory(JsonlMemory::new("./sessions"))
    .session_id("my-session")

    // Hooks & events
    .hook(CostGuard { max_usd: 5.0 })
    .on_event(|e| { /* ... */ })
    .enable_broadcast(256)
    .reporter(ConsoleReporter { verbose: true })

    // Context management
    .auto_compact(true)
    .compact_threshold(0.9)
    .tool_result_budget(50_000)

    // Execute
    .build()?                             // -> Agent
    .run_with("Fix the tests")            // -> AgentOutput (shorthand)

______________________________________________________________________

基准测试

在Apple Silicon上测量,发布版本,100次迭代,3次预热运行。

工具输入/输出

工具平均值最小值最大值
编辑0.04毫秒0.02毫秒0.05毫秒
球面0.05ms0.05ms0.07ms
写入0.09毫秒0.07毫秒0.11毫秒
读取0.09毫秒0.08毫秒0.11毫秒
恢复时间5.85ms5.34ms8.51ms
Bash15.64毫秒14.50毫秒16.19毫秒

vs克劳德代码CLI

注: Cersei是一个库——工具调度发生在进程中。Claude Code是一个CLI,其中 每个子代理分支支付全部启动成本。这些是不同的层次;下面的比较 显示了进程内调度和CLI进程开销之间的差距。
度量Cersei(SDK)克劳德代码(CLI)注释
工具调度(读取)0.09ms~5-15ms(估计)进程中vs Node.js fs
CLI启动不适用(库)269毫秒Claude --version 温暖的avg
子代理生成~1ms(进程内)~300ms(分叉)代理工具开销

有关苹果对苹果CLI的比较,请参阅 抽象CLI基准测试.

内存I/O

操作摘要(Cersei)克劳德代码(测量)比率
扫描100个文件1.2毫秒26.6ms(find)22x
加载内存.md9.6μs17.1毫秒1781x
记忆回忆(图表)98μs7545ms(LLM调用)77000x
记忆回忆(文本)1.3毫秒17.5毫秒(grep)13倍
会话写入27μs/入口N/A--
会话负载(100)268μsN/A--
图形存储30μs/节点N/A(无图表)--
主题查询77μsN/A(无图表)--

基准套房

每个工作台都位于自己的独立目录中,有自己的运行器和结果模式。添加新的长椅作为兄弟姐妹。

套件路径测量内容跑步者
总代理框架bench/general-agents/每个代理的内存、实例化时间、最大并发代理数——Cersei与Agno/PydanticAI/LangGraph/CrewAI的比较。./bench/general-agents/run.sh
终端工作台2.0bench/term-bench/Daytona沙盒中的端到端编码任务使用完整的 abstract CLI(Linux x86_64/arm64二进制文件以树形结构提供)。./bench/term-bench/run.sh
LongMemEval(长期记忆)bench/long-mem/在ICLR-25 LongMemEval 500问题基准上的回忆准确性——以相同的提示和LLM作为评判标准,与Mastra/Zep/Supernemory进行正面交锋。Cersei的四种配置:全上下文基线、使用HNSW语义、涂鸦图子字符串、混合w/LLM事实提取+RRF融合。cargo run --release -p longmem-bench -- --dataset s --config all
压缩(真实LLM)crates/cersei-agent/tests/e2e_openai_compression.rs输入代币节省 cersei-compression 关于OpenAI(gpt-4o-mini)双子座(gemini-2.5-flash). #[ignore],使用真正的API密钥运行。cargo test -p cersei-agent --test e2e_openai_compression -- --ignored --nocapture
SDK工具I/Oexamples/benchmark_io.rs读/写/编辑/Grep/Bash/Glob的进程中工具调度延迟。cargo run --example benchmark_io --release
SDK内存I/Ocrates/abstract-cli/examples/memory_bench.rs图内存vs文件系统vs克劳德代码风格路径。cargo run -p abstract-cli --example memory_bench --release
vs克劳德代码CLIrun_tool_bench_claude.sh · run_tool_bench_codex.shCLI与CLI启动、内存和调度开销。./run_tool_bench.sh --iterations 20 --full

运行基准测试

# Rust-side SDK benches (no external services)
cargo run --example benchmark_io --release
cargo run --release -p abstract-cli --example memory_bench

# vs Claude Code / Codex CLIs
./run_tool_bench.sh --iterations 20 --full

# Python-harness benches (uv-managed; each dir self-contained)
./bench/general-agents/run.sh          # Cersei vs Agno / PydanticAI / LangGraph / CrewAI
./bench/term-bench/run.sh              # Terminal Bench 2.0 via Daytona

# LongMemEval memory benchmark (head-to-head vs Mastra / Zep / Supermemory)
./bench/long-mem/setup.sh              # downloads oracle + s datasets
OPENAI_API_KEY=sk-… cargo run --release -p longmem-bench -- \
  --dataset s --config all --concurrency 8

# Real-LLM compression savings (requires API keys)
OPENAI_API_KEY=sk-… cargo test -p cersei-agent \
  --test e2e_openai_compression -- --ignored --nocapture

______________________________________________________________________

压力测试

cargo run --example stress_core_infrastructure --release  # system prompt, compact, context, bash classifier
cargo run --example stress_tools --release                 # all 30+ tools, registry, performance
cargo run --example stress_orchestration --release         # sub-agents, coordinator, tasks, messaging
cargo run --example stress_skills --release                # bundled + disk skills, Claude Code + OpenCode format
cargo run --example stress_memory --release                # memdir, CLAUDE.md, sessions, extraction, auto-dream

______________________________________________________________________

示例

示例说明
simple_agent3行中的最小代理
custom_tools定义和注册自定义工具
streaming_events实时 run_stream() 带彩色输出
multi_listener拥有多个消费者的广播频道
resumable_session坚持并继续 JsonlMemory
custom_providerEcho提供者+OpenAI兼容端点
hooks_middleware成本保护+审计记录器+工具拦截器
benchmark_io完整的I/O基准测试套件
usage_report令牌/成本跟踪和计费估算
coding_agent构建Python todo CLI(端到端)
oauth_loginAnthropic OAuth PKCE登录流程
cargo run --example simple_agent --release

______________________________________________________________________

测试套件

# Run all 160 unit tests
cargo test --workspace

# Run with graph memory (requires grafeo)
cargo test --workspace --features graph

# Run specific crate
cargo test -p cersei-tools
cargo test -p cersei-agent
cargo test -p cersei-memory
cargo test -p cersei-mcp

160个单元测试 | 262次压力检查 | 0次失败 | 零I/O回归

______________________________________________________________________

扩展点

什么如何示例
自定义提供者impl Provider本地法学硕士,Azure,基岩
自定义工具#[derive(Tool)]impl Tool数据库查询、部署、搜索
自定义权限impl PermissionPolicyRBAC,OAuth范围
自定义内存impl MemoryPostgreSQL、Redis、S3
定制挂钩impl Hook成本门控、审计记录
定制记者impl Reporter仪表板、WebSocket中继
MCP服务器McpServerConfig 通过构建器任何兼容MCP的服务器
技能.claude/commands/*.md自定义提示模板
图形存储器features = ["graph"]Grafeo关系跟踪

______________________________________________________________________

文档

cersei.pacifio.dev/docs -提供API参考、架构、食谱、基准测试和llms.txt支持的完整文档。

第节内容
快速开始10行中的第一个代理
API 参考代理、提供者、工具、内存、挂钩、MCP
建筑板条箱图、数据流、设计原则
食谱自定义工具、部署、嵌入
抽象CLI基于Cersei构建的参考CLI
基准测试vs克劳德法典vs法典

______________________________________________________________________

许可证

MIT许可证

版权所有(c)2025 Adib Mohsin

特此免费授予任何获得本软件和相关文档文件(“软件”)副本的人在不受限制的情况下处理软件的权限,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本的权利,以及允许获得软件的人这样做,但须符合以下条件:

上述版权声明和本许可声明应包含在软件的所有副本或实质部分中。

软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、特定用途适用性和非侵权性的保证。在任何情况下,作者或版权持有人均不对因软件或软件的使用或其他交易而产生或与之相关的任何索赔、损害赔偿或其他责任承担责任,无论是在合同、侵权或其他诉讼中。

目录标签

目录标签

RustClaudeAI代理代码代理本地部署LLM集成工具执行持久内存

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

oauth

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明oauth部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP