MWC 2023
Software
Development
via A.I.
Keynote Speech
蔡學鏞
⼈⼯智慧 + 軟體開發
我所走過的 創新之路
程式設計師 使⽤開發⼯具
開發
⼯具
程式師
建立了軟體 供⽤⼾使⽤
軟體
開發
⼯具
程式師
⽤⼾
軟體分成三種組成
界⾯ V
資料 M
邏輯 C
開發
⼯具
程式師
⽤⼾
開發⼯具提供了許多功能
界⾯ V
資料 M
邏輯 C
開發
⼯具
程式師
⽤⼾
IDE
RAD
No-Code
Syntax Highlight
Method Popup List
Syntax-Analysis
…
程式設計師的養成不容易
界⾯ V
資料 M
邏輯 C
開發
⼯具
程式師
⽤⼾
需要⼤量學習、
練習、經驗累積
IDE
RAD
⽣成式 AI
讓程式設計師稍微輕鬆些
IDE
RAD
IDE
RAD
界⾯ V
資料 M
邏輯 C
開發
⼯具
程式師
⽤⼾
⽣成式
AI
Chat
Bot
⾃然語⾔
LLM
OpenAI ChatGPT
Microsoft Copilot
Meta Code Llama
界⾯ V
資料 M
邏輯 C
開發
⼯具
程式師
⽤⼾
IDE
RAD
⽣成式
AI
Chat
Bot
但⾨檻依然不低
IDE
RAD
⾃然語⾔
IDE
RAD
依然需要程式設計
師,且依然需要編程
專業知識
程式師
Chat
Bot
GPT-4
DALL·E 3
Midjourney
思考
「⾃動編程」
等級表
接下來呢?⽤汽⾞作為思考的引⼦
在⾃動駕駛 L5 之後,會怎樣?
提⽰:回歸「原始⽬的」
Transportation / 運輸、傳輸
Teleportation / 電傳、遙傳
在 ChatGPT L5 之後,會怎樣?
提⽰:回歸「原始⽬的」
Application Invocation
ChatGPT ActGPT
核⼼
應⽤
核⼼
AI
Invocation
應⽤
應⽤
⽤⼾
⽤⼾
Application Invocation
應⽤
應
⽤
應⽤
應⽤
My Vision 1:
Anyone as a Programmer
編程⾨檻降低,任何⼈都
可以⾃⼰描述最基礎的需
求,避免和程式設計師等
中間⼈溝通的損耗。
開發
⼯具
業務員
as
程式師
資料
邏輯
My Vision 2:
Invocation Not Application
根據使⽤者的意圖,系統
能動態地組合基礎功能,
不需要事先編寫應⽤。 ⽣成式
AI
開發
⼯具
業務員
as
程式師
資料
邏輯
根據執⾏過程的需要,系
統能動態地⽣成⽤⼾界
⾯,不需要事先編寫。
My Vision 3:
Emergent User Interactions
⽣成式
AI
UI
User
開發
⼯具
業務員
as
程式師
資料
邏輯
My Vision 4:
You Got a Twin
許多時候可以由系統代
替使⽤者決策、⾏事,
讓使⽤者省⼼。 ⽣成式
AI
UI
User
開發
⼯具
業務員
as
程式師
資料
邏輯
Agent
願景架構
⽣成式
AI
UI
User
開發
⼯具
業務員
as
程式師
資料
邏輯
Agent
介⾯ V
資料 M
邏輯 C
開發
⼯具
程式師
User
⽣成式
AI
Chat
Bot
當前架構
兩者差異
1
不需要專業的程
式設計師
⽣成式
AI
UI
User
開發
⼯具
業務員
as
程式師
資料
邏輯
Agent
Chat
兩者差異
2
不需要 Chat
⽣成式
AI
UI
User
開發
⼯具
業務員
as
程式師
資料
邏輯
Agent
Chat
兩者差異
⽣成式
AI
UI
User
開發
⼯具
業務員
as
程式師
資料
邏輯
Agent
Chat
3
成為系統隱含的⼀部
分,不需要和程式設計
師對話
兩者差異
⽣成式
AI
UI
User
開發
⼯具
業務員
as
程式師
資料
邏輯
Agent
Chat
4
UI 不需要⼈設計
兩者差異
5
新增 Agent
⽣成式
AI
UI
User
開發
⼯具
業務員
as
程式師
資料
邏輯
Agent
Chat
核⼼
AI
Invocation
⽤⼾
⽣成式
AI
UI
User
資料
邏輯
Agent
兩者吻合
A
⼤綱
⽣成式
AI
UI
User
開發
⼯具
業務員
as
程式師
資料
邏輯
Agent
重新設計軟體開發⼯具
重新設計 Runtime
重新設計編程語⾔
重新設計資料庫管理系統
重新設計查詢語⾔
動態⽣成⽤⼾界⾯
為使⽤者意圖建模
⾃動⽣成系統調⽤
智慧代理⼈的設計
B
C
D
E
F
G
H
I
A
B
C
D
E
F
G
H
I
A
⽣成式
AI
UI
User
開發
⼯具
業務員
as
程式師
資料
邏輯
Agent
重新設計軟體開發⼯具
重新設計 Runtime
重新設計編程語⾔
重新設計資料庫管理系統
重新設計查詢語⾔
動態⽣成⽤⼾界⾯
為使⽤者意圖建模
⾃動⽣成系統調⽤
智慧代理⼈的設計
B
C
D
E
F
G
H
I
A
B
C
D
E
F
G
H
I
A 重新設計軟體開發⼯具
重新設計 Runtime
重新設計編程語⾔
重新設計資料庫管理系統
重新設計查詢語⾔
動態⽣成⽤⼾界⾯
為使⽤者意圖建模
⾃動⽣成系統調⽤
智慧代理⼈的設計
B
1
2
3
4
G
H
I
程式⼀⼤坨 資料格式僵化
1 2
UI 沒彈性
程式和資料庫之間有阻抗
4
3
影響
象
極
抽
致
Graph
Is My Answer
利⽤ Graph 來組織程式的⼀切,
程式設計就變成了...
概念1
步驟 1: 建立⼀個節點,命名之
概念1
步驟 2: 選擇⼀個框架,套⽤之
概念1
概念2
概念3
概念5
概念4
步驟 3: 針對框架所需要節點,連接之
程式整體是個網
∪
系統網 聯集 應⽤網
Union
安裝程式 就變成了... 應⽤被融入系統中
但 Graph 不適合「直接」編輯(和展⽰)
Graph
List
Node
Item
Link
Content
所以我把 Graph 轉換成 List
節點內容
創建節點
節點清單
A
⽣成式
AI
UI
User
開發
⼯具
業務員
as
程式師
資料
邏輯
Agent
重新設計軟體開發⼯具
重新設計 Runtime
重新設計編程語⾔
重新設計資料庫管理系統
重新設計查詢語⾔
動態⽣成⽤⼾界⾯
為使⽤者意圖建模
⾃動⽣成系統調⽤
智慧代理⼈的設計
B
C
D
E
F
G
H
I
A
B
C
D
E
F
G
H
I
Local Vars
Stack
Tree
Graph
執⾏時的軌跡
執⾏時的實作⽅式
Graph 如何執⾏
Path
Stack
Value
Stack
A
⽣成式
AI
UI
User
開發
⼯具
業務員
as
程式師
資料
邏輯
Agent
重新設計軟體開發⼯具
重新設計 Runtime
重新設計編程語⾔
重新設計資料庫管理系統
重新設計查詢語⾔
動態⽣成⽤⼾界⾯
為使⽤者意圖建模
⾃動⽣成系統調⽤
智慧代理⼈的設計
B
C
D
E
F
G
H
I
A
B
C
D
E
F
G
H
I
化
領
特
域
Procedure
Procedure Flow Resource
Control Flow
Procedure Flow Operation Condition Resource
Operation
Procedure Flow Operation Condition Expression Resource
Condition
Procedure Flow Operation Condition Expression Resource
Expression
Procedure Flow Operation Condition Expression Query Resource
Query
Procedure Flow Operation Condition Expression Query Resource
Resource
Procedure Flow Operation Condition Expression Query Resource
Object
A
⽣成式
AI
UI
User
開發
⼯具
業務員
as
程式師
資料
邏輯
Agent
重新設計軟體開發⼯具
重新設計 Runtime
重新設計編程語⾔
重新設計資料庫管理系統
重新設計查詢語⾔
動態⽣成⽤⼾界⾯
為使⽤者意圖建模
⾃動⽣成系統調⽤
智慧代理⼈的設計
B
C
D
E
F
G
H
I
A
B
C
D
E
F
G
H
I
Event Sourcing
+
Associative Model of Data
DDL
Jerry ⽣⽇是 2004/3/17
Jerry 出⽣於 2004/3/17 Jerry 居住到 紐約
Jerry 地址是 紐約
Event Sourcing
Jerry 送給 Mary ⼀本書
Jerry 送出
Mary 收到
⼀本書 被送出
沒有受詞和補語
Associative Model of Data
增強版
語意
字典
中⽂
字典
英⽂
字典
函數 類型
基礎
指令
虛擬
指令
調⽤
簡單
事件
實體
時間
補充
複合
事件
值
監控
狀態
區域
變數
語意
關係
建議
屬性
A
⽣成式
AI
UI
User
開發
⼯具
業務員
as
程式師
資料
邏輯
Agent
重新設計軟體開發⼯具
重新設計 Runtime
重新設計編程語⾔
重新設計資料庫管理系統
重新設計查詢語⾔
動態⽣成⽤⼾界⾯
為使⽤者意圖建模
⾃動⽣成系統調⽤
智慧代理⼈的設計
B
C
D
E
F
G
H
I
A
B
C
D
E
F
G
H
I
DDL
DML
DQL
• 編製⼀張「查詢網」,內容有許多空缺
• 在「程式網」中尋找符合這張「查詢網」的空缺節點組合
• 如果沒有,或者有多個且只需要⼀個,可以向⽤⼾詢問
程式網 查詢網 答案
查詢網 寫入 程式網
A
⽣成式
AI
UI
User
開發
⼯具
業務員
as
程式師
資料
邏輯
Agent
重新設計軟體開發⼯具
重新設計 Runtime
重新設計編程語⾔
重新設計資料庫管理系統
重新設計查詢語⾔
動態⽣成⽤⼾界⾯
為使⽤者意圖建模
⾃動⽣成系統調⽤
智慧代理⼈的設計
B
C
D
E
F
G
H
I
A
B
C
D
E
F
G
H
I
• 編製⼀張「查詢網」,內容有許多空缺
• 在「程式網」中尋找符合這張「查詢網」的空缺節點組合
• 如果沒有,或者有多個且只需要⼀個,可以向⽤⼾詢問
設備網 查詢網 答案
A
⽣成式
AI
UI
User
開發
⼯具
業務員
as
程式師
資料
邏輯
Agent
重新設計軟體開發⼯具
重新設計 Runtime
重新設計編程語⾔
重新設計資料庫管理系統
重新設計查詢語⾔
動態⽣成⽤⼾界⾯
為使⽤者意圖建模
⾃動⽣成系統調⽤
智慧代理⼈的設計
B
C
D
E
F
G
H
I
A
B
C
D
E
F
G
H
I
Q
R
P
E
C
F
O
1: 事件
讓⽤⼾表達意圖 What,⽽非 How 的兩種⽅式
R
Q
R
P
E
C
F
O
2: 狀態
讓⽤⼾表達意圖 What,⽽非 How 的兩種⽅式
C
4 3
2
8
7
1
6
5
9
重要
緊急
A
⽣成式
AI
UI
User
開發
⼯具
業務員
as
程式師
資料
邏輯
Agent
重新設計軟體開發⼯具
重新設計 Runtime
重新設計編程語⾔
重新設計資料庫管理系統
重新設計查詢語⾔
動態⽣成⽤⼾界⾯
為使⽤者意圖建模
⾃動⽣成系統調⽤
智慧代理⼈的設計
B
C
D
E
F
G
H
I
A
B
C
D
E
F
G
H
I
• 繪製⼀張查詢網,內容有許多空缺
• 在程式網中尋找符合這張網的空缺節點組合
• 如果沒有,或者有多個且只需要⼀個,可以向⽤⼾詢問
• 如果⽤⼾不在,可以向⽤⼾的數位分⾝詢問
智慧代理⼈的作⽤
• ⼼智模型的表達⽅式
• 如何透過⽤⼾⾏為推測其⼼智,並更新到模型
• ⼼智模型如何接受提問,如何回答
關於應⽤⼼智模型的三個關鍵問題
新⽪質層的知識結構
• 建立⼀個節點,為其命名
• 選擇節點所使⽤的框架,⾄少⼀個
• 填寫框架所需要連結的節點
• 回到第⼀步驟
感到熟悉嗎?
預先建立許多
⼼智框架
根據⽤⼾的操作來決定是
否啟⽤某些⼼智框架
應⽤ 理想
⽤⼾
智慧代
理⼈
Agent 是⽤⼾的分⾝,要
盡量接近⽤⼾,⽽不是接
近應⽤或理想
回顧
願景
1. 編程⾨檻降低,任何⼈可以描述程式,避
免和程式設計師等⼈溝通的損耗
2. 根據使⽤者的意圖,系統能動態地組合基
礎功能,不需事先編寫應⽤
3. 根據執⾏過程的需要,系統能動態⽣成⽤
⼾界⾯,不需要事先編寫
4. 智慧代理⼈可以代替⽤⼾⾏事
My Long Journey
Since 2009
Robotics
OS
Chip
AIoT
Swarm Intelligence
VM
更
遠
的
未
來
twitter.com/CaiXueYong
LinkedIn.com/in/JerryTsai
JenniferLee520@outlook.com
今天我在 天瓏書局 展攤坐檯
Supplementary Materials
補充 1:⾃⾏定義框架
補充 2:分散式架構
補充 3:網路拓撲
補充 4:設備能⼒
補充 5:UI 設備選擇(環境、隱私、喜好)

Software Development via A.I.