AI 概览

AuraBoot 是一个 metadata-first 的应用平台,AI 内建于驱动系统其余部分的同一条管道之中。AI 功能并不会绕开模型、命令、权限或审计,而是复用它们。
本页梳理构成 AuraBoot AI 层的五个入口,并说明在何时选用哪一个最合适。
能力地图
| 入口 | 受众 | 角色 |
|---|---|---|
| Agent System | 架构师、Plugin 作者 | 加载 Agent 定义、选择 Tool 并执行受守护步骤的运行时 |
| AI Copilot(AuraBot 面板) | 终端用户 | 嵌入 Web 管理后台外壳的对话面板 |
| Aura Bot | IM 上的终端用户 | 通过聊天通道(@AI、DM、群聊回复)暴露的同一 Agent 运行时 |
| MCP | 外部 Tool 消费者 | 将 AuraBoot Tool 暴露给其他 Agent 的 Model Context Protocol 入口 |
| ACP | 后端集成方 | 用于服务对服务 Agent 运行的 Agent Communication Protocol(/execute、SSE 事件流) |
这五个入口共享同一条执行路径。每一次聊天回合、每一次 IM 提及、每一次 ACP /execute 调用、每一次 MCP Tool 调用,都会经过 ConversationTurnService.runTurn(或 Approval Gate 场景下的 resumeTurn)。这是保证持久化、审计、事件发布与流式一致性的 chokepoint。
它们如何协同
+-----------------------------+
| LLM Providers |
| (Anthropic, OpenAI, |
| DeepSeek, Qianwen, Zhipu, |
| Moonshot) |
+--------------+--------------+
|
+--------------v--------------+
| Agent Runtime |
| - Agent definitions |
| - Tool selection |
| - Guardrails |
+--------------+--------------+
|
+--------------v--------------+
| ConversationTurnService | <- single chokepoint
| runTurn / resumeTurn |
+--------------+--------------+
|
+---------+---------+-------+-------+---------+----------+
| | | | | |
AI Copilot Aura Bot ACP /execute MCP tools Approval Audit /
(web) (IM) (server agent) (external) gate trace
相同的响应会路由到对应的 ResponseSink:
SseResponseSink用于 HTTP 流式传输(Copilot 面板、ACP)BroadcastResponseSink用于 IM 通道与群聊扇出
何时使用何者
| 场景 | 选择 |
|---|---|
| 终端用户在 Web 管理后台中提问 | AI Copilot |
终端用户在 IM 中 @AI 或私聊机器人 | Aura Bot |
| 外部 Agent(Claude Desktop、其他平台)希望调用 AuraBoot Tool | MCP |
| 另一个后端服务需要运行 Agent 并流式接收事件 | ACP |
| Plugin 作者需要新增 Tool、Prompt 或 Guardrail | Agent System 与 Plugin 打包 |
共享不变量
不论从哪个入口进入,以下条件始终成立:
- Tool 调用经过标准 Command 管道(鉴权、校验、事务、审计)。
- Permission code 遵循
<module>.<resource>.<action>形式,并在每次调用时校验。 - 高风险操作会路由到 Approval Gate,并在解决之前暂停该回合。
- 每一回合都会写入 trace span,记录 prompt、模型、Tool 调用、延迟与成本。
- 会话状态是持久的,支持恢复被中断的回合。
示例:同一个问题,四种入口
用户提问"Alice 有多少逾期任务?"可以从任一入口进入:
# Copilot 面板
POST /api/ai/aurabot/chat/stream
{ "agentCode": "operations-helper", "conversationId": 1024, "message": "How many overdue tasks does Alice have?" }
# Aura Bot(IM 提及)
@AI How many overdue tasks does Alice have?
# ACP(服务端 Agent,恢复走 /execute)
POST /api/ai/aurabot/execute
{ "agentCode": "operations-helper", "message": "...overdue tasks for Alice..." }
# MCP(外部客户端)
tools/call name=cmd:task:query args={ "assignee": "alice", "status": "overdue" }四种调用都会落到同一个 Agent、同一份 Tool 契约和同一条审计记录上。
验证清单
- 你能识别自己的场景属于哪个入口(Copilot / Bot / ACP / MCP)。
- 你打算暴露的 Tool 已注册为带 Permission code 的 Command。
- 你理解所有回合都流经
ConversationTurnService。 - 你清楚自己的动作是低风险(自动执行)还是高风险(Approval Gate)。