经 AI Skill Hub 精选评估,Awaken 获评「推荐使用」。这款MCP工具在功能完整性、社区活跃度和易用性方面表现出色,AI 评分 7.5 分,适合有一定技术背景的用户使用。
Awaken 是一款遵循 MCP(Model Context Protocol)标准协议的 AI 工具扩展。通过 MCP 协议,它可以让 Claude、Cursor 等主流 AI 客户端直接访问和操作外部工具、数据源和服务,实现 AI 能力的无缝扩展。无论是文件操作、数据库查询还是 API 调用,都可以通过自然语言在 AI 对话中直接触发,极大提升生产效率。
Awaken 是一款遵循 MCP(Model Context Protocol)标准协议的 AI 工具扩展。通过 MCP 协议,它可以让 Claude、Cursor 等主流 AI 客户端直接访问和操作外部工具、数据源和服务,实现 AI 能力的无缝扩展。无论是文件操作、数据库查询还是 API 调用,都可以通过自然语言在 AI 对话中直接触发,极大提升生产效率。
# 方式一:通过 Claude Code CLI 一键安装
claude skill install https://github.com/awakenworks/awaken
# 方式二:手动配置 claude_desktop_config.json
{
"mcpServers": {
"awaken": {
"command": "npx",
"args": ["-y", "awaken"]
}
}
}
# 配置文件位置
# macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
# Windows: %APPDATA%/Claude/claude_desktop_config.json
# 安装后在 Claude 对话中直接使用 # 示例: 用户: 请帮我用 Awaken 执行以下任务... Claude: [自动调用 Awaken MCP 工具处理请求] # 查看可用工具列表 # 在 Claude 中输入:"列出所有可用的 MCP 工具"
// claude_desktop_config.json 配置示例
{
"mcpServers": {
"awaken": {
"command": "npx",
"args": ["-y", "awaken"],
"env": {
// "API_KEY": "your-api-key-here"
}
}
}
}
// 保存后重启 Claude Desktop 生效
Stop shipping AI agents as fragile scripts. Awaken is an open-source Rust runtime and server control plane for durable, managed agents: write tools/state/plugins once, tune every behavior knob online, serve AI SDK/AG-UI/A2A/MCP/ACP clients from one backend, and keep long-running work approvable, observable, and replayable.
Docs: Awaken docs · 中文文档 · Changelog. MSRV: Rust 1.93. The published crate is awaken; awaken-agent is a compatibility republish from when the project shipped under that name (same import path either way).
<p align="center"> <img src="./docs/assets/demo.svg" alt="Awaken demo — managed agent run with tool calls, approval, and trace" width="800"> </p>
Prerequisites: Rust 1.93+ and an OpenAI-compatible API key.
[dependencies]
awaken = { git = "https://github.com/AwakenWorks/awaken" }
tokio = { version = "1", features = ["full"] }
async-trait = "0.1"
serde_json = "1"
These snippets follow the current main-branch API. Use the 0.5 to 0.6 migration guide when upgrading from the published 0.5 line.
export OPENAI_API_KEY=<your-key>
src/main.rs (run with cargo run):
,no_run
use awaken::engine::GenaiExecutor;
use awaken::prelude::*;
use async_trait::async_trait;
use serde_json::json;
use std::sync::Arc;
struct EchoTool;
#[async_trait]
impl Tool for EchoTool {
fn descriptor(&self) -> ToolDescriptor {
ToolDescriptor::new("echo", "Echo", "Echo input back to the caller").with_parameters(json!({
"type": "object",
"properties": { "text": { "type": "string" } },
"required": ["text"]
}))
}
async fn execute(&self, args: JsonValue, _ctx: &ToolCallContext) -> Result<ToolOutput, ToolError> {
let text = args["text"].as_str().unwrap_or_default();
Ok(ToolResult::success("echo", json!({ "echoed": text })).into())
}
}
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let runtime = AgentRuntimeBuilder::new()
.with_agent_spec(
AgentSpec::new("assistant")
.with_model_id("gpt-4o-mini")
.with_system_prompt("You are helpful. Use the echo tool when asked.")
.with_max_rounds(5),
)
.with_tool("echo", Arc::new(EchoTool))
.with_provider("openai", Arc::new(GenaiExecutor::new()))
.with_model(ModelSpec::new("gpt-4o-mini", "openai", "gpt-4o-mini"))
.build()?;
let request = RunActivation::new("thread-1", vec![Message::user("Say hello using the echo tool")])
.with_agent_id("assistant");
let result = runtime.run_to_completion(request).await?;
println!("{}", result.response);
Ok(())
}
Use runtime.run(request, sink) instead of run_to_completion when you need to stream events to SSE, WebSocket, protocol adapters, or tests. For a longer end-to-end example (multi-turn + persistent threads), see crates/awaken/examples/multi_turn.rs.
The quickstart path is covered without network access:
cargo test -p awaken --test readme_quickstart # offline (scripted provider)
OPENAI_API_KEY=<key> cargo test -p awaken --test readme_live_provider -- --ignored # live
| Example | What it shows |
|---|---|
[live_test](./crates/awaken/examples/live_test.rs) | Basic LLM integration |
[multi_turn](./crates/awaken/examples/multi_turn.rs) | Multi-turn with persistent threads |
[tool_call_live](./crates/awaken/examples/tool_call_live.rs) | Tool calling with calculator |
[ai-sdk-starter](./examples/ai-sdk-starter/) | React + AI SDK v6 full-stack |
[copilotkit-starter](./examples/copilotkit-starter/) | Next.js + CopilotKit full-stack |
[openui-chat](./examples/openui-chat/) | OpenUI Lang chat frontend |
[admin-console](./apps/admin-console/) | Config API management UI |
```bash export OPENAI_API_KEY=<your-key> cargo run --package awaken --example multi_turn
pnpm install && pnpm --filter awaken-ai-sdk-starter dev
AWAKEN_SEED_PROFILE=demo AWAKEN_STORAGE_DIR=./target/admin-sessions cargo run -p ai-sdk-starter-agent
The facade full feature pulls in the plugins below. Use default-features = false to opt out. awaken-ext-deferred-tools is not re-exported by the facade and is added as a direct dependency.
| Plugin | What it does | Feature flag |
|---|---|---|
| **Permission** | Allow/Deny/Ask rules with glob and regex matching on tool name and arguments. Deny beats Allow beats Ask; Ask suspends the run via the mailbox for HITL. | permission |
| **Reminder** | Injects system or conversation-level context messages when a tool call matches a configured pattern. | reminder |
| **Observability** | OpenTelemetry traces and metrics aligned with the GenAI Semantic Conventions; OTLP, file, and in-memory exports. | observability |
| **MCP** | Connects to external MCP servers and registers their tools as native Awaken tools. | mcp |
| **Skills** | Discovers skill packages and injects a catalog before inference so the LLM can activate skills on demand. | skills |
| **Generative UI** | Streams declarative UI components to frontends via A2UI, JSON Render, and OpenUI Lang integrations. | generative-ui |
| **Deferred Tools** | Hides large tool schemas behind a ToolSearch step and re-defers idle tools using a discounted Beta usage model. | direct crate: awaken-ext-deferred-tools |
Write your own with ToolGateHook (pure gate decisions) or BeforeToolExecute (execution-time hooks) — same trait signatures the built-ins use.
高质量的Rust AI代理运行时
该工具使用 NOASSERTION 协议,商用场景请仔细阅读协议条款,必要时咨询法律意见。
AI Skill Hub 为第三方内容聚合平台,本页面信息基于公开数据整理,不对工具功能和质量作任何法律背书。
建议在沙箱或测试环境中充分验证后,再部署至生产环境,并做好必要的安全评估。
📄 NOASSERTION — 请查阅原始协议条款了解具体使用限制。
AI Skill Hub 点评:Awaken 的核心功能完整,质量良好。对于Claude Desktop / Claude Code 用户来说,这是一个值得纳入个人工具库的选择。建议先在非生产环境试用,再逐步推广。
| 原始名称 | awaken |
| 原始描述 | 开源MCP工具:AI agent runtime for Rust — type-safe state, multi-protocol serving, plugin exte。⭐79 · Rust |
| Topics | mcpa2aa2uiacpag-uiagent-frameworkrust |
| GitHub | https://github.com/awakenworks/awaken |
| License | NOASSERTION |
| 语言 | Rust |
收录时间:2026-06-05 · 更新时间:2026-06-05 · License:NOASSERTION · AI Skill Hub 不对第三方内容的准确性作法律背书。
选择 Agent 类型,复制安装指令后粘贴到对应客户端