37 lines
1.4 KiB
Markdown
37 lines
1.4 KiB
Markdown
|
|
# Agent Chat CrewAI + AG-UI Spike Notes
|
||
|
|
|
||
|
|
## Scope
|
||
|
|
|
||
|
|
- 验证 CrewAI 依赖可用性与版本探测方式。
|
||
|
|
- 验证 AG-UI 官方 CrewAI 集成在当前仓库中的落地路径。
|
||
|
|
- 验证 DashScope FunASR 响应中的 usage 字段可得性与兜底策略。
|
||
|
|
|
||
|
|
## Findings
|
||
|
|
|
||
|
|
### CrewAI
|
||
|
|
|
||
|
|
- `uv run python -m pip show crewai` 在当前虚拟环境不可用(无 pip 模块)。
|
||
|
|
- `uv pip show crewai` 返回未安装,说明当前工作树尚未安装 CrewAI 依赖。
|
||
|
|
- 若需启用真实编排,需在 `pyproject.toml` 中声明依赖并执行 `uv sync --extra dev`。
|
||
|
|
|
||
|
|
### AG-UI 官方 CrewAI 集成
|
||
|
|
|
||
|
|
- 目标对齐官方标准事件语义(如 `message.delta`、`tool.started`、`tool.completed`、`run.completed`、`run.failed`)。
|
||
|
|
- 当前仓库采取“适配层隔离”策略:由 `agui_adapter.py` 进行请求与事件映射,避免协议细节扩散到业务层。
|
||
|
|
|
||
|
|
### DashScope FunASR
|
||
|
|
|
||
|
|
- 优先读取上游响应 usage 字段用于成本统计。
|
||
|
|
- 若 usage 缺失,落库时保持 `raw_usage` 与空标准字段,并标记 `metadata.usage_missing=true` 以便审计。
|
||
|
|
|
||
|
|
## Fallback Strategy
|
||
|
|
|
||
|
|
- 当官方集成能力或版本存在不确定性时,启用最小兜底事件映射:
|
||
|
|
- 仅输出标准 AG-UI 事件。
|
||
|
|
- 不扩展私有协议字段。
|
||
|
|
- 在 `event_bridge.py` 中统一做字段校验与错误转换。
|
||
|
|
|
||
|
|
## Decision
|
||
|
|
|
||
|
|
- 继续按计划推进:先补齐编排与成本核心,再完善 AG-UI 适配、多模态与 E2E 闭环。
|