跳转到内容

Awaken

runtime 开发库 · server 控制面

面向 Rust 的AI Agent 后端

用 Rust 写一次 Agent 能力,通过在线配置调优运营,并让同一个 runtime 服务本地开发、生产 API、多协议前端和管理控制台。

MSRV: Rust 1.93 unsafe_code = "forbid" 安装:
心智模型

runtime 写代码,server 做运营

runtime 模式把可执行能力留在 Rust:tools、providers、state、plugins 与直接 RunActivation 执行。server 模式在外层加入持久 run、协议与托管配置。

代码层(Rust)

Tools · State · Plugins

Tools 实现 Tool / TypedTool,用 `schemars` 自动生成 JSON Schema。State 是类型化的:`StateKey` 声明合并策略与作用域,每个 phase 末原子提交。Plugins 按名挂载到 9 阶段循环。

配置层(声明式)

Providers · Models · Agents · Skills

通过 /v1/config/*(REST)或控制台(UI)变更,二者都是 server 暴露在同一个 registry snapshot 上的控制面。进行中的 run 保留已解析 spec,新 run 拿到新版。

server 表面

五种协议,不是五套 Agent

server 把每种 wire format 转成同一条 runtime event stream 和 run model。切换客户端无需改动 agent 代码。

SDK

AI SDK v6

POST /v1/ai-sdk/chat

把流式分块发到 Vercel AI SDK 的 useChat() —— 文本、工具调用、完成事件。

React · Next.js
AG

AG-UI

POST /v1/ag-ui/run

CopilotKit 的 <CopilotKit> 直接接入,支持聊天、Generative UI 与 HITL。

CopilotKit
A2A

A2A

POST /v1/a2a/message:send

智能体间通信 —— 让其他智能体把你的当成远程子智能体调用。

外部智能体
MCP

MCP

POST /v1/mcp

面向 MCP 兼容客户端的 JSON-RPC 2.0 server route。

Claude · Cursor · Zed
ACP

ACP

stdio serve_stdio

server crate 提供的 Agent Client Protocol stdio 适配器。

ACP 宿主
管理控制台

把它当产品运营,而不是脚本

一个接入 server API 的 React 19 SPA。Agents、models、providers、skills、MCP、traces、datasets 与 eval runs 都在同一个控制面管理。

localhost:3002/agents
Agents
智能体
12
已注册
工具
47
内置 + 插件 + MCP
智能体Model推理 (24h)
assistant gpt-4o-mini 2.1k
researcher claude-3.7 847
summariser deepseek-v3 112
配置即控制面

声明先行,snapshot 生效

模型、Provider、提示词、权限、MCP —— 编辑 spec 后,server 发布新的 registry snapshot 给后续 run 使用。

文档保持可执行

workspace tests 与 doctests 守住示例

整个 workspace unsafe_code = "forbid"。公开示例由 compile tests、doctests 与 docs build 共同校验。

运行时内部

9 阶段循环,而非 DAG

每次运行都流经 9 个类型化阶段。插件按名称挂载,状态在每轮结束时原子提交。

1 resolve
2 prepare
3 prompt
4 stream
5 gate
6 tool
7 commit
8 events
9 finalize

快照进,批次出。

每个阶段读取不可变状态快照,返回类型化变更批次。commit 阶段原子应用,工具并行执行也不会出现部分写入或交叉污染。纯函数的 gate 阶段在 tool 执行前裁决工具调用 —— 权限、提醒与 HITL 插件都挂载在此。

内建流式恢复。 空闲超时与流中断由四个显式恢复计划处理:续写文本、回放已完成工具、提示工具取消重启、整轮重启。Retry-After 被遵守;检查点跨进程重启持久化。
插件

按需开启的电池组

七个类型化扩展点,每个由 cargo feature flag 控制。trait Plugin + 各 hook 与内置插件完全一致 —— 自己写不需要任何特殊 API。

Permission

permission

工具名 + 参数上的 Allow / Deny / Ask 规则。Ask 通过 mailbox 挂起等待 HITL。

Reminder

reminder

工具调用匹配规则时,注入系统级或会话级消息。

Observability

observability

符合 GenAI 语义约定的 OpenTelemetry traces + metrics。OTLP / 文件 / 内存。

MCP

mcp

连接任意 MCP 服务,其工具注册为原生 Awaken 工具。

Skills

skills

技能包自动发现并注入为目录 —— LLM 按需激活。

Generative UI

generative-ui

通过 A2UI、JSON Render、OpenUI Lang 流式输出声明式 UI。

Deferred Tools

deferred-tools

大体量工具 schema 藏在 ToolSearch 后;空闲工具按 Beta 模型重新延后。