AIRA Endpoint
POST /api/endpoints/aira 实现的是 AIRA,即 AI Research Automation。
它做什么
这个 endpoint 会根据当前工作流状态,执行结构化科研流程中的下一步。
当前路由会在 6 个核心 AI 方法之间分发:
- 生成研究目标
- 生成研究策略
- 选择下一个 protocol
- 为下一个 protocol 生成初始字段值
- 生成阶段性研究结论
- 生成最终研究结论
分发方式
后端会读取 workflow_data.path_data.path_status,并根据该状态决定调用哪个函数。
当前状态包括:
waiting_for_research_goalwaiting_for_research_strategywaiting_for_next_protocolwaiting_for_initial_values_for_fields_in_next_protocolwaiting_for_phased_research_conclusionwaiting_for_final_research_conclusion
每一步成功执行后,都会返回一个结构化状态变更对象,用于补充或更新当前 path 数据。
核心数据形态
高层上,请求负载大致是:
json
{
"model": {
"name": "..."
},
"workflow_data": {
"workflow_info": {},
"protocols_info": {},
"path_data": {
"path_status": "waiting_for_research_goal",
"steps": []
}
}
}响应不是自由文本,而是如下几类结构化步骤之一:
AddResearchGoalAddResearchStrategyAddNextProtocolAddInitialValuesForFieldsInNextProtocolAddPhasedResearchConclusionAddFinalResearchConclusion
为什么采用状态驱动
AIRA 不是每次都把整个科研流程重新塞进一个大 prompt 里再从头推导,而是显式推进工作流状态。
这种设计更利于:
- 检查中间步骤
- 重放或分叉 workflow
- 校验状态迁移
- 围绕当前阶段设计前端交互
- 对每一步单独做测试
实现代码位于 packages/masterbrain/src/masterbrain/endpoints/aira/。