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%)
10 KiB
IIT Manager Agent <20>箄<EFBFBD><E7AE84>桃<EFBFBD>銝擧毽<E693A7><E6AFBD><EFBFBD>蝝Z圾<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>
- **<2A>蹱<EFBFBD><E8B9B1><EFBFBD><EFBFBD><EFBFBD>䰻霂?*嚗朞砭<E69C9E>桃<EFBFBD>蝛嗆䲮獢<E4B2AE><E78DA2><EFBFBD>憐<EFBFBD><E68690><EFBFBD><EFBFBD>踺<EFBFBD><E8B8BA>䰻<EFBFBD><E4B0BB><EFBFBD><EFBFBD>譍髡<E8AD8D><E9ABA1>RF銵冽聢蝑匧𤐄摰𡁏<E691B0>獢<EFBFBD><E78DA2>?
- 餈<EFBFBD><EFBFBD><EFBFBD><EFBFBD>蟮<EFBFBD>墧滲嚗朞砭<EFBFBD>桅★<EFBFBD>桀𪂹<EFBFBD>乩葉霈啣<EFBFBD><EFBFBD><EFBFBD><EFBFBD>撅𨰻<EFBFBD><EFBFBD>䔮憸䀹<EFBFBD><EFBFBD>颯<EFBFBD><EFBFBD><EFBFBD><EFBFBD>脫㺭<EFBFBD>桀翰<EFBFBD>扼<EFBFBD>?
- **<2A>冽<EFBFBD><E586BD>㺭<EFBFBD>桃忽<E6A183>?*嚗朞砭<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>蝝U<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>?*銝?蝏𤘪<EFBFBD><EFBFBD>𣇉<EFBFBD>摨?<EFBFBD>?
2.1 <20>蹱<EFBFBD>?<3F>𢠃<EFBFBD><F0A2A083><EFBFBD><EFBFBD><EFBFBD>?-> 摮睃<E691AE> Dify (<28>亥<EFBFBD>摨?
餈䠷<EFBFBD><EFBFBD><EFBFBD><EFBFBD>摰寥<EFBFBD><EFBFBD><EFBFBD> RAG (璉<>蝝W<E89D9D>撘箇<E69298><E7AE87>?<EFBFBD>?
| 韏<EFBFBD><EFBFBD>蝐餃<EFBFBD> | <EFBFBD>瑚<EFBFBD><EFBFBD><EFBFBD>捆 | 摮睃<EFBFBD>雿滨蔭 | Dify Metadata (<28><>㺭<EFBFBD>格<EFBFBD>蝑? |
|---|---|---|---|
| *<EFBFBD>𠉛弦<EFBFBD>寞<EFBFBD>蝐? | Protocol, 隡衣<E99AA1><E8A1A3>嫣辣, <20>交<EFBFBD><E4BAA4>峕<EFBFBD>銋?ICF), CRF璅⊥踎 | Dify Knowledge Base | doc_type: protocol |
| *憿寧𤌍餈𥕦漲蝐? | 蝟餌<EFBFBD>瘥誩𪂹<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>𪂹<EFBFBD>?(PDF/Text), 隡朞悅蝥芾<E89DA5> | Dify Knowledge Base | doc_type: report, date: 2026-W01 |
**<2A>喲睸<E596B2><E79DB8><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>蝝X𧒄嚗淾gent <20>舀覔<E88880>桅䔮憸条掩<E69DA1>页<EFBFBD><E9A1B5>格䲮獢<E4B2AE><E78DA2><EFBFBD>舫䔮<E888AB>冽𥁒嚗厰<E59A97>朞<EFBFBD> Metadata 蝻拙<E89DBB>璉<EFBFBD>蝝Z<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>?
| 韏<EFBFBD><EFBFBD>蝐餃<EFBFBD> | <EFBFBD>瑚<EFBFBD><EFBFBD><EFBFBD>捆 | <EFBFBD>瑕<EFBFBD><EFBFBD>孵<EFBFBD> | 撌亙<EFBFBD><EFBFBD>賣㺭摰帋<EFBFBD> |
|---|---|---|---|
| *<EFBFBD>笔<EFBFBD><EFBFBD>唳旿蝐? | <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>亥祕<EFBFBD>? 韐冽綉韐函<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>𤑳鍂鈭擧䰻霂a<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><EFBFBD>箏<EFBFBD><EFBFBD>餃𪑛銝芣<EFBFBD>獢<EFBFBD>粉<EFBFBD>𣇉<EFBFBD><EFBFBD>詨<EFBFBD><EFBFBD>餉<EFBFBD><EFBFBD>?
# Role
雿䭾糓<E4ADBE>勗ㄨ霂<E384A8>儐蝘烐<E89D98>撘<EFBFBD><E69298>𤑳<EFBFBD><F0A491B3>靝葩摨羓<E691A8>蝛園★<E59C92>桃<EFBFBD><E6A183>?AI<41>腈<EFBFBD><E88588><EFBFBD><EFBFBD>滚𦛚鈭𡡞★<F0A1A19E>桃<EFBFBD> PI嚗<49>蜓閬<E89C93><E996AC>蝛嗉<E89D9B><E59789><EFBFBD><EFBFBD>?
# Capabilities & Routing Logic (頝舐眏<E88890>餉<EFBFBD>)
雿䭾𥅾<E4ADBE>劐舅<E58A90>芬<EFBFBD>𨀣<EFBFBD><F0A880A3>嘅<EFBFBD>霂瑟覔<E7919F>桃鍂<E6A183>琿䔮憸条<E686B8><E69DA1>扯捶蝎曉<E89D8E><E69B89>㗇𥋘嚗?
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>Y<EFBFBD><EFBCB9>笔<EFBFBD>嚗麨<E59A97>?-> 霂瑟䰻 `doc_category='report'`<60>?
2. **<2A>單<EFBFBD>嚗𡁏䰻霂W<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)
<EFBFBD>箸艶銝<EFBFBD>嚗𡁻䔮<EFBFBD>𠉛弦<EFBFBD>寞<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>?
- <EFBFBD>扯<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>?
<EFBFBD>箸艶鈭䕘<EFBFBD><EFBFBD>桅★<EFBFBD>株<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>?
- <EFBFBD>扯<EFBFBD>: Dify 璉<>蝝V<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>?
<EFBFBD>箸艶銝㚁<EFBFBD><EFBFBD>桃<EFBFBD>摰墧㺭<EFBFBD>?(摰墧𧒄蝐?
- 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>?
- <EFBFBD>扯<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>
- <EFBFBD>寞<EFBFBD>/隡衣<E99AA1> -> Dify Protocol 摨瓐<E691A8>?
- <EFBFBD>冽𥁒/餈𥕦漲 -> Dify Report 摨?(蝟餌<E89D9F><E9A48C>芸𢆡敶埝﹝)<29>?
- <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>?
<EFBFBD>嗆挾銝<EFBFBD>嚗𡁏㺭<EFBFBD>桃凒餈?(MVP - Day 3-4)
**<2A>格<EFBFBD>**嚗?<EFBFBD><EFBFBD>悟 AI <20>交<EFBFBD><E4BAA4>𦦵尐<F0A6A6B5>𥕞<EFBFBD>?<EFBFBD><EFBFBD>I <20>桀<EFBFBD><E6A180>嗆㺭<E59786>殷<EFBFBD>AI 敹<>◆<EFBFBD>賜<EFBFBD>銝𦠜䔉<F0A6A09C>?
- **撘<><E69298>穃<EFBFBD>摰?*嚗?
- 隞<EFBFBD><EFBFBD><EFBFBD>?query_clinical_data 撌亙<E6928C><E4BA99>?
- 銝齿𦻖<EFBFBD>?Dify嚗䔶遙雿訫<E99BBF>鈭擧<E988AD>獢<EFBFBD><E78DA2><EFBFBD>桅<EFBFBD><E6A185>賢<EFBFBD>憭𨧀<E686AD>𦦵䰻霂<E4B0BB><E99C82>甇<EFBFBD>銁<EFBFBD><E98A81>遣銝凌<E98A9D>腈<EFBFBD>?
- System Prompt嚗𡁶<EFBFBD><EFBFBD>碶蛹<EFBFBD>靝<EFBFBD><EFBFBD>臭<EFBFBD>銝芸蘨<EFBFBD>賣䰻<EFBFBD>唳旿<EFBFBD><EFBFBD>𨭌<EFBFBD>𦥑<EFBFBD>腈<EFBFBD>?
- **隞瑕<E99A9E>?*嚗䥪I <20>臭誑<E887AD>典凝靽⊿<E99DBD><E28ABF>亙<EFBFBD>蝏<EFBFBD>犖<EFBFBD>唬<EFBFBD>嚗諹圾<E8ABB9>喃<EFBFBD><E59683><EFBFBD>擃㗛<E69383><E3979B>𤤿<EFBFBD><F0A4A4BF>?
<EFBFBD>嗆挾鈭䕘<EFBFBD><EFBFBD>亥<EFBFBD><EFBFBD>亙<EFBFBD> (Phase 1.5 - Day 7)
**<2A>格<EFBFBD>**嚗?蝏?AI 鋆<><E98B86><EFBFBD>𨅯之<F0A885AF>爗<EFBFBD>?<EFBFBD><EFBFBD>𦻖<EFBFBD>?Dify嚗<79><E59A97>蝑娍䲮獢<E4B2AE>䔮憸塩<E686B8>?
- **撘<><E69298>穃<EFBFBD>摰?*嚗?
- 撖寞𦻖 Dify API嚗<49><E59A97><EFBFBD>?search_knowledge_base 撌亙<E6928C><E4BA99>?
- <EFBFBD>见𢆡銝𠹺<EFBFBD> 1 隞?PDF <20>寞<EFBFBD>餈𥡝<E9A488>瘚贝<E7989A><E8B49D>?
- <EFBFBD>?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>?
<EFBFBD>嗆挾銝㚁<EFBFBD>瘛瑕<EFBFBD><EFBFBD>函<EFBFBD> (Phase 2 - Day 14+)
**<2A>格<EFBFBD>**嚗?<EFBFBD>㯄<EFBFBD>尠<EFBFBD>靝遙<EFBFBD><EFBFBD><EFBFBD><EFBFBD>争<EFBFBD>?<EFBFBD><EFBFBD><EFBFBD><EFBFBD>?ReAct 敺芰㴓嚗<E3B493><E59A97><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>餉<EFBFBD><E9A489>?
- **撘<><E69298>穃<EFBFBD>摰?*嚗?
- 摰䂿緵 while 敺芰㴓<E88AB0>函<EFBFBD>撘閙<E69298><E99699>?
- 摰<EFBFBD><EFBFBD> System Prompt嚗峕<E59A97> AI 憒<><E68692><EFBFBD><EFBFBD>圾<EFBFBD>桅<EFBFBD><E6A185>?
- 摰䂿緵<EFBFBD>𨅯𪂹<EFBFBD>亥䌊<EFBFBD>典<EFBFBD>獢<EFBFBD><EFBFBD>嘥<EFBFBD> Dify <20><><EFBFBD>蝔卝<E89D94>?
- 隞瑕<EFBFBD>?*嚗䥪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><EFBFBD><EFBFBD>銁 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