15.2 Crate 依赖关系图
以下是 RAF Workspace 中所有 Crate 之间的依赖关系。箭头从依赖者指向被依赖者。
graph TD
subgraph "基础层"
CORE[rust-agent-core]
MACROS[rust-agent-macros]
end
subgraph "客户端层"
CLIENT[rust-agent-client]
LLAMA[rust-agent-llama]
end
subgraph "框架层"
FRAMEWORK[rust-agent-framework]
end
subgraph "编排层"
WORKFLOW[rust-agent-workflow]
end
subgraph "配置层"
DECL[rust-agent-decl]
end
subgraph "扩展层"
WEBSEARCH[rust-agent-websearch]
RAG[rust-agent-rag]
WIKI[rust-agent-wiki]
OPENAPI[rust-agent-openapi]
SANDBOX[rust-agent-sandbox]
RHAI[rust-agent-rhai]
end
subgraph "宿主层"
HOST[rust-agent-host]
end
subgraph "应用层"
CLI[rust-agent-cli]
end
MACROS --> CORE
CLIENT --> CORE
LLAMA --> CORE
FRAMEWORK --> CORE
FRAMEWORK --> MACROS
RAG --> CORE
WIKI --> CORE
WIKI --> RAG
WORKFLOW --> CORE
WEBSEARCH --> CORE
OPENAPI --> CORE
SANDBOX --> CORE
RHAI --> CORE
RHAI --> WORKFLOW
DECL --> CORE
DECL --> CLIENT
DECL --> FRAMEWORK
DECL --> WORKFLOW
DECL --> RHAI
DECL --> WEBSEARCH
DECL --> RAG
DECL --> WIKI
DECL --> OPENAPI
DECL --> SANDBOX
DECL -.->|feature llama| LLAMA
HOST --> CORE
HOST --> FRAMEWORK
HOST --> CLIENT
HOST --> DECL
CLI --> CORE
CLI --> FRAMEWORK
CLI --> CLIENT
CLI --> WORKFLOW
依赖关系表
| Crate | 路径 | 依赖的 RAF Crate | |-------|------|------------------| | `rust-agent-core` | `crates/core/` | 无(基础层,不依赖其他 RAF Crate) | | `rust-agent-macros` | `crates/macros/` | `rust-agent-core` | | `rust-agent-client` | `crates/client/` | `rust-agent-core` | | `rust-agent-llama` | `crates/llama/` | `rust-agent-core` | | `rust-agent-framework` | `crates/framework/` | `rust-agent-core`, `rust-agent-macros` | | `rust-agent-workflow` | `crates/workflow/` | `rust-agent-core` | | `rust-agent-rhai` | `crates/rhai/` | `rust-agent-core`, `rust-agent-workflow` | | `rust-agent-decl` | `crates/decl/` | `rust-agent-core`, `rust-agent-client`, `rust-agent-framework`, `rust-agent-workflow`, `rust-agent-rhai`, `rust-agent-websearch`*, `rust-agent-rag`*, `rust-agent-wiki`*, `rust-agent-openapi`*, `rust-agent-sandbox`*, `rust-agent-llama`* | | `rust-agent-openapi` | `crates/openapi/` | `rust-agent-core` | | `rust-agent-sandbox` | `crates/sandbox/` | `rust-agent-core` |
\* 通过 Cargo optional dependency + feature 引入
| `rust-agent-websearch` | `crates/websearch/` | `rust-agent-core` | | `rust-agent-rag` | `crates/rag/` | `rust-agent-core` | | `rust-agent-wiki` | `crates/wiki/` | `rust-agent-core`, `rust-agent-rag` | | `rust-agent-host` | `crates/host/` | `rust-agent-core`, `rust-agent-framework`, `rust-agent-client`, `rust-agent-decl` | | `rust-agent-cli` | `crates/cli/` | `rust-agent-core`, `rust-agent-framework`, `rust-agent-client`, `rust-agent-workflow` |
Crate 职责说明
| Crate | 职责 | |-------|------| | **rust-agent-core** | 核心抽象:IAgent、ITool、IChatClient、ISession、消息类型、错误类型 | | **rust-agent-macros** | 过程宏:`#[tool]` 属性宏,自动生成 ITool 实现 | | **rust-agent-client** | LLM 客户端:OpenAI/DeepSeek 等 HTTP API 的 IChatClient 实现 | | **rust-agent-llama** | 本地推理:基于 llama-gguf 的 GGUF IChatClient 实现 | | **rust-agent-framework** | Agent 运行时:AgentBuilder、ChatClientAgent、内置工具、上下文提供器、技能系统、记忆系统 | | **rust-agent-workflow** | 工作流引擎:图驱动编排、顺序/并发/交接模式、检查点、WorkflowBuilder | | **rust-agent-rhai** | Rhai 集成:RhaiRuntime、RhaiExecutor(工作流节点)、RhaiTool(Agent 工具) | | **rust-agent-decl** | 声明式配置:JSON/YAML/TOML、`DeclAgentBuilder`、`ToolResolver`、工作流编译 | | **rust-agent-openapi** | OpenAPI HTTP 工具:规范解析、Bearer 认证、可选响应 Schema 校验 | | **rust-agent-sandbox** | 代码沙箱:`ICodeSandbox` 实现、`CodeInterpreterTool`、ExecuteCode 后端 | | **rust-agent-websearch** | 网络搜索:WebSearch/WebFetch 工具、多后端、反检测 | | **rust-agent-rag** | RAG 管道与 `RagContextProvider`:DocumentLoader、Chunker、IEmbeddingModel、IVectorStore、IRetriever | | **rust-agent-wiki** | Wiki 引擎与 `WikiContextProvider`:空间管理、Tantivy 全文搜索、Petgraph 概念图 | | **rust-agent-host** | 宿主服务:ACP 服务器、Stdio/WebSocket 传输、SessionBridge、AgentRegistry | | **rust-agent-cli** | CLI 工具:命令行 Agent 交互 REPL |
外部关键依赖
| Crate | 用途 | |-------|------| | `syn` / `quote` / `proc-macro2` | 过程宏实现(rust-agent-macros) | | `serde` / `serde_json` | 序列化(所有核心 Crate) | | `tokio` | 异步运行时(所有 RAF Crate) | | `async-trait` | 异步 trait(所有核心 Crate) | | `reqwest` | HTTP 客户端(rust-agent-client, rust-agent-websearch) | | `llama-gguf` | 本地 GGUF 推理引擎(rust-agent-llama,crates.io) | | `tantivy` | 全文搜索(rust-agent-wiki) | | `petgraph` | 图算法(rust-agent-wiki) | | `jsonschema` | OpenAPI 响应校验(rust-agent-openapi/validate) | | `wasmtime` | WASM 沙箱(rust-agent-sandbox/wasm) | | `rhai` | 嵌入式脚本(rust-agent-rhai) | | `axum` | WebSocket 服务器(rust-agent-host) | | `agent-client-protocol` | ACP SDK(rust-agent-host) |