diff --git a/README.md b/README.md index 7ce615e..738dd16 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ Mello 是企業 AI 採購的 orchestration(流程協調)平台,協助 AI A ## 核心功能 -- **採購申請與服務探索**:輸入目標企業、預算與補充需求,選擇是否需要發票、是否需要 Mello Registry 認證;建立申請後,按「開始探索」比較服務。 +- **採購申請與服務探索**:描述需求、設定預算並可附上文件,選擇是否需要發票、是否需要 Mello Registry 認證;建立申請後自動比對服務,不需再按探索。 - **人工選用與條件篩選**:勾選必要條件時,只顯示符合條件的服務;不限制時,列出服務並標示有無發票與有效認證。由使用者選用一個服務,再送出採購並開始付款。 - **企業付款控制**:檢查單筆/每日額度、供應商、網路與代幣限制,支援人工核准門檻、指定收款地址與凍結新付款。 - **付款、發票與對帳**:支援本機 Mock 與 Base Sepolia x402 測試網付款;串接交付結果、Demo 發票、對帳與稽核紀錄,發票失敗可獨立重試。 @@ -146,7 +146,7 @@ JS npm run db:prepare --workspace @mello/api ``` -此指令會套用 migrations、在空資料庫建立 Demo 公司/政策與 Seller A/B,並補上服務 C/D。既有公司與政策不會被初始化流程覆寫。四個服務共用兩個 Demo Seller,其中 B/C 支援 Demo 發票,A/D 不支援;初始化不會自動核發 Mello Registry 認證。 +此指令會套用 migrations、在空資料庫建立 Demo 公司/政策與兩個 Demo Seller,並登錄個股分析、總經分析、加密市場資訊與期貨分析四項服務。既有公司與政策不會被初始化流程覆寫。四個服務共用兩個 Demo Seller,其中總經分析與加密市場資訊支援 Demo 發票,個股分析與期貨分析不支援;初始化不會自動核發 Mello Registry 認證。 **5. 分別啟動後端與前端** @@ -169,7 +169,7 @@ npm run dev:docs **6. 體驗與驗證** -登入後新增申請,例如目標企業填「範例企業」、預算填 `0.10 USDC`。本機首次操作請保留「需要發票」,取消「需要 Mello Registry 認證」,再依序操作「建立申請 → 開始探索 → 選擇 B 或 C → 送出採購並開始付款」。預設會模擬第一次發票失敗,可在案件頁重試發票並查看對帳結果。若要驗證認證篩選,請依 [認證管理流程](docs/BAZAAR_IMPLEMENTATION.md)另行建立服務審查紀錄。 +登入後新增申請,例如需求說明填「我需要總經分析,關注亞洲市場利率與通膨」、預算填 `0.10 USDC`。本機首次操作請保留「需要發票」,取消「需要 Mello Registry 認證」,再依序操作「建立申請 → 等待服務比對 → 選擇總經分析 → 送出採購並開始付款」。預設會模擬第一次發票失敗,可在案件頁重試發票並查看對帳結果。若要驗證認證篩選,請依 [認證管理流程](docs/BAZAAR_IMPLEMENTATION.md)另行建立服務審查紀錄。 ```bash # 後端與 Sellers 啟動後,在另一個終端機檢查本機服務。 @@ -200,7 +200,7 @@ Base Sepolia 付款、鏈上存證、Bazaar 公開服務發現與 Railway 部署 ## 限制與未來工作 -- **服務與資料範圍**:目前支援 `credit_report`;報告由 Demo 程式產生,沒有串接真實徵信資料。後續擴充服務類型、供應商與真實資料來源。 +- **服務與資料範圍**:目前提供個股分析、總經分析、加密市場資訊與期貨分析四項 Demo 服務;報告由 Demo 程式產生,沒有串接真實市場資料。後續擴充服務類型、供應商與真實資料來源。 - **發票尚為 Demo**:目前使用 Mock adapter,未完成正式台灣電子發票介接;ECPay Stage 僅預留設定。後續串接開立、作廢與正式財務對帳流程。 - **認證需人工管理**:加入目錄與取得有效認證是不同狀態。認證包含審查範圍、服務綁定與期限,並非自動 KYB,也不保證正式發票能力;後續完善審查、續期與撤銷工具。 - **付款與權限範圍**:目前提供 Mock/Base Sepolia Test USDC,尚未提供主網付款;採單公司共用工作區權限,尚無多租戶、SSO 或完整職務分權。 diff --git a/apps/docs/public/diagrams/procurement-flow.png b/apps/docs/public/diagrams/procurement-flow.png new file mode 100644 index 0000000..677e075 Binary files /dev/null and b/apps/docs/public/diagrams/procurement-flow.png differ diff --git a/apps/docs/src/app/globals.css b/apps/docs/src/app/globals.css index 66bacd6..0d3438f 100644 --- a/apps/docs/src/app/globals.css +++ b/apps/docs/src/app/globals.css @@ -365,6 +365,22 @@ code { padding: 5px; font-weight: 400; } +.doc-figure { + margin: 22px 0; +} +.doc-figure img { + display: block; + width: 100%; + height: auto; + border: 1px solid #dbe2d3; + background: #fff; +} +.doc-figure figcaption { + margin-top: 10px; + font-size: 12px; + line-height: 1.7; + color: #7e897d; +} .mobile-doc-nav, .mobile-toc { display: none; diff --git a/apps/docs/src/content/documents.tsx b/apps/docs/src/content/documents.tsx index fe1aaf4..8c18e38 100644 --- a/apps/docs/src/content/documents.tsx +++ b/apps/docs/src/content/documents.tsx @@ -1,3 +1,4 @@ +import Image from "next/image"; import type { ReactNode } from "react"; export type Document = { @@ -22,16 +23,77 @@ export const documents: Document[] = [ content: ( <>
- 付款成功,不代表企業完成了一筆採購。財務仍需要知道買了什麼、為何選用這家供應商、誰的預算被使用,以及收到的服務與發票是否和付款一致。 + x402 讓服務可以直接透過 HTTP 收款,技術越來越完整,但企業仍然沒有入口:它解決了付款的程序,卻進不了現有的採購流程。付款成功不代表企業完成了一筆採購,財務仍需要知道買了什麼、為何選用這家供應商、誰的預算被使用,以及收到的服務與發票是否和付款一致。
- Mello 是企業的 Agent Purchase-to-Pay - 控制層:接收採購需求,以確定性政策約束執行,再把付款、交付、測試發票及對帳結果保存在同一個案件。 + Mello 讓企業的 AI Agent 只選擇驗證過的供應商,並把從找標的、確認報價、付款到產出發票與對帳的每一步留在同一個案件。它是企業的 Agent Purchase-to-Pay + 控制層:接收採購需求,以確定性政策約束執行,再把付款、交付、測試發票及對帳結果保存在一起。
+x402 解決付款。Mello 把帳做完。> ), }, + { + id: "flow", + title: "五個階段,Mello 補上什麼", + content: ( + <> +
+ 一筆企業採購會經過需求、選供應商、付款、發票與對帳五個階段。x402 涵蓋的是付款;其餘階段由 Mello 以工作區與後端政策接起來。 +
+| 階段 | +企業在意的事 | +Mello 提供 | +
|---|---|---|
| 需求 | +要發票、要認證、預算多少 | +需求說明與文件附加;統編、抬頭與成本中心沿用公司設定 | +
| 選供應商 | +比價與資格 | +Mello Registry 認證、政策白名單與額度檢核,由人選用 | +
| 付款 | +跨境、小額、按次 | +x402 付款;保存 EIP-3009(ERC-3009)授權憑證:限額、限收款地址、限時間 | +
| 發票 | +統編、台幣金額 | +帶公司抬頭與統編的測試發票,保存示範匯率與台幣等值 | +
| 對帳 | +入帳與稽核 | +付款、交付、發票三方比對,結果寫入稽核紀錄 | +
- 先從「採購操作」了解一筆案件的生命週期,再閱讀「政策與授權」及「付款、發票與對帳」。工程整合請看「系統架構」,能力邊界以「實作範圍」為準。 + 先從「採購操作」了解從公司設定到憑證的一筆案件生命週期,再閱讀「政策與授權」及「付款、發票與對帳」。工程整合請看「系統架構」,能力邊界以「實作範圍」為準。
本文件站是獨立的靜態說明,不讀取案件或付款資料,也不提供交易操作。 @@ -106,18 +168,32 @@ export const documents: Document[] = [ slug: "purchase-guide", group: "使用指南", title: "採購操作", - description: "從建立需求到查看憑證,每一筆申請都保留獨立案件編號。", + description: "從公司設定、建立需求到查看憑證,每一筆申請都保留獨立案件編號。", sections: [ + { + id: "setup", + title: "事前設定:公司、統編與政策", + content: ( + <> +
+ 在「設定」填寫公司法定名稱、統一編號、預設成本中心、財務 Email 與發票收件資訊。新採購會保存這份資料的快照,供開立測試發票與對帳使用;頁面同時顯示 Base Sepolia 測試網的 USDC 餘額。 +
++ 額度與供應商白名單屬於採購政策。「採購政策」頁顯示單筆與每日金額上限、發票要求與允許網路;「供應商」頁列出每項服務是否在政策白名單、是否有有效 Mello 認證與登錄的收款地址。這兩頁在工作區為唯讀,修改需透過後端受保護的管理操作;可操作的只有凍結或解除新付款。 +
+ > + ), + }, { id: "create", title: "建立採購申請", content: ( <>- 在「採購申請」選擇「新增採購申請」。在同一個需求區描述想找的服務,並可附上相關文件;不必指定企業。可搜尋個股分析、總經分析、加密市場資訊或期貨分析,每筆申請選用一項服務。 + 在「採購申請」選擇「新增採購申請」。在同一個需求區描述想找的服務,並可上傳相關文件(PDF、DOCX、TXT、MD);不必指定企業。可搜尋個股分析、總經分析、加密市場資訊或期貨分析,每筆申請選用一項服務。
- 預算、發票與認證條件分別設定,公司抬頭、統一編號與成本中心沿用公司設定。建立後會自動尋找服務,但不會立即付款。附件先隨案件保存,目前搜尋依據是文字需求。 + 預算上限、是否需要發票、是否需要 Mello Registry 認證分別設定,公司抬頭、統一編號與成本中心沿用公司設定。按「建立申請」後 Agent 會自動比對服務並列出建議,但不會付款。附件隨案件保存供下載;目前搜尋依據是文字需求說明,系統不解析文件內容。
- 建立申請後,案件會自動顯示服務比對結果。先選用服務,再按「送出採購並開始付款」;系統會重新核對報價、發票、認證與公司政策,通過後才執行付款。 + 建立申請後,案件會自動列出候選服務:服務與供應商名稱、報價、是否支援台灣發票(測試發票)、是否具有效 Mello Registry 認證,以及依公司政策的評估結果;來自 CDP Bazaar 公開目錄的候選也會標示認證狀態。由人確認供應商與報價後選用其中一項,再按「送出採購並開始付款」;系統會重新核對報價、發票、認證與公司政策,通過後才執行付款。
處理狀態由後端更新。可以離開頁面,之後由清單或同一案件網址繼續查看;重新整理不會建立新申請。 @@ -146,6 +222,16 @@ export const documents: Document[] = [ > ), }, + { + id: "execute", + title: "執行採購與付款", + content: ( +
+ 送出後,付款依 x402 協議進行:Agent 只在鏈下以 EIP-3009 簽署限定金額、收款地址與有效期間的授權,Seller 交由 + Facilitator 驗證並結算,Agent 不需持有 gas,也無法超出授權範圍支出。案件會依序顯示付款授權、結算、服務交付、測試發票與三方對帳的進度;憑證欄位說明見「付款、發票與對帳」。 +
+ ), + }, { id: "review", title: "查看處理依據", @@ -303,6 +389,11 @@ export const documents: Document[] = [ 授權與結算因此是兩份可以分別查核的證據:前者說明這筆支出當初被授權的範圍, 後者說明資金實際如何移轉。 ++ 對 Agent 而言,這份授權只限定一筆金額、一個收款地址與一段有效期間,並且只在鏈下簽署;Seller 將它交給 + Facilitator 驗證與結算,Agent 不需持有 gas,也不可能超出授權範圍支出。流程圖與影片講稿稱它為 + ERC-3009,與文件中的 EIP-3009 是同一份規格。 +
SETTLED 代表 Provider 已確認結算;若模式為
mock,它只是模擬結算,不是鏈上資金移轉。
@@ -339,6 +430,10 @@ export const documents: Document[] = [
產生測試發票。不得宣稱已向財政部開立有效發票,也不能當作正式報稅憑證。
+ 測試發票帶入建立採購當時的公司抬頭與統一編號快照,並以結算的 USDC 金額換算新台幣等值。匯率取自後端設定的示範匯率(
+ DEMO_TWD_PER_USDC,預設 32.0),不是即時牌告匯率;匯率與台幣金額保存在發票紀錄,目前工作區畫面只顯示 USDC 金額。
+
發票號碼及狀態保存於採購。若狀態為可重試,使用「重試取得發票」只重跑發票工作,不重新發動採購付款。
@@ -350,6 +445,9 @@ export const documents: Document[] = [ title: "對帳與歸檔", content: ( <> ++ 對帳把付款結算、服務交付與發票視為三份獨立證據,比對付款識別碼、金額、收款方、代幣、網路與結算交易。比對項目與結果保存於對帳紀錄;對帳完成或不一致都會寫入稽核紀錄,可在「稽核紀錄」頁查閱。 +
MATCHED 表示付款、服務與發票經核對一致;
MISMATCH 表示存在差異,需要查看原始證據。
@@ -507,8 +605,9 @@ export const documents: Document[] = [
title: "已接通的產品流程",
content: (