AI SDK v6
把流式分块发到 Vercel AI SDK 的 useChat() —— 文本、工具调用、完成事件。
Tools、state、providers、plugins 留在生产级 Rust 代码里;prompts、models、permissions、skills 与 eval loop 通过托管配置和管理控制台在线调优,无需重建 runtime。
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(())
} 管理控制台是 server API 之上的调优界面:agents、prompts、models、permissions、skills、MCP、traces、datasets 与 eval runs 都在同一个控制面管理。
通过管理控制台或 /v1/config/* 编辑。server 校验草稿、发布 registry snapshot,下一次 run 使用新版解析。
用证据调优:回放 fixtures、打分输出、检查 diff,再发布下一版 agent spec。
Config revision 与 audit restore 让 prompt/model/policy 调优可审查,而不是藏在部署脚本里。
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 适配器。
每次运行都流经 9 个类型化阶段。插件按名称挂载,状态在每轮结束时原子提交。
每个阶段读取不可变状态快照,返回类型化变更批次。commit 阶段原子应用,工具并行执行也不会出现部分写入或交叉污染。纯函数的 gate 阶段在 tool 执行前裁决工具调用 —— 权限、提醒与 HITL 插件都挂载在此。
Retry-After 被遵守;检查点跨进程重启持久化。 内置与配套扩展 crate 使用同一套 trait Plugin + hook 模型,也适用于你的自定义能力。只接入当前 agent 需要的表面。
工具名 + 参数上的 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。