Files
AIclinicalresearch/docs/03-业务模块/IIT Manager Agent/02-技术设计/IIT Manager Agent 智能问答与混合检索解决方案 (ReAct 业务闭环版).md
HaHafeng 1b53ab9d52 feat(aia): Complete AIA V2.0 with universal streaming capabilities
Major Changes:
- Add StreamingService with OpenAI Compatible format
- Upgrade Chat component V2 with Ant Design X integration
- Implement AIA module with 12 intelligent agents
- Update API routes to unified /api/v1 prefix
- Update system documentation

Backend (~1300 lines):
- common/streaming: OpenAI Compatible adapter
- modules/aia: 12 agents, conversation service, streaming integration
- Update route versions (RVW, PKB to v1)

Frontend (~3500 lines):
- modules/aia: AgentHub + ChatWorkspace (100% prototype restoration)
- shared/Chat: AIStreamChat, ThinkingBlock, useAIStream Hook
- Update API endpoints to v1

Documentation:
- AIA module status guide
- Universal capabilities catalog
- System overview updates
- All module documentation sync

Tested: Stream response verified, authentication working
Status: AIA V2.0 core completed (85%)
2026-01-14 19:15:01 +08:00

202 lines
10 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# **IIT Manager Agent <20><EFBFBD><E7AE84><EFBFBD>銝擧毽<E693A7><E6AFBD><EFBFBD><EFBCBA>單䲮獢?(ReAct 銝𡁜𦛚<F0A1819C>剔㴓<E58994>?**
## **1\. <20><EFBFBD><E8A9A8><EFBFBD><EFBFBD><E79899><EFBFBD><EFBFBD><E59786>踵艶**
### **1.1 銝𡁜𦛚<F0A1819C><F0A69B9A><EFBFBD>𡡒<EFBFBD>?*
<EFBFBD>祆䲮獢<EFBFBD><EFBFBD>刻圾<EFBFBD>?PI嚗<49>蜓閬<E89C93><E996AC>蝛嗉<E89D9B><E59789><EFBFBD><EFBFBD><EFBFBD>銝𡁜凝靽∩葉銝?AI Agent 餈𥡝<E9A488>擃㗛<E69383>鈭支<E988AD><E694AF><EFBFBD><EFBFBD>憭扳瓲敹<E793B2><EFBFBD><EFBFBD>
1. **<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>䰻霂?*嚗朞砭<E69C9E><EFBFBD>蝛嗆䲮獢<E4B2AE><E78DA2><EFBFBD><EFBFBD><E68690><EFBFBD><EFBFBD><EFBFBD><E8B8BA><EFBFBD><E4B0BB><EFBFBD><EFBFBD>譍髡<E8AD8D><E9ABA1>RF銵冽聢蝑匧𤐄摰𡁏<E691B0><EFBFBD><E78DA2>?
2. **餈<><E9A488><EFBFBD><EFBFBD><EFBFBD>墧滲**嚗朞砭<E69C9E>桅★<E6A185>桀𪂹<E6A180>乩葉霈啣<E99C88><E595A3><EFBFBD><EFBFBD>撅𨰻<E69285><F0A8B0BB>䔮憸䀹<E686B8><E480B9><EFBFBD><E9A2AF><EFBFBD><EFBFBD>脫㺭<E884AB>桀翰<E6A180><EFBFBD>?
3. **<EFBFBD><EFBFBD><EFBFBD><EFBFBD>桃忽<EFBFBD>?*嚗朞砭<E69C9E>?REDCap 銝剔<E98A9D>摰墧𧒄敶訫<E695B6><E8A8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>抒𠶖<E68A92><F0A0B696><EFBFBD><EFBFBD>鸌摰𡁏<E691B0><F0A1818F><EFBFBD><EFBFBD><EFBFBD><EFBFBD>摨𢛵<E691A8>?
### **1.2 <20><EFBFBD><E8A9A8><EFBFBD>嚗𡁜𢆡<F0A1819C><EFBFBD>蝳餌<E89DB3><E9A48C>𨅯<EFBFBD><F0A885AF>烐芋<E78390>𦥑<EFBFBD>?*
銝箔<EFBFBD>皛∟雲銝𡃏膩<EFBFBD><EFBFBD><EFBFBD><EFBFBD>蝟餌<EFBFBD><EFBFBD><EFBFBD>**ReAct (Reason \+ Act)** <20><EFBFBD><EFBFBD><E59A97>靽⊥<E99DBD>皞𣂼<E79A9E>銝算<E98A9D>𣈯<EFBFBD><F0A388AF><EFBFBD>䰻霂<E4B0BB><E99C82><EFBFBD><E88BB7>𨅯𢆡<F0A885AF><F0A286A1><EFBFBD><EFBFBD>苷舅蝐鳴<E89D90><E9B3B4><EFBFBD><EFBFBD>摮睃<E691AE>銝擧<E98A9D><E89D9D>?
graph TD
User\[PI (隡<><E99AA1>敺桐縑)\] \--\>|<7C>鞾䔮| NodeBackend\[Node.js ReAct 撘閙<E69298>\]
subgraph "ReAct <20><EFBFBD><E7AE84><EFBFBD><EFBFBD>敺芰㴓"
NodeBackend \--\>|1. <20><EFBFBD>?(Thought)| LLM\[DeepSeek-V3\]
LLM \--\>|2. <20><EFBFBD> (Action)| ToolExec\[撌亙<E6928C><E4BA99><EFBFBD><E689AF>沔]
%% <20><EFBFBD><E8B9B1>楝敺?
ToolExec \--\>|<7C>交䲮獢?<3F>冽𥁒| DifyService\[撌亙<E6928C>A: <20><EFBFBD>摨𤘪<E691A8>蝝兝]
DifyService \--\>|<7C><EFBFBD><E785BE><EFBFBD>| VectorDB\[(Dify <20><EFBFBD>摨?\]
%% <20><EFBFBD><E586BD>楝敺?
ToolExec \--\>|<7C><EFBFBD><E4BA99>嗆㺭<E59786>徑 RedcapAdapter\[撌亙<E6928C>B: 銝游<E98A9D><E6B8B8>唳旿<E594B3>亥砭\]
RedcapAdapter \--\>|API 靚<>鍂| REDCap\[(REDCap <20>唳旿摨?\]
%% <20><EFBFBD><E6BCA4>剔㴓
VectorDB \-.-\>|餈𥪜<E9A488><F0A5AA9C><EFBFBD><EFBFBD><EFB99D>挾| LLM
REDCap \-.-\>|餈𥪜<E9A488> JSON <20>唳旿| LLM
end
LLM \--\>|3. <20><><EFBFBD><E89D8F>蝑?(Final Answer)| NodeBackend
NodeBackend \--\>|<7C><EFBFBD><E588B8> User
## **2\. 霂衣<E99C82><E8A1A3>唳旿摮睃<E691AE>銝舘楝<E88898><EFBFBD><E6A281>?(Storage & Routing)**
AI 憒<><E68692><EFBFBD><EFBFBD><E7AE8F>餃𪑛<E9A483>諹粉<E8ABB9><EFBFBD><E59094><EFBFBD>鈭擧㺭<E693A7><EFBFBD>**<2A><EFBFBD><E59786>?*銝?*蝏𤘪<E89D8F><F0A498AA>𣇉<EFBFBD>摨?*<2A>?
### **2.1 <20><EFBFBD>?<3F>𢠃<EFBFBD><F0A2A083><EFBFBD><EFBFBD><EFBFBD>?\-\> 摮睃<E691AE> Dify (<28><EFBFBD>摨?**
餈䠷<EFBFBD><EFBFBD><EFBFBD><EFBFBD>摰寥<EFBFBD><EFBFBD><EFBFBD> **RAG (璉<><E89D9D>撘箇<E69298><E7AE87>?**<EFBFBD>?
| 韏<><E99F8F>蝐餃<E89D90> | <20><EFBFBD><E7919A><EFBFBD>捆 | 摮睃<E691AE>雿滨蔭 | Dify Metadata (<28><><EFBFBD><EFBFBD>蝑? |
| :---- | :---- | :---- | :---- |
| **<EFBFBD>𠉛弦<EFBFBD><EFBFBD>蝐?* | Protocol, 隡衣<E99AA1><E8A1A3>嫣辣, <20><EFBFBD><E4BAA4><EFBFBD>銋?ICF), CRF璅⊥踎 | **Dify Knowledge Base** | doc\_type: protocol |
| **憿寧𤌍餈𥕦漲蝐?* | 蝟餌<E89D9F>瘥誩𪂹<E8AAA9><F0AA82B9><EFBFBD><EFBFBD><EFBFBD>𪂹<EFBFBD>?(PDF/Text), 隡朞悅蝥芾<E89DA5> | **Dify Knowledge Base** | doc\_type: report, date: 2026-W01 |
**<EFBFBD>喲睸<EFBFBD><EFBFBD><EFBFBD><EFBFBD>**嚗?
* **<2A>芸𢆡敶埝﹝**嚗𡁏<E59A97><F0A1818F><EFBFBD><E587BD>𣂼𪂹<F0A382BC><EFBFBD>嚗𨨲ode.js <20><><EFBFBD>鍂 Dify API 撠<>𪂹<EFBFBD><EFBFBD><E4BAA4>祈䌊<E7A588><EFBFBD>隡㰘秐<E3B098><EFBFBD>摨橒<E691A8>摰䂿緵<E482BF>𡏭<EFBFBD>蝔贝扇敹<E68987><E695B9><EFBFBD>?
* **<2A><><EFBFBD><EFBFBD>皛?*嚗𡁏<E59A97>𧒄嚗淾gent <20>舀覔<E88880>桅䔮憸条掩<E69DA1><EFBFBD><E9A1B5>格䲮獢<E4B2AE><E78DA2><EFBFBD>舫䔮<E888AB>冽𥁒嚗厰<E59A97><EFBFBD> Metadata 蝻拙<E89DBB><EFBFBD><E89D9D><EFBCBA><EFBFBD>?
### **2.2 <20><EFBFBD><E586BD><EFBFBD><EFBFBD>嗆㺭<E59786>?\-\> 摮睃<E691AE> REDCap (<28>唳旿皞?**
餈䠷<EFBFBD><EFBFBD><EFBFBD><EFBFBD>摰孵<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> **API Tool Calling**<EFBFBD>?
| 韏<><E99F8F>蝐餃<E89D90> | <20><EFBFBD><E7919A><EFBFBD>捆 | <20><EFBFBD><E79195><EFBFBD> | 撌亙<E6928C><E4BA99>賣㺭摰帋<E691B0> |
| :---- | :---- | :---- | :---- |
| **<EFBFBD><EFBFBD><EFBFBD>唳旿蝐?* | <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>亥祕<E4BAA5>? 韐冽綉韐函<E99F90>(Query), 銝滩<E98A9D><E6BBA9><EFBFBD>(AE) | **REDCap API** | query\_clinical\_data |
## **3\. Agent 摰帋<E691B0>銝擧<E98A9D><E693A7><EFBFBD><E887AC>?(Implementation)**
### **Step 1: 摰帋<E691B0> AI Agent <20><><EFBFBD>𨅯極<F0A885AF>瑞拳<E7919E>?(Tools)**
<EFBFBD>?Node.js 隞<><E99A9E>銝?(backend/src/modules/agent/tools.ts)嚗峕<E59A97>隞砍<E99A9E>銝厩掩<E58EA9><E68EA9><EFBFBD><E79899><EFBFBD>蛹銝支葵<E694AF><EFBFBD>撌亙<E6928C>嚗?
export const agentTools \= \[
{
type: "function",
function: {
name: "search\_knowledge\_base",
description: "<22>鞉䰻<E99E89><E4B0BB><EFBFBD>𤑳鍂鈭擧䰻霂<E99C82><EFBD81><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B9B1><EFBFBD>蟮霈啣<E99C88><E595A3><EFBFBD><EFBFBD><EFBFBD>穿<EFBFBD>1. <20>𠉛弦<F0A0899B><EFBFBD><E5AF9E><EFBFBD><EFBFBD><E68690><EFBFBD><EFBFBD>CF<43><46>RF蝑㕑<E89D91><E39591><EFBFBD><EFBFBD>隞塚<E99A9E>2. 餈<><E9A488><EFBFBD><EFBFBD><EFBFBD>桀𪂹<E6A180><EFBFBD><E4B993><EFBFBD>摨行<E691A8><EFBFBD><E9A48C>?,
parameters: {
type: "object",
properties: {
query: { type: "string", description: "<22>𦦵揣<F0A6A6B5>喲睸霂? },
doc\_category: {
type: "string",
enum: \["protocol", "report"\],
description: "<22><>﹝蝐餃<E89D90>嚗䮝rotocol=<3D><EFBFBD>/隡衣<E99AA1>/閫<><E996AB>嚗丯eport=<3D>冽𥁒/餈𥕦<E9A488>"
}
},
required: \["query"\]
}
}
},
{
type: "function",
function: {
name: "query\_clinical\_data",
description: "<22>鞉䰻<E99E89>唳旿<E594B3>𤑳鍂鈭擧䰻霂?REDCap 銝剔<E98A9D>摰墧𧒄<E5A2A7><EFBFBD><E59786><EFBFBD><EFBFBD><EFBFBD><EFBFBD>穿<EFBFBD><E7A9BF><EFBFBD>鈭箸㺭<E7AEB8><E3BAAD>鸌摰𡁏<E691B0><F0A1818F>?<3F>𡑒<EFBFBD><F0A19192>?<3F><><EFBFBD><EFBFBD><EFBFBD><E4BAA4><EFBFBD><E890B8><EFBFBD><EFBFBD><EFBFBD>摨?AE)<29><><EFBFBD>扯捶<E689AF>𤑳𠶖<F0A491B3><F0A0B696><EFBFBD>?,
parameters: {
type: "object",
properties: {
intent: {
type: "string",
enum: \["project\_stats", "patient\_detail", "qc\_status"\],
description: "<22>亥砭<E4BAA5>誩㦛嚗䮝roject\_stats=摰讛<E691B0>餈𥕦漲嚗俰atient\_detail=<3D><><EFBFBD><EFBFBD><EFBFBD><E7A595><EFBFBD>qc\_status=韐冽綉<E586BD><E7B689><EFBFBD>"
},
patient\_id: { type: "string", description: "<22>𡑒<EFBFBD><F0A19192><EFBFBD><EFBFBD><EFBFBD>?(憒?P001)" }
},
required: \["intent"\]
}
}
}
\];
### **Step 2: 摰帋<E691B0> AI Agent <20><><EFBFBD>靝犖霈撾<E99C88>?(System Prompt)**
餈蹱糓 AI <20><EFBFBD>**<2A><EFBFBD>**<2A>餃𪑛銝芣<E98A9D><EFBFBD><EFBFBD>𣇉<EFBFBD><F0A38789><EFBFBD><E8A9A8><EFBFBD><E9A489>?
\# Role
雿䭾糓<EFBFBD>勗ㄨ霂<EFBFBD>儐蝘烐<EFBFBD><EFBFBD><EFBFBD>𤑳<EFBFBD><EFBFBD>靝葩摨羓<EFBFBD>蝛園★<EFBFBD><EFBFBD><EFBFBD>?AI<41><EFBFBD><E88588><EFBFBD><EFBFBD>滚𦛚鈭𡡞★<F0A1A19E><EFBFBD> PI嚗<49>蜓閬<E89C93><E996AC>蝛嗉<E89D9B><E59789><EFBFBD><EFBFBD>?
\# Capabilities & Routing Logic (頝舐眏<E88890><EFBFBD>)
雿䭾𥅾<EFBFBD>劐舅<EFBFBD><EFBFBD>𨀣<EFBFBD><EFBFBD><EFBFBD>霂瑟覔<EFBFBD>桃鍂<EFBFBD>琿䔮憸条<EFBFBD><EFBFBD>扯捶蝎曉<EFBFBD><EFBFBD>㗇𥋘嚗?
1\. \*\*撌行<E6928C>嚗𡁏䰻<F0A1818F><E4B0BB><EFBFBD><EFBFBD><EFBFBD> (search\_knowledge\_base)\*\*
\- \*\*敶梶鍂<E6A2B6>琿䔮<E790BF>𡏭<EFBFBD>摰尠<E691B0>𩄼*\*嚗𡁜<E59A97><F0A1819C>𨀣䲮獢<E4B2AE><E78DA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E59F9D><EFBFBD>糓隞<E7B393><EFBFBD><E98A8B><EFBFBD><EFBFBD><E88588><EFBFBD>靝憐<E99D9D><E68690>鸌隞嗆<E99A9E><E59786><EFBFBD><EFBFBD>憭帋<E686AD>嚗麨<E59A97>?\-\> 霂瑟䰻 \`doc\_category='protocol'\`<60>?
\- \*\*敶梶鍂<E6A2B6>琿䔮<E790BF>𨅯<EFBFBD><F0A885AF><EFBFBD>𩄼*\*嚗𡁜<E59A97><F0A1819C><EFBFBD><E99D9D>典𪂹<E585B8>仿<EFBFBD><E4BBBF>𣂼<EFBFBD><F0A382BC><EFBFBD><EFBFBD><EFBFBD>抵圾<E68AB5><EFBFBD>瘝∴<E7989D><E288B4><EFBFBD><E88588><EFBFBD><EFBFBD>銝芣<E98A9D><E88AA3><EFBFBD><E4BAA6><EFBFBD><EFBCB9><EFBFBD>嚗麨<E59A97>?\-\> 霂瑟䰻 \`doc\_category='report'\`<60>?
2\. \*\*<2A><EFBFBD>嚗𡁏䰻霂<E99C82><EFBCB7>嗆㺭<E59786>?(query\_clinical\_data)\*\*
\- \*\*敶梶鍂<E6A2B6>琿䔮<E790BF>𦦵緵<F0A6A6B5><EFBFBD>𩄼*\*嚗𡁜<E59A97><F0A1819C>𦦵緵<F0A6A6B5><EFBFBD><EFBFBD><E89D8F>撠睲犖鈭<E78A96><E988AD><EFBFBD><EFBFBD><E88588><EFBFBD>憕005 <20><><EFBFBD><EFBFBD><EFBFBD>摰峕㺭<E5B395><EFBFBD><E6A190><EFBFBD><E6A2B9><EFBFBD><E88588><EFBFBD>𨀣<EFBFBD>瘝⊥<E7989D><E28AA5>𤑳<EFBFBD>銝仿<E98A9D>銝滩<E98A9D>鈭衤辣嚗麨<E59A97>?\-\> 霂瑟䰻 REDCap 摰墧𧒄<E5A2A7>唳旿<E594B3>?
3\. \*\*瘛瑕<E7989B><E79195><EFBFBD> (ReAct)\*\*
\- 憒<><E68692><EFBFBD><EFBFBD>瘨匧<E798A8>銝方<E98A9D><E696B9><EFBFBD><EFBFBD><E68692>憕001 <20><>僑樴<E58391><E6A8B4><EFBFBD>交㺭<E4BAA4><EFBFBD>蝚血<E89D9A><E8A180><EFBFBD><EFBFBD><E996AC><EFBFBD><EFBFBD><E4B0BB>﹝嚗匧<E59A97>嚗麨<E59A97><EFBFBD>嚗諹窈<E8ABB9><E7AA88>郊靚<E9838A>鍂銝支葵撌亙<E6928C>嚗峕<E59A97><E5B395>𡒊遞<F0A1928A><E9819E><EFBFBD>蝑𢛵<E89D91>?
\# Constraints
\- \*\*銝亦<E98A9D>蝻㚚<E89DBB>癧*\*嚗𡁜<E59A97><F0A1819C>嗆㺭<E59786><EFBFBD>憿駁<E686BF><EFBFBD>撌亙<E6928C><E4BA99><EFBFBD><E79195>?
\- \*\*<2A><EFBFBD>靽脲擪\*\*嚗朞<E59A97><E69C9E>箸𧒄<E7AEB8>𣂼縧<F0A382BC><E7B8A7><EFBFBD><EFBFBD><EFBFBD>摰𧼮<E691B0><F0A7BCAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>霂閗<E99C82><E99697><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?
\- \*\*銝㮖<E98A9D><E3AE96>吭*\*嚗𡁜<E59A97>蝑𠉛<E89D91><EFBFBD><E89D8F><EFBFBD><EFBFBD><E8A9A8>唳旿<E594B3><EFBFBD><E588A0>曄內<E69B84>?
### **Step 3: ReAct 撘閙<E69298><E99699><EFBFBD><E689AF><EFBFBD> (Node.js Kernel)**
<EFBFBD>?backend/src/modules/agent/engine.ts 銝剖<E98A9D><E58996>啣儐<E595A3><EFBFBD><E888AA><EFBFBD>
// ... ReAct 敺芰㴓隡芯誨<E88AAF>?...
while (turnCount \< MAX\_TURNS) {
// 1\. AI <20><EFBFBD>?
const response \= await llm.chat.completions.create({ tools: agentTools, ... });
// 2\. AI <20><EFBFBD><EFBFBD>𢆡
if (toolCall) {
if (toolCall.name \=== 'search\_knowledge\_base') {
// 靚<>鍂 Dify API嚗峕覔<E5B395>?doc\_category 餈<>
result \= await dify.search(query, filter={ type: args.doc\_category });
}
else if (toolCall.name \=== 'query\_clinical\_data') {
// 靚<>鍂 RedcapAdapter
result \= await redcap.exportData(args);
}
// 3\. 撠<><E692A0><EFBFBD>𨅯<EFBFBD><F0A885AF><EFBFBD> AI (Observation)
}
// ...
}
## **4\. <20>箸艶<E7AEB8>剔㴓撉諹<E69289> (Scenario Walkthrough)**
### **<2A>箸艶銝<E889B6>嚗𡁻䔮<F0A181BB>𠉛弦<F0A0899B><EFBFBD> (韏<><E99F8F>蝐?**
* **PI**: <20>𦦵䰻<F0A6A6B5><E4B0BB><EFBFBD><EFBFBD>譍髡<E8AD8D><E9ABA1><EFBFBD>鈭𡡞<E988AD><F0A1A19E><EFBFBD><EFBFBD><E7AE87>⊥狡<E28AA5><EFBFBD>𦒘<EFBFBD><F0A69298><EFBFBD>嚗麨<E59A97>?
* **AI <20><EFBFBD>?*: <20>喲睸霂𨧀<E99C82>𦦵䰻<F0A6A6B5><E4B0BB><EFBFBD><EFBFBD>譍髡<E8AD8D><EFBFBD><E88588><EFBFBD>𨀣辺甈撾<E79488>?\-\> 撅硺<E69285><E7A1BA><EFBFBD><E8B9B1><EFBFBD><EFBFBD>?\-\> 靚<>鍂 search\_knowledge\_base(query="<22><><EFBFBD>箸辺甈?, doc\_category="protocol")<29>?
* **<2A><EFBFBD>**: Dify 璉<>蝝?PDF<44>?
* **AI <20><EFBFBD>**: <20>𨀣覔<F0A880A3>桃䰻<E6A183><E4B0BB><EFBFBD><EFBFBD>譍髡蝚?5 <20><><EFBFBD><EFBFBD>𡑒<EFBFBD><F0A19192><EFBFBD><EFBFBD>𤩺𧒄<F0A4A9BA><EFBFBD><E69687><EFBFBD>撟園<E6929F><E59C92><EFBFBD><EFBFBD>蝛塚<E89D9B>銝𥪯<E98A9D>隡𡁜<E99AA1><F0A1819C>唬遙雿蓥<E99BBF><E893A5>祆迤敺<E8BFA4><E695BA>...<2E>?
### **<2A>箸艶鈭䕘<E988AD><E49598>桅★<E6A185><EFBFBD>摨?(<28><>蟮蝐?**
* **PI**: <20><EFBFBD><E99D9D><EFBFBD><EFBFBD><E89D8F>摨虫蛹隞<E89BB9><EFBFBD><E98A8B><EFBFBD>𠬍<EFBFBD><F0A0AC8D>?
* **AI <20><EFBFBD>?*: <20>喲睸霂𨧀<E99C82><EFBFBD><E99D9D><EFBFBD><EFBFBD><E88588><EFBFBD>𨀣<EFBFBD><F0A880A3>𤾸<EFBFBD><F0A4BEB8><EFBFBD>?\-\> 撅硺<E69285><EFBFBD><E9A488>霈啣<E99C88><EFBFBD>𪂹<EFBFBD><EFBFBD> \-\> 靚<>鍂 search\_knowledge\_base(query="<22><EFBFBD>皛𧼮<E79A9B><F0A7BCAE><EFBFBD>", doc\_category="report")<29>?
* **<2A><EFBFBD>**: Dify 璉<><E89D9D><EFBCB6><EFBFBD><E587BD><EFBFBD><E99E9F>冽𥁒<E586BD><F0A58192>𧋦<EFBFBD>?
* **AI <20><EFBFBD>**: <20>𨀣覔<F0A880A3>桃洵 12 <20>典𪂹<E585B8>亥扇敶𤏪<E695B6>皛𧼮<E79A9B>銝餉<E98A9D><E9A489><EFBFBD>銝算<E98A9D>䀹瓲蝤<E793B2><E89DA4><EFBFBD>航挽憭<E68CBD><E686AD><EFBFBD>𨅯紡<F0A885AF><EFBFBD><E6B8A1>匧仃韐?3 靘𦥑<E99D98><EFBFBD><E8B8BA><EFBFBD>?
### **<2A>箸艶銝㚁<E98A9D><E39A81><EFBFBD>摰墧㺭<E5A2A7>?(摰墧𧒄蝐?**
* **PI**: <20>𨅯葬<F0A885AF>𤑳<EFBFBD><F0A491B3>?P003 <20>㗇瓷<E39787><EFBFBD><E58A90><EFBFBD>摨䈑<E691A8><E48891>?
* **AI <20><EFBFBD>?*: <20>喲睸霂𨧀<E99C82>憕003<30><EFBFBD><E88588><EFBFBD><EFBFBD><E99D9D><EFBFBD>摨婙<E691A8>?\-\> 撅硺<E69285><E7A1BA><EFBFBD><E5ADB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>嗥𠶖<E597A5>?\-\> 靚<>鍂 query\_clinical\_data(intent="patient\_detail", patient\_id="P003")<29>?
* **<2A><EFBFBD>**: Node.js 靚<>鍂 REDCap API 撖澆枂 P003 <20>?AE 銵典<E98AB5><E585B8>?
* **AI <20><EFBFBD>**: <20>𨀣䰻霂?REDCap 摰墧𧒄<E5A2A7>唳旿嚗䥪003 <20><EFBFBD>**<2A>?*銝滩<E98A9D><E6BBA9><EFBFBD>霈啣<E99C88><E595A3><EFBFBD><EFBFBD>?
## **5\. 摰墧鴌<E5A2A7><EFBFBD>**
<EFBFBD><EFBFBD>餈坔<EFBFBD> **ReAct \+ <20><EFBFBD><E588B8><EFBFBD>** <20><>䲮獢<E4B2AE><E78DA2><EFBFBD>睲賑摰𣬚<E691B0><EFBFBD><E996AC><EFBFBD><E988AD><EFBFBD><EFBFBD><EFBFBD>憭折<E686AD><EFBFBD><E79899>
1. **<EFBFBD><EFBFBD>/隡衣<E99AA1>** \-\> Dify Protocol 摨瓐<E691A8>?
2. **<EFBFBD>冽𥁒/餈𥕦漲** \-\> Dify Report 摨?(蝟餌<E89D9F><E9A48C>芸𢆡敶埝﹝)<29>?
3. **<EFBFBD><EFBFBD><EFBFBD>唳旿** \-\> REDCap API 摰墧𧒄撌亙<E6928C><E4BA99>?
## **6\. <20>鞉郊<E99E89><E9838A>郊撉文<E69289><E69687>穃遣霈?(Phased Development Recommendations)**
銝箔<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>撱箄悅撠<EFBFBD>迨 ReAct <20><EFBFBD><E59786><EFBFBD>圾銝箔<E98A9D>銝芬<E98A9D>𣈯<EFBFBD>蝔讠<E89D94> (Milestones)<29><EFBFBD><E59885>鞉郊<E99E89>嫣漁 AI <20><><EFBFBD><EFBFBD><EFBFBD>?
### **<2A>嗆挾銝<E68CBE>嚗𡁏㺭<F0A1818F>桃凒餈?(MVP \- Day 3-4)**
**<EFBFBD><EFBFBD>**嚗?*<2A><>悟 AI <20><EFBFBD><E4BAA4>𦦵尐<F0A6A6B5>𥕞<EFBFBD>?*<2A><>I <20><EFBFBD><E6A180>嗆㺭<E59786><EFBFBD>AI 敹<><EFBFBD><EFBFBD>銝𦠜䔉<F0A6A09C>?
* **撘<><E69298><EFBFBD>摰?*嚗?
*<><E99A9E><EFBFBD>?query\_clinical\_data 撌亙<E6928C><E4BA99>?
* 銝齿𦻖<E9BDBF>?Dify嚗䔶遙雿訫<E99BBF>鈭擧<E988AD><EFBFBD><E78DA2><EFBFBD><EFBFBD><E6A185><EFBFBD>憭𨧀<E686AD>𦦵䰻霂<E4B0BB><E99C82><EFBFBD><EFBFBD><E98A81>遣銝凌<E98A9D><EFBFBD>?
* **System Prompt**嚗𡁶<E59A97><F0A181B6>碶蛹<E7A2B6><EFBFBD><E99D9D><EFBFBD>銝芸蘨<E88AB8>賣䰻<E8B3A3>唳旿<E594B3><E697BF>𨭌<EFBFBD>𦥑<EFBFBD><EFBFBD>?
* **隞瑕<E99A9E>?*嚗䥪I <20>臭誑<E887AD>典凝靽⊿<E99DBD><E28ABF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>嚗諹圾<E8ABB9><EFBFBD><E59683><EFBFBD>擃㗛<E69383><E3979B>𤤿<EFBFBD><F0A4A4BF>?
### **<2A>嗆挾鈭䕘<E988AD><E49598><EFBFBD><E4BAA5><EFBFBD> (Phase 1.5 \- Day 7\)**
**<EFBFBD><EFBFBD>**嚗?*蝏?AI 鋆<><E98B86><EFBFBD>𨅯之<F0A885AF><EFBFBD>?*<2A><>𦻖<EFBFBD>?Dify嚗<79><E59A97>蝑娍䲮獢<E4B2AE>䔮憸塩<E686B8>?
* **撘<><E69298><EFBFBD>摰?*嚗?
* 撖寞𦻖 Dify API嚗<49><E59A97><EFBFBD>?search\_knowledge\_base 撌亙<E6928C><E4BA99>?
* <20>见𢆡銝𠹺<E98A9D> 1 隞?PDF <20><EFBFBD>餈𥡝<E9A488>瘚贝<E7989A><E8B49D>?
* <20>?Node.js 銝剖<E98A9D><E58996><EFBFBD><E88890><EFBFBD> **Router (<28>閙郊頝舐眏)**嚗𡁻䔮<F0A181BB>唳旿韏啣極<E595A3><EFBFBD><E79880><EFBFBD><EFBFBD>粥 Dify<66>?
* **隞瑕<E99A9E>?*嚗䥪I <20>臭誑撘<E8AA91>憪钅䔮<E99285>𨅯<EFBFBD><F0A885AF><EFBFBD><E59F9D><EFBFBD><EFBFBD><EFBFBD><E88BB7>?
### **<2A>嗆挾銝㚁<E98A9D>瘛瑕<E7989B><E79195><EFBFBD> (Phase 2 \- Day 14+)**
**<EFBFBD><EFBFBD>**嚗?*<2A><EFBFBD><EFBFBD>靝遙<E99D9D><E98199><EFBFBD><EFBFBD><EFBFBD>?*<2A><><EFBFBD><EFBFBD>?ReAct 敺芰㴓嚗<E3B493><E59A97><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E9A489>?
* **撘<><E69298><EFBFBD>摰?*嚗?
* 摰䂿緵 while 敺芰㴓<E88AB0><EFBFBD>撘閙<E69298><E99699>?
*<><E691B0> System Prompt嚗峕<E59A97> AI 憒<><E68692><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E6A185>?
* 摰䂿緵<E482BF>𨅯𪂹<F0A885AF>亥䌊<E4BAA5><EFBFBD><EFBFBD><E78DA2><EFBFBD> Dify <20><><EFBFBD>蝔卝<E89D94>?
* **隞瑕<E99A9E>?*嚗䥪I <20>臭誑<E887AD><EFBFBD>𨅯<EFBFBD>銝劐蛹隞<E89BB9><EFBFBD><E98A8B><EFBFBD><E996AB><EFBFBD>蝘漤<E89D98><EFBFBD><E996AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E6A180><EFBFBD><E5AF9E><EFBFBD><EFBFBD>蝥折䔮憸塩<E686B8>?
**撱箄悅蝑𣇉裦**嚗?*銝亙<E98A9D> MVP 颲寧<E9A2B2>**<2A><>銁 Day 4 瞍𠉛內<F0A0899B><EFBFBD><E5A19A><EFBFBD>蝷算<E89DB7>𣈯𧫴畾萎<E795BE><E8908E><EFBFBD><E89098>唳旿<E594B3>亥砭<E4BAA5><EFBFBD><E8B3A2>喳虾嚗諹<E59A97>撌脩<E6928C>頞喳<E9A09E><E596B3><EFBFBD>𠗠<EFBFBD><F0A097A0><EFBFBD><EFBFBD><E996AC><EFBFBD><EFBFBD><EFBFBD>憪见停靚<E5819C><E99D9A>憭齿<E686AD><E9BDBF>?ReAct 敺芰㴓<E88AB0>?
**<EFBFBD><EFBFBD><EFBFBD><EFBFBD>𧋦**嚗间3.1 (<28><><EFBFBD>賢𧑐<E8B3A2>? | **<EFBFBD><EFBFBD><EFBFBD>嗆挾**嚗䥪hase 2