API_REFERENCE.md
1 # API 参考文档 2 3 本文档提供 BeamAI Framework 各模块的主要 API 参考。 4 5 ## 目录 6 7 - [beamai_agent - Simple Agent](#beamai_agent---simple-agent) 8 - [Middleware 系统](#middleware-系统) 9 - [beamai_deepagent - Deep Agent](#beamai_deepagent---deep-agent) 10 - [beamai_llm - LLM 客户端](#beamai_llm---llm-客户端) 11 - [beamai_memory - 记忆管理](#beamai_memory---记忆管理) 12 - [beamai_tools - 工具库](#beamai_tools---工具库) 13 - [beamai_core - 核心模块](#beamai_core---核心模块) 14 - [beamai_a2a - A2A 协议](#beamai_a2a---a2a-协议) 15 - [beamai_mcp - MCP 协议](#beamai_mcp---mcp-协议) 16 - [beamai_rag - RAG 功能](#beamai_rag---rag-功能) 17 18 --- 19 20 ## beamai_agent - Simple Agent 21 22 ReAct 模式的简单 Agent 实现。 23 24 ### 生命周期管理 25 26 ```erlang 27 %% 启动 Agent(进程模式) 28 -spec start_link(binary(), map()) -> {ok, pid()} | {error, term()}. 29 beamai_agent:start_link(AgentId, Config). 30 31 %% 停止 Agent 32 -spec stop(pid()) -> ok. 33 beamai_agent:stop(Agent). 34 ``` 35 36 ### 执行 API 37 38 ```erlang 39 %% 运行 Agent(进程模式) 40 -spec run(pid(), binary()) -> {ok, map()} | {error, term()}. 41 beamai_agent:run(Agent, Input). 42 43 %% 单次执行(纯函数模式) 44 -spec run_once(map(), binary()) -> {ok, map()} | {error, term()}. 45 beamai_agent:run_once(Config, Input). 46 47 %% 使用状态执行 48 -spec run_with_state(state(), binary(), map()) -> {ok, map(), state()} | {error, term()}. 49 beamai_agent:run_with_state(State, Input, Opts). 50 ``` 51 52 ### 状态管理 53 54 ```erlang 55 %% 创建状态 56 -spec create_state(map()) -> {ok, state()}. 57 -spec create_state(binary(), map()) -> {ok, state()}. 58 beamai_agent:create_state(Config). 59 beamai_agent:create_state(AgentId, Config). 60 61 %% 导出/导入状态 62 -spec export_state(state()) -> map(). 63 -spec import_state(map(), map()) -> {ok, state()}. 64 beamai_agent:export_state(State). 65 beamai_agent:import_state(ExportedData, Config). 66 ``` 67 68 ### Checkpoint 管理 69 70 ```erlang 71 %% 保存检查点 72 -spec save_checkpoint(pid()) -> {ok, binary()} | {error, term()}. 73 -spec save_checkpoint(pid(), map()) -> {ok, binary()} | {error, term()}. 74 beamai_agent:save_checkpoint(Agent). 75 beamai_agent:save_checkpoint(Agent, Metadata). 76 77 %% 加载检查点 78 -spec load_checkpoint(pid(), binary()) -> {ok, map()} | {error, term()}. 79 -spec load_latest_checkpoint(pid()) -> {ok, map()} | {error, term()}. 80 beamai_agent:load_checkpoint(Agent, CheckpointId). 81 beamai_agent:load_latest_checkpoint(Agent). 82 83 %% 从检查点恢复 84 -spec restore_from_checkpoint(pid(), binary()) -> ok | {error, term()}. 85 beamai_agent:restore_from_checkpoint(Agent, CheckpointId). 86 87 %% 列出检查点 88 -spec list_checkpoints(pid()) -> {ok, [map()]} | {error, term()}. 89 beamai_agent:list_checkpoints(Agent). 90 ``` 91 92 ### 回调管理 93 94 ```erlang 95 %% 获取/设置回调 96 -spec get_callbacks(pid()) -> map(). 97 -spec set_callbacks(pid(), map()) -> ok. 98 beamai_agent:get_callbacks(Agent). 99 beamai_agent:set_callbacks(Agent, Callbacks). 100 101 %% 触发自定义事件 102 -spec emit_custom_event(pid(), atom(), map()) -> ok. 103 beamai_agent:emit_custom_event(Agent, EventName, Data). 104 ``` 105 106 ### 配置选项 107 108 ```erlang 109 Config = #{ 110 system_prompt => binary(), %% 系统提示词 111 tools => [tool_def()], %% 工具列表 112 llm => llm_config(), %% LLM 配置 113 max_iterations => integer(), %% 最大迭代次数,默认 10 114 storage => beamai_memory(), %% 可选:存储实例 115 callbacks => callback_map(), %% 可选:回调函数 116 middleware => [middleware_spec()] %% 可选:中间件 117 }. 118 ``` 119 120 --- 121 122 ## Middleware 系统 123 124 Agent 执行过程中的拦截器机制。详细文档:[MIDDLEWARE.md](MIDDLEWARE.md) 125 126 ### beamai_middleware 行为 127 128 ```erlang 129 %% 所有回调都是可选的 130 -callback init(Opts :: map()) -> middleware_state(). 131 -callback before_agent(State, MwState) -> middleware_result(). 132 -callback after_agent(State, MwState) -> middleware_result(). 133 -callback before_model(State, MwState) -> middleware_result(). 134 -callback after_model(State, MwState) -> middleware_result(). 135 -callback before_tools(State, MwState) -> middleware_result(). 136 -callback after_tools(State, MwState) -> middleware_result(). 137 ``` 138 139 ### 返回值类型 140 141 ```erlang 142 -type middleware_result() :: 143 ok | %% 无修改 144 {update, map()} | %% 更新图状态 145 {goto, model | tools | '__end__'} | %% 跳转 146 {update_goto, map(), goto_target()} | %% 更新并跳转 147 {halt, term()} | %% 中止执行 148 {interrupt, interrupt_action()}. %% 中断等待确认 149 ``` 150 151 ### beamai_middleware_runner 152 153 ```erlang 154 %% 初始化 Middleware 链 155 -spec init([middleware_spec()]) -> middleware_chain(). 156 beamai_middleware_runner:init(Specs). 157 158 %% Middleware 规格格式 159 Specs = [ 160 {middleware_module, Opts}, %% 模块 + 选项 161 {middleware_module, Opts, Priority}, %% 模块 + 选项 + 优先级 162 middleware_module %% 仅模块名 163 ]. 164 165 %% 执行钩子 166 -spec run_hook(hook_name(), graph_state(), middleware_chain()) -> run_result(). 167 beamai_middleware_runner:run_hook(HookName, State, Middlewares). 168 169 %% 获取 Middleware 状态 170 -spec get_middleware_state(module(), middleware_chain()) -> {ok, state()} | {error, not_found}. 171 beamai_middleware_runner:get_middleware_state(Module, Chain). 172 ``` 173 174 ### beamai_middleware_presets 175 176 ```erlang 177 %% 预设配置 178 -spec default() -> [middleware_spec()]. 179 -spec minimal() -> [middleware_spec()]. 180 -spec production() -> [middleware_spec()]. 181 -spec development() -> [middleware_spec()]. 182 -spec human_in_loop() -> [middleware_spec()]. 183 184 %% 带选项的预设 185 -spec default(map()) -> [middleware_spec()]. 186 beamai_middleware_presets:default(#{ 187 call_limit => #{max_model_calls => 30}, 188 summarization => #{window_size => 25} 189 }). 190 191 %% 单独 Middleware 配置 192 -spec call_limit(map()) -> middleware_spec(). 193 -spec summarization(map()) -> middleware_spec(). 194 -spec human_approval(map()) -> middleware_spec(). 195 -spec tool_retry(map()) -> middleware_spec(). 196 ``` 197 198 ### 内置 Middleware 199 200 | Middleware | 模块 | 主要配置 | 201 |------------|------|----------| 202 | 调用限制 | `middleware_call_limit` | `max_model_calls`, `max_tool_calls`, `max_iterations` | 203 | 上下文摘要 | `middleware_summarization` | `window_size`, `max_tokens`, `summarize` | 204 | 人工审批 | `middleware_human_approval` | `mode`, `timeout`, `tools` | 205 | 工具重试 | `middleware_tool_retry` | `max_retries`, `backoff` | 206 | 模型重试 | `middleware_model_retry` | `max_retries`, `retryable_errors` | 207 | 模型降级 | `middleware_model_fallback` | `fallback_models`, `trigger_errors` | 208 | PII 检测 | `middleware_pii_detection` | `action`, `types` | 209 | 工具选择 | `middleware_tool_selector` | `strategy`, `whitelist` | 210 211 ### 自定义 Middleware 示例 212 213 ```erlang 214 -module(my_logging_middleware). 215 -behaviour(beamai_middleware). 216 217 -export([init/1, before_model/2, after_model/2]). 218 219 init(Opts) -> 220 #{log_level => maps:get(log_level, Opts, info)}. 221 222 before_model(State, #{log_level := Level}) -> 223 Messages = graph_state:get(State, messages, []), 224 log(Level, "LLM Request: ~p messages", [length(Messages)]), 225 {update, #{request_start => erlang:system_time(millisecond)}}. 226 227 after_model(State, #{log_level := Level}) -> 228 Start = graph_state:get(State, request_start, 0), 229 Duration = erlang:system_time(millisecond) - Start, 230 log(Level, "LLM Response: ~pms", [Duration]), 231 ok. 232 233 log(info, Fmt, Args) -> logger:info(Fmt, Args); 234 log(debug, Fmt, Args) -> logger:debug(Fmt, Args). 235 ``` 236 237 --- 238 239 ## beamai_deepagent - Deep Agent 240 241 支持规划和并行执行的深度 Agent。 242 243 ### 创建和执行 244 245 ```erlang 246 %% 创建配置 247 -spec new() -> config(). 248 -spec new(map()) -> config(). 249 beamai_deepagent:new(). 250 beamai_deepagent:new(Opts). 251 252 %% 运行 Agent 253 -spec run(config(), binary()) -> {ok, result()} | {error, term()}. 254 beamai_deepagent:run(Config, Task). 255 ``` 256 257 ### 结果查询 258 259 ```erlang 260 %% 获取计划 261 -spec get_plan(result()) -> plan() | undefined. 262 beamai_deepagent:get_plan(Result). 263 264 %% 获取执行轨迹 265 -spec get_trace(result()) -> trace(). 266 beamai_deepagent:get_trace(Result). 267 ``` 268 269 ### 配置选项 270 271 ```erlang 272 Config = #{ 273 llm => llm_config(), %% LLM 配置 274 tools => [tool_def()], %% 自定义工具 275 system_prompt => binary(), %% 系统提示词 276 max_depth => integer(), %% 最大递归深度,默认 3 277 max_iterations => integer(), %% 最大迭代次数,默认 50 278 planning_enabled => boolean(), %% 启用规划,默认 true 279 reflection_enabled => boolean(), %% 启用反思,默认 true 280 filesystem_enabled => boolean(), %% 启用文件系统工具 281 filesystem => filesystem_config() %% 文件系统配置 282 }. 283 ``` 284 285 --- 286 287 ## beamai_llm - LLM 客户端 288 289 多 Provider 支持的 LLM 客户端。 290 291 ### 配置和聊天 292 293 ```erlang 294 %% 创建配置 295 -spec config(provider(), map()) -> llm_config(). 296 llm_client:config(Provider, Opts). 297 298 %% 聊天 299 -spec chat(llm_config(), [message()]) -> {ok, response()} | {error, term()}. 300 llm_client:chat(Config, Messages). 301 302 %% 流式聊天 303 -spec stream_chat(llm_config(), [message()], callback()) -> {ok, response()} | {error, term()}. 304 llm_client:stream_chat(Config, Messages, Callback). 305 306 %% 带工具的聊天 307 -spec with_tools(llm_config(), [message()], [tool()]) -> {ok, response()} | {error, term()}. 308 llm_client:with_tools(Config, Messages, Tools). 309 ``` 310 311 ### Provider 管理 312 313 ```erlang 314 %% 列出 Provider 315 -spec list_providers() -> [atom()]. 316 llm_client:list_providers(). 317 318 %% Provider 信息 319 -spec provider_info(atom()) -> map(). 320 llm_client:provider_info(Provider). 321 ``` 322 323 ### 支持的 Provider 324 325 | Provider | 模块 | 特性 | 326 |----------|------|------| 327 | `openai` | llm_provider_openai | 聊天、流式、工具调用 | 328 | `anthropic` | llm_provider_anthropic | 聊天、流式、工具调用 | 329 | `zhipu` | llm_provider_zhipu | 聊天、流式、工具调用、异步 | 330 | `ollama` | llm_provider_ollama | 聊天、流式 | 331 332 ### LLM 配置 333 334 ```erlang 335 LLMConfig = #{ 336 provider => atom(), %% openai | anthropic | zhipu | ollama 337 model => binary(), %% 模型名称 338 api_key => binary(), %% API Key 339 base_url => binary(), %% 可选:自定义 URL 340 timeout => integer(), %% 可选:超时时间 341 max_tokens => integer(), %% 可选:最大 token 342 temperature => float() %% 可选:温度参数 343 }. 344 ``` 345 346 --- 347 348 ## beamai_memory - 记忆管理 349 350 统一的记忆和检查点管理系统。 351 352 ### 创建和配置 353 354 ```erlang 355 %% 创建 Memory 实例 356 -spec new(map()) -> {ok, memory()} | {error, term()}. 357 beamai_memory:new(Config). 358 359 Config = #{ 360 checkpointer => #{backend => ets | sqlite}, 361 store => #{backend => ets | sqlite}, 362 context_store => {module(), term()} 363 }. 364 ``` 365 366 ### Checkpoint 操作 367 368 ```erlang 369 %% 保存检查点 370 -spec save_checkpoint(memory(), config(), state_data()) -> {ok, memory()}. 371 beamai_memory:save_checkpoint(Memory, Config, StateData). 372 373 %% 加载检查点 374 -spec load_checkpoint(memory(), config()) -> {ok, state_data()} | {error, not_found}. 375 -spec load_latest_checkpoint(memory(), config()) -> {ok, state_data()} | {error, not_found}. 376 beamai_memory:load_checkpoint(Memory, Config). 377 beamai_memory:load_latest_checkpoint(Memory, Config). 378 379 %% 列出检查点 380 -spec list_checkpoints(memory(), config()) -> {ok, [checkpoint_info()]}. 381 beamai_memory:list_checkpoints(Memory, Config). 382 383 %% 检查点计数 384 -spec checkpoint_count(memory(), config()) -> non_neg_integer(). 385 beamai_memory:checkpoint_count(Memory, Config). 386 ``` 387 388 ### Store 操作 389 390 ```erlang 391 %% 存储数据 392 -spec put(memory(), namespace(), key(), value()) -> {ok, memory()}. 393 beamai_memory:put(Memory, Namespace, Key, Value). 394 395 %% 搜索数据 396 -spec search(memory(), namespace(), filter()) -> {ok, [item()]}. 397 beamai_memory:search(Memory, Namespace, Filter). 398 ``` 399 400 --- 401 402 ## beamai_tools - 工具库 403 404 统一的工具定义和管理。 405 406 ### 工具获取 407 408 ```erlang 409 %% 获取工具 410 -spec get_tools(category() | [category()]) -> [tool_def()]. 411 -spec get_tools(category(), map()) -> [tool_def()]. 412 beamai_tools:get_tools(Categories). 413 beamai_tools:get_tools(Categories, Opts). 414 415 %% 获取所有工具 416 -spec get_all_tools() -> [tool_def()]. 417 beamai_tools:get_all_tools(). 418 419 %% 查找工具 420 -spec find_tool(binary()) -> {ok, tool_def()} | {error, not_found}. 421 beamai_tools:find_tool(Name). 422 ``` 423 424 ### 工具执行 425 426 ```erlang 427 %% 执行工具 428 -spec execute(binary(), map()) -> {ok, term()} | {error, term()}. 429 -spec execute(binary(), map(), map()) -> {ok, term()} | {error, term()}. 430 beamai_tools:execute(ToolName, Args). 431 beamai_tools:execute(ToolName, Args, Opts). 432 ``` 433 434 ### 工具转换 435 436 ```erlang 437 %% 转换为 LLM 格式 438 -spec to_llm_spec(tool_def()) -> map(). 439 -spec to_llm_specs([tool_def()]) -> [map()]. 440 beamai_tools:to_llm_spec(Tool). 441 beamai_tools:to_llm_specs(Tools). 442 ``` 443 444 ### 工具注册表 445 446 ```erlang 447 %% 构建工具列表 448 Registry = beamai_tool_registry:new(), 449 R1 = beamai_tool_registry:add_tools(Registry, Tools), 450 R2 = beamai_tool_registry:add_provider(R1, Provider), 451 Tools = beamai_tool_registry:build(R2). 452 453 %% 便捷函数 454 Tools = beamai_tool_registry:from_config(#{ 455 tools => [Tool1, Tool2], 456 providers => [Provider1, Provider2] 457 }). 458 ``` 459 460 --- 461 462 ## beamai_core - 核心模块 463 464 ### Graph 执行引擎 465 466 ```erlang 467 %% 构建 Graph 468 Graph = graph_builder:new() 469 |> graph_builder:add_node(NodeName, {Module, Opts}) 470 |> graph_builder:add_edge(From, To, Condition) 471 |> graph_builder:set_entry(EntryNode) 472 |> graph_builder:build(). 473 474 %% 执行 Graph 475 -spec run(graph(), state()) -> {ok, state()} | {error, term()}. 476 graph_runner:run(Graph, InitialState). 477 478 %% Graph DSL 479 Graph = graph_dsl:compile(#{ 480 nodes => #{...}, 481 edges => [...], 482 entry => atom() 483 }). 484 ``` 485 486 ### Graph State 487 488 ```erlang 489 %% 创建状态 490 -spec new(map()) -> state(). 491 graph_state:new(Data). 492 493 %% 读写状态 494 -spec get(state(), key()) -> value(). 495 -spec set(state(), key(), value()) -> state(). 496 graph_state:get(State, Key). 497 graph_state:set(State, Key, Value). 498 ``` 499 500 ### Pregel 分布式计算 501 502 ```erlang 503 %% 创建 Pregel 图 504 {ok, Graph} = pregel_graph:new(Config). 505 506 %% 添加顶点和边 507 pregel_graph:add_vertex(Graph, VertexId, Data). 508 pregel_graph:add_edge(Graph, From, To, Weight). 509 510 %% 运行计算 511 {ok, Result} = pregel:run(Graph, ComputeFn, MaxIterations). 512 ``` 513 514 --- 515 516 ## beamai_a2a - A2A 协议 517 518 Agent-to-Agent 通信协议实现。 519 520 ### 服务端 521 522 ```erlang 523 %% 启动服务器 524 -spec start_link(map()) -> {ok, pid()}. 525 beamai_a2a_server:start_link(Config). 526 527 Config = #{ 528 handler => module(), %% 请求处理器 529 port => integer(), %% HTTP 端口 530 auth => auth_config() %% 认证配置 531 }. 532 ``` 533 534 ### 客户端 535 536 ```erlang 537 %% 发现 Agent 538 -spec discover(binary()) -> {ok, agent_card()} | {error, term()}. 539 beamai_a2a_client:discover(AgentUrl). 540 541 %% 发送消息 542 -spec send_message(binary(), message()) -> {ok, response()} | {error, term()}. 543 beamai_a2a_client:send_message(AgentUrl, Message). 544 ``` 545 546 ### Agent Card 547 548 ```erlang 549 %% 创建 Card 550 -spec new(map()) -> agent_card(). 551 beamai_a2a_card:new(#{ 552 name => binary(), 553 description => binary(), 554 url => binary(), 555 capabilities => [binary()] 556 }). 557 558 %% 验证 Card 559 -spec validate(agent_card()) -> ok | {error, term()}. 560 beamai_a2a_card:validate(Card). 561 ``` 562 563 --- 564 565 ## beamai_mcp - MCP 协议 566 567 Model Context Protocol 实现。 568 569 ### 客户端 570 571 ```erlang 572 %% 连接 MCP 服务器 573 -spec connect(config()) -> {ok, client()} | {error, term()}. 574 beamai_mcp_client:connect(Config). 575 576 Config = #{ 577 transport => stdio | http | sse, 578 command => binary(), %% stdio: 命令 579 url => binary() %% http/sse: URL 580 }. 581 582 %% 列出工具 583 -spec list_tools(client()) -> {ok, [tool()]} | {error, term()}. 584 beamai_mcp_client:list_tools(Client). 585 586 %% 调用工具 587 -spec call_tool(client(), binary(), map()) -> {ok, result()} | {error, term()}. 588 beamai_mcp_client:call_tool(Client, ToolName, Args). 589 590 %% 列出资源 591 -spec list_resources(client()) -> {ok, [resource()]} | {error, term()}. 592 beamai_mcp_client:list_resources(Client). 593 ``` 594 595 ### 服务端 596 597 ```erlang 598 %% 启动服务器 599 -spec start_link(config()) -> {ok, pid()}. 600 beamai_mcp_server:start_link(Config). 601 602 %% 注册工具 603 -spec register_tool(pid(), tool_def()) -> ok. 604 beamai_mcp_server:register_tool(Server, Tool). 605 606 %% 注册资源 607 -spec register_resource(pid(), resource_def()) -> ok. 608 beamai_mcp_server:register_resource(Server, Resource). 609 ``` 610 611 --- 612 613 ## beamai_rag - RAG 功能 614 615 检索增强生成模块。 616 617 ### 向量嵌入 618 619 ```erlang 620 %% 生成嵌入 621 -spec embed(binary(), config()) -> {ok, [float()]} | {error, term()}. 622 -spec embed_batch([binary()], config()) -> {ok, [[float()]]} | {error, term()}. 623 beamai_embeddings:embed(Text, Config). 624 beamai_embeddings:embed_batch(Texts, Config). 625 ``` 626 627 ### 向量存储 628 629 ```erlang 630 %% 创建存储 631 -spec new(config()) -> {ok, store()}. 632 beamai_vector_store:new(Config). 633 634 %% 添加向量 635 -spec add(store(), binary(), [float()], map()) -> {ok, store()}. 636 beamai_vector_store:add(Store, Id, Vector, Metadata). 637 638 %% 相似度搜索 639 -spec search(store(), [float()], integer()) -> {ok, [result()]}. 640 beamai_vector_store:search(Store, QueryVector, TopK). 641 ``` 642 643 ### RAG 流程 644 645 ```erlang 646 %% 初始化 647 -spec init(config()) -> {ok, rag_state()}. 648 beamai_rag:init(Config). 649 650 %% 添加文档 651 -spec add_documents(rag_state(), [document()]) -> {ok, rag_state()}. 652 beamai_rag:add_documents(State, Documents). 653 654 %% 检索 655 -spec retrieve(rag_state(), binary(), integer()) -> {ok, [chunk()]}. 656 beamai_rag:retrieve(State, Query, TopK). 657 658 %% RAG 查询(检索 + 生成) 659 -spec query(rag_state(), binary()) -> {ok, response()}. 660 beamai_rag:query(State, Question). 661 ``` 662 663 --- 664 665 ## 通用类型 666 667 ### 工具定义 668 669 ```erlang 670 -type tool_def() :: #{ 671 name := binary(), 672 description := binary(), 673 parameters := json_schema(), 674 handler := fun((map()) -> {ok, term()} | {error, term()}) 675 | fun((map(), map()) -> {ok, term()} | {error, term()}) 676 }. 677 ``` 678 679 ### 消息类型 680 681 ```erlang 682 -type message() :: #{ 683 role := user | assistant | system | tool, 684 content := binary() | null, 685 tool_calls => [tool_call()], 686 tool_call_id => binary() 687 }. 688 ``` 689 690 ### LLM 响应 691 692 ```erlang 693 -type llm_response() :: #{ 694 id := binary(), 695 model := binary(), 696 content := binary() | null, 697 tool_calls := [tool_call()], 698 finish_reason := binary(), 699 usage => usage_info() 700 }. 701 ``` 702 703 --- 704 705 ## 错误处理 706 707 所有 API 返回 `{ok, Result}` 或 `{error, Reason}` 格式。常见错误类型: 708 709 | 错误 | 说明 | 710 |------|------| 711 | `{error, missing_api_key}` | API Key 未配置 | 712 | `{error, timeout}` | 请求超时 | 713 | `{error, {http_error, Code, Body}}` | HTTP 错误 | 714 | `{error, {api_error, Details}}` | API 返回错误 | 715 | `{error, not_found}` | 资源未找到 | 716 | `{error, storage_not_enabled}` | 存储未启用 | 717 718 --- 719 720 ## 更多文档 721 722 - [README.md](../README.md) - 项目概述 723 - [ARCHITECTURE.md](ARCHITECTURE.md) - 架构设计 724 - [QUICK_START.md](QUICK_START.md) - 快速开始指南 725 - 各模块 README: 726 - [beamai_core](../apps/beamai_core/README.md) 727 - [beamai_llm](../apps/beamai_llm/README.md) 728 - [beamai_agent](../apps/beamai_agent/README.md) 729 - [beamai_deepagent](../apps/beamai_deepagent/README.md) 730 - [beamai_memory](../apps/beamai_memory/README.md) 731 - [beamai_tools](../apps/beamai_tools/README.md) 732 - [beamai_a2a](../apps/beamai_a2a/README.md) 733 - [beamai_mcp](../apps/beamai_mcp/README.md) 734 - [beamai_rag](../apps/beamai_rag/README.md)