MCPcopy Index your code
hub / github.com/eastreams/loong

github.com/eastreams/loong @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
25,733 symbols 95,402 edges 1,269 files 1,053 documented · 4%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

🐉 Loong - 面向垂域智能体的安全基座

<img src="https://github.com/eastreams/loong/raw/main/assets/logo/loong-logo-light.png" alt="Loong" width="280" />

“发轫于东,以会群友”

Build License: MIT Rust Edition 2024 Version

X Telegram Discord Reddit

Xiaohongshu Feishu QR WeChat QR

安全、可扩展、可持续演进——Loong 是一套基于 Rust 构建的垂域智能体基座,在安全可控的基础上承载长程工作流构建、复合任务执行与闭环改进,让人与 AI 在真实场景中持续协作。

English | 简体中文

文档总览快速上手配置模式常见路线扩展 Loong参与贡献

为什么选 Loong

因为它已经具备你在观察、操作、扩展过程中所需的核心能力:

  • 🚀 开箱即用的丰富配置:内置 42+ provider、25+ 接入频道,几条命令即可跑通。
  • 👀 透明可控的操控能力audittasksskillspluginschannelsruntime-snapshot 以及 gateway control 都暴露为直接可用的命令。
  • 🛡️ 安全可控的基座能力:provider 选择、工具、记忆、接入频道、审批、策略、审计都在明确的运行时边界之内。

也因为无论你是小白还是极客,它都适合你:

  • ⚡ 易于上手:几条命令就能跑通,兼容 OpenClaw、Claude Code、Codex、OpenCode 等同类 AI 工具的已有配置。
  • 🧭 边界透明:助手、网关、接入频道各自独立,不会混在一起。
  • 🔌 内核与扩展分离:provider、工具、接入频道、记忆、策略独立于内核,按需编译组合。
  • 🌱 不是玩具:面向长期使用设计,能跟着你的需求一起成长。

另外,如果你想读更完整的公开定位和产品立场,可以看 Loong 的缘起与定位

赞助商

  <img src="https://github.com/eastreams/loong/raw/main/assets/sponsors_logo/volcengine/volcengine-logo-light-zh.png" alt="火山引擎" height="44"/>

   

  <img src="https://github.com/eastreams/loong/raw/main/assets/sponsors_logo/feishu/feishu-logo-light-zh.png" alt="飞书" height="44"/>

快速开始

Loong 当前只支持 loong 这个命令行入口。

脚本安装(推荐)

Linux 或 macOS:

curl -fsSL https://raw.githubusercontent.com/eastreams/loong/dev/scripts/install.sh | bash -s -- --onboard

Windows PowerShell:

$script = Join-Path $env:TEMP "loong-install.ps1"
Invoke-WebRequest https://raw.githubusercontent.com/eastreams/loong/dev/scripts/install.ps1 -OutFile $script
pwsh $script -Onboard

从源码安装:

确保系统有 C 链接器(Rust 编译需要):

# Debian / Ubuntu
sudo apt update && sudo apt install build-essential
# Fedora
sudo dnf groupinstall "Development Tools"
# macOS
xcode-select --install

安装 Rust 工具链(已安装可跳过):

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source "$HOME/.cargo/env"

构建并安装:

bash scripts/install.sh --source --onboard
# 或者只通过 Cargo 安装(不含 onboard 引导)
cargo install --path crates/daemon

首次运行

loong onboard                # 交互式初始化,配置 provider 和 model
loong ask --message "用一句话总结这个仓库"  # 单轮提问,验证配置是否生效
loong chat                   # 进入多轮对话
loong doctor --fix           # 检查环境并自动修复常见问题
loong update                 # 把当前安装升级到最新稳定版 GitHub Release

loong update 只会安装最新稳定版 GitHub Release,绝不会切到 pre-release。

走完 onboard 就够了 —— 它会把一份能跑的配置写到 ~/.loong/config.toml,不需要你手写 TOML。如果你想再加一个 provider 或接入频道,下面几段是 dev 分支当前的实际形态。

Providers

active_provider = "openai"

[providers.openai]
kind = "openai"
api_key = { env = "OPENAI_API_KEY" }
model = "auto"

[providers.volcengine]
kind = "volcengine"
api_key = { env = "ARK_API_KEY" }
model = "auto"
  • active_provider 决定当前运行的 lane,直接改字段或重跑一次 loong onboard 都能切换。
  • api_key = { env = "OPENAI_API_KEY" } 表示从环境变量读取;写成 api_key = "OPENAI_API_KEY" 会被当成字面量密钥值,这是常见踩坑。
  • model = "auto" 走 provider 端自动发现;如果你所在区域或账号下自动发现不稳,改成 model = "<具体 id>" 固定即可。

