AI SDK v6
把流式分块发到 Vercel AI SDK 的 useChat() —— 文本、工具调用、完成事件。
用 Rust 写一次 Agent 能力,通过在线配置调优运营,并让同一个 runtime 服务本地开发、生产 API、多协议前端和管理控制台。
use awaken::contract::message::Message;
use awaken::engine::GenaiExecutor;
use awaken::registry_spec::{AgentSpec, ModelSpec};
use awaken::{AgentRuntimeBuilder, RunActivation};
use std::sync::Arc;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let spec = AgentSpec::new("assistant")
.with_model_id("gpt-4o-mini")
.with_system_prompt("You are helpful.");
let rt = AgentRuntimeBuilder::new()
.with_agent_spec(spec)
.with_provider("openai", Arc::new(GenaiExecutor::new()))
.with_model(ModelSpec::new("gpt-4o-mini", "openai", "gpt-4o-mini"))
.build()?;
let req =
RunActivation::new("thread-1", vec![Message::user("Hello!")]).with_agent_id("assistant");
let out = rt.run_to_completion(req).await?;
println!("{}", out.response);
Ok(())
} runtime 模式把可执行能力留在 Rust:tools、providers、state、plugins 与直接 RunActivation 执行。server 模式在外层加入持久 run、协议与托管配置。
Tools 实现 Tool / TypedTool,用 `schemars` 自动生成 JSON Schema。State 是类型化的:`StateKey` 声明合并策略与作用域,每个 phase 末原子提交。Plugins 按名挂载到 9 阶段循环。
通过 /v1/config/*(REST)或控制台(UI)变更,二者都是 server 暴露在同一个 registry snapshot 上的控制面。进行中的 run 保留已解析 spec,新 run 拿到新版。
server 把每种 wire format 转成同一条 runtime event stream 和 run model。切换客户端无需改动 agent 代码。
把流式分块发到 Vercel AI SDK 的 useChat() —— 文本、工具调用、完成事件。
CopilotKit 的 <CopilotKit> 直接接入,支持聊天、Generative UI 与 HITL。
智能体间通信 —— 让其他智能体把你的当成远程子智能体调用。
面向 MCP 兼容客户端的 JSON-RPC 2.0 server route。
server crate 提供的 Agent Client Protocol stdio 适配器。
一个接入 server API 的 React 19 SPA。Agents、models、providers、skills、MCP、traces、datasets 与 eval runs 都在同一个控制面管理。
模型、Provider、提示词、权限、MCP —— 编辑 spec 后,server 发布新的 registry snapshot 给后续 run 使用。
整个 workspace unsafe_code = "forbid"。公开示例由 compile tests、doctests 与 docs build 共同校验。
每次运行都流经 9 个类型化阶段。插件按名称挂载,状态在每轮结束时原子提交。
每个阶段读取不可变状态快照,返回类型化变更批次。commit 阶段原子应用,工具并行执行也不会出现部分写入或交叉污染。纯函数的 gate 阶段在 tool 执行前裁决工具调用 —— 权限、提醒与 HITL 插件都挂载在此。
Retry-After 被遵守;检查点跨进程重启持久化。 七个类型化扩展点,每个由 cargo feature flag 控制。trait Plugin + 各 hook 与内置插件完全一致 —— 自己写不需要任何特殊 API。
工具名 + 参数上的 Allow / Deny / Ask 规则。Ask 通过 mailbox 挂起等待 HITL。
工具调用匹配规则时,注入系统级或会话级消息。
符合 GenAI 语义约定的 OpenTelemetry traces + metrics。OTLP / 文件 / 内存。
连接任意 MCP 服务,其工具注册为原生 Awaken 工具。
技能包自动发现并注入为目录 —— LLM 按需激活。
通过 A2UI、JSON Render、OpenUI Lang 流式输出声明式 UI。
大体量工具 schema 藏在 ToolSearch 后;空闲工具按 Beta 模型重新延后。
共用的 hook:ToolGateHook、BeforeToolExecute、PluginConfigKey。