接入频道 —— 以飞书为例

推荐先走命令行二维码接入:

loong feishu onboard

这条命令会在终端里展示二维码,走官方 Feishu/Lark 注册接口创建 bot app,并把生成的凭据写回 loong.toml。如果你已经有现成凭据,也可以继续用 loong feishu onboard --manual --app-id ... --app-secret ... 手动回填。

[feishu]
enabled = true
domain = "feishu"                         # 国际版 Lark 改成 "lark"
mode = "websocket"
receive_id_type = "chat_id"
app_id = { env = "FEISHU_APP_ID" }
app_secret = { env = "FEISHU_APP_SECRET" }
allowed_chat_ids = ["oc_ops_room"]

先快速验证一下:

loong doctor
loong feishu-send --receive-id "ou_example_user" --text "hello from loong"
loong feishu-serve

完整的 provider / channel 矩阵、多账号配置与长期托管模型,继续看下面的 文档 表。

文档

快速上手 Get Started,或直接用 onboard / ask / chat / doctor
完整路径 Common Setups
选 Provider Provider GuidesProvider Recipes
接入频道 Channel GuidesChannel Recipes
长期托管 Gateway 与监督
设计立场 Why Loong
架构与扩展 Build On Loong
参考资料 Reference

架构

Loong 是一个 7-crate Rust workspace,依赖图严格无环,围绕一个受治理的 kernel 组织,将 contract、安全、执行、编排几个关注点分开。

contracts  (stable contract vocabulary)
├── kernel   -> contracts
├── protocol (independent transport foundation)
├── app      -> contracts, kernel
├── spec     -> contracts, kernel, protocol
├── bench    -> kernel, spec
└── daemon   -> app, bench, contracts, kernel, spec

ownership 分区、分层执行模型(L0–L9)以及设计原则,见 ARCHITECTURE.md

贡献

欢迎贡献。先从 CONTRIBUTING.md 开始。

如果你想先看哪些方向最值得补强,可以读 Contribution Areas

Star History

  <img src="https://api.star-history.com/svg?repos=eastreams/loong&type=Date" alt="Star History Chart"/>

Extension points exported contracts — how you extend this code

PlanNodeExecutor (Interface)
(no doc) [6 implementers]
crates/app/src/conversation/plan_executor.rs
CoreMemoryAdapter (Interface)
(no doc) [13 implementers]
crates/kernel/src/memory.rs
History (Interface)
Trait for history handling. [2 implementers]
patches/dialoguer-0.12.0/src/history.rs
OnboardUi (Interface)
(no doc) [4 implementers]
crates/daemon/src/onboard_runtime.rs
Transport (Interface)
(no doc) [2 implementers]
crates/protocol/src/lib.rs
AppProtocolOneshotExecutor (Interface)
(no doc) [2 implementers]
crates/loong-app-protocol/src/lib.rs
RuntimeOneshotExecutor (Interface)
(no doc) [2 implementers]
crates/loong-runtime/src/lib.rs
Clock (Interface)
(no doc) [2 implementers]
crates/contracts/src/clock.rs

Core symbols most depended-on inside this repo

get
called by 2827
crates/app/src/acp/store.rs
iter
called by 1688
crates/app/src/tools/catalog.rs
as_ref
called by 1670
crates/kernel/src/kernel.rs
is_empty
called by 1068
crates/app/src/runtime_self.rs
len
called by 1067
crates/loong-core/src/artifact.rs
as_str
called by 818
crates/daemon/src/gateway/state.rs
write
called by 799
crates/app/src/config/runtime.rs
as_str
called by 703
crates/app/src/channel/sdk.rs

Shape

Function 17,607
Method 4,786
Class 2,589
Enum 688
Interface 63

Languages

Rust93%
Python4%
C#3%
TypeScript1%

Modules by API surface

crates/app/src/conversation/tests/mod.rs493 symbols
crates/app/src/tools/tests.rs233 symbols
crates/app/src/config/provider.rs229 symbols
crates/daemon/tests/integration/onboard_cli.rs227 symbols
crates/app/src/chat/chat_surface/app/app_tests.rs204 symbols
crates/app/src/control_plane.rs149 symbols
crates/daemon/src/onboard_cli_tests.rs140 symbols
crates/daemon/src/lib.rs135 symbols
crates/app/src/memory/system/system_tests.rs135 symbols
crates/app/src/provider/tests/mod.rs134 symbols
crates/app/src/config/runtime.rs131 symbols
crates/app/src/chat/live_runtime.rs125 symbols

For agents

$ claude mcp add loong \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact