概述
安裝
內容詳情
替代品
什麼是AIFP?
AIFP(AI Functional Procedural)是一種專為AI-人類協作優化的編程範式,結合了純函數式編程原則、過程化執行模式和數據庫驅動的項目管理。它讓AI助手能夠像人類開發者一樣,在項目中保持持久記憶、遵循編碼規範並管理開發進度。如何使用AIFP?
AIFP通過MCP協議與AI助手(如Claude、GPT-4等)集成。安裝AIFP MCP服務器後,AI助手會自動調用AIFP工具來管理項目狀態、跟蹤代碼結構、執行純函數式編程規則,並提供跨會話的持久化記憶。適用場景
AIFP特別適合需要AI長期協作的軟件開發項目,包括: • 由AI主導或輔助的代碼庫開發 • 需要保持編碼風格一致性的團隊項目 • 跨多個會話的長期開發任務 • 純函數式編程項目 • 自動化代碼生成和維護主要功能
如何使用
使用案例
常見問題
相關資源
安裝
{
"mcpServers": {
"aifp": {
"command": "python3",
"args": ["-m", "aifp"],
"env": {}
}
}
}
{
"mcpServers": {
"aifp": {
"command": "python3",
"args": ["-m", "aifp"],
"env": {
"PYTHONPATH": "/path/to/parent-of-aifp-folder"
}
}
}
}
{
"mcpServers": {
"aifp": {
"command": "/path/to/venv/bin/python3",
"args": ["-m", "aifp"],
"env": {}
}
}
}🚀 AIFP:AI 函數式過程編程
AIFP 是一種與語言無關的編程範式,專為 AI 生成和維護的代碼庫而設計。它結合了純函數式編程原則、過程式執行模式、數據庫驅動的項目管理以及基於指令的 AI 指導,旨在優化 AI 與人類的協作。
🚀 快速開始
前提條件
- Python 3.11+(代碼中使用了類型提示語法,因此需要此版本)
安裝
方法 1:pip 安裝(推薦)
pip install aifp
此方法將安裝 MCP 服務器,並使 aifp 命令可用。AIFP 僅需要一個外部依賴(watchdog 用於文件系統監控),JSON-RPC 服務器本身是純 Python 標準庫。
方法 2:手動安裝(從 GitHub 下載)
- 下載 倉庫(通過 zip 下載或
git clone) - 定位
src/aifp/文件夾,這是完整的 MCP 服務器包 - 複製
aifp/文件夾到你存放 MCP 服務器的位置:
# 示例:複製到你的 MCP 服務器目錄
cp -r src/aifp/ ~/mcp-servers/aifp/
唯一的運行時依賴(watchdog)會自動安裝。aifp/ 文件夾包含服務器所需的所有內容:輔助函數、指令、數據庫模式和預填充的 aifp_core.db。
將系統提示添加到你的 AI 客戶端
此步驟是必需的。系統提示會告訴 AI 主動使用 AIFP 工具。如果沒有它,MCP 服務器只是一組被動工具,不會被調用。
在終端中打印系統提示,然後將其複製粘貼到你的 AI 客戶端:
python3 -m aifp --system-prompt
系統提示隨包一起提供,無需單獨的文件或下載。此方法適用於所有安裝方式(pip、虛擬環境、手動安裝)。
粘貼位置(取決於你的 AI 客戶端):
| AI 客戶端 | 添加系統提示的位置 |
|---|---|
| Claude 桌面版 | 設置 → 自定義指令 |
| Claude 代碼版 | 在項目根目錄的 CLAUDE.md 中添加 |
| 其他 MCP 客戶端 | 系統提示 / 自定義指令字段 |
配置你的 AI 客戶端
在你的 AI 客戶端配置中註冊 AIFP MCP 服務器。服務器使用 標準輸入輸出傳輸,它從標準輸入讀取 JSON-RPC 消息,並將響應寫入標準輸出。
Claude 桌面版
編輯 claude_desktop_config.json:
{
"mcpServers": {
"aifp": {
"command": "python3",
"args": ["-m", "aifp"],
"env": {}
}
}
}
如果你使用 方法 2(手動安裝),將 aifp/ 文件夾的父目錄添加到 PYTHONPATH,以便 Python 可以找到它:
{
"mcpServers": {
"aifp": {
"command": "python3",
"args": ["-m", "aifp"],
"env": {
"PYTHONPATH": "/path/to/parent-of-aifp-folder"
}
}
}
}
例如,如果你將 aifp/ 複製到 ~/mcp-servers/aifp/,則將 PYTHONPATH 設置為 ~/mcp-servers。
如果你安裝到 虛擬環境 中,使用虛擬環境的 Python 完整路徑,以便 Claude 桌面版使用正確的解釋器:
{
"mcpServers": {
"aifp": {
"command": "/path/to/venv/bin/python3",
"args": ["-m", "aifp"],
"env": {}
}
}
}
Claude 代碼版
使用 claude mcp add 註冊服務器。在你希望 AIFP 管理的項目文件夾內運行此命令。
首先選擇作用域。AIFP 強制執行嚴格的函數式編程,並主動拒絕面向對象編程的代碼庫。如果你處理其他使用面向對象編程或不需要 AIFP 的項目,請避免使用 --scope user,因為它會在你打開的每個項目中啟用服務器。
| 作用域 | 效果 | 適用場景 |
|---|---|---|
--scope project(推薦) |
在當前目錄創建 .mcp.json,可通過 git 共享。 |
團隊和按項目控制 |
--scope local |
存儲在 ~/.claude.json 中,以當前目錄為鍵,私有。 |
個人按項目使用 |
--scope user |
在你打開的每個項目中可用。 | 所有項目都使用 AIFP 的開發者 |
pip 安裝(系統級):
claude mcp add --transport stdio --scope project aifp -- python3 -m aifp
pip 安裝(虛擬環境) — 使用虛擬環境的 Python 路徑:
claude mcp add --transport stdio --scope project aifp -- /path/to/venv/bin/python3 -m aifp
單純的 python3 會解析為系統 Python,可能沒有安裝該包。使用虛擬環境解釋器的完整路徑,以便 MCP 服務器子進程找到安裝的包。
手動安裝或從源代碼運行 — 將 PYTHONPATH 設置為 aifp/ 文件夾的父目錄:
claude mcp add --transport stdio --scope project --env PYTHONPATH=/path/to/parent-of-aifp aifp -- python3 -m aifp
快速參考:
| 安裝方法 | Claude 代碼命令 |
|---|---|
pip install aifp(系統級) |
-- python3 -m aifp |
pip install aifp(虛擬環境) |
-- /path/to/venv/bin/python3 -m aifp |
| 手動文件夾 / 從源代碼 | --env PYTHONPATH=/parent/of/aifp -- python3 -m aifp |
注意:所有標誌(
--transport、--scope、--env)必須在服務器名稱之前。--用於分隔名稱和命令。在 Claude 代碼中使用/mcp驗證服務器是否已連接。
Claude 代碼版:預批准所有 AIFP 工具(可選)
Claude 代碼在首次調用每個新 MCP 工具時會提示你批准。由於有 207 個工具,這意味著會有 207 個批准提示。為了跳過此步驟,將預構建的權限文件複製到項目的 .claude/ 文件夾中:
# 如果項目根目錄中沒有 .claude/ 文件夾,則創建它
mkdir -p /path/to/your/project/.claude
# 複製權限文件
cp documentation/settings.local.json /path/to/your/project/.claude/
這會在項目的 .claude/ 文件夾中放置一個 settings.local.json 文件,該文件會預允許所有 AIFP 工具。Claude 代碼會自動讀取該文件,無需批准提示。
注意:該文件還包括
enableAllProjectMcpServers和enabledMcpjsonServers設置,因此如果你在項目中有.mcp.json文件,AIFP 服務器會自動啟動。
其他 MCP 客戶端
服務器使用 標準輸入輸出傳輸。將你的客戶端指向 python3 -m aifp(或虛擬環境的 Python 完整路徑)。對於手動安裝,確保 PYTHONPATH 包含 aifp/ 文件夾的父目錄。無需 API 密鑰或身份驗證。
工作原理
服務器使用模型上下文協議通過標準輸入輸出進行通信。它相對於自身安裝位置解析 aifp_core.db(指令數據庫),無需環境變量。
連接後,AI 在每次交互時調用 aifp_run()(由系統提示引導)。項目狀態存儲在工作目錄的 .aifp-project/ 中,在初始化項目時會自動創建。
項目初始化
告訴你的 AI 助手:
"為我的項目初始化 AIFP"
AI 調用 aifp_init,在項目根目錄創建一個 .aifp-project/ 文件夾,其中包含用於項目狀態跟蹤、用戶偏好的數據庫和一個項目藍圖文檔。你無需與這些文件交互,MCP 服務器會自動管理它們。
✨ 主要特性
- 全面的 MCP 工具:為 4 個 SQLite 數據庫提供完整的 CRUD 操作,涵蓋項目管理、FP 指令、用戶偏好和自定義自動化指令。
- 純函數式強制:AI 默認編寫符合 FP 的代碼(純函數、不可變性、無 OOP)。
- 數據庫驅動的持久內存:項目狀態在會話間保持,無上下文丟失。
- 基於指令的工作流:採用確定性的主幹 → 分支 → 回退執行模式。
- 有限的完成路徑:項目有定義好的階段、里程碑和任務,工作朝著完成收斂。
- 兩種用例:常規軟件開發(用例 1)或自定義指令自動化(用例 2)。
- 用戶偏好學習:AI 通過每個指令的鍵值覆蓋適應編碼風格。
- Git 集成:基於 FP 的分支管理和衝突解決。
- 最小依賴:一個運行時包(
watchdog),自定義 JSON-RPC 服務器僅使用標準庫。 - 成本意識設計:所有跟蹤/分析功能默認禁用。
📦 安裝指南
前提條件
- Python 3.11+(代碼中使用了類型提示語法,因此需要此版本)
安裝
方法 1:pip 安裝(推薦)
pip install aifp
此方法將安裝 MCP 服務器,並使 aifp 命令可用。AIFP 僅需要一個外部依賴(watchdog 用於文件系統監控),JSON-RPC 服務器本身是純 Python 標準庫。
方法 2:手動安裝(從 GitHub 下載)
- 下載 倉庫(通過 zip 下載或
git clone) - 定位
src/aifp/文件夾,這是完整的 MCP 服務器包 - 複製
aifp/文件夾到你存放 MCP 服務器的位置:
# 示例:複製到你的 MCP 服務器目錄
cp -r src/aifp/ ~/mcp-servers/aifp/
唯一的運行時依賴(watchdog)會自動安裝。aifp/ 文件夾包含服務器所需的所有內容:輔助函數、指令、數據庫模式和預填充的 aifp_core.db。
💻 使用示例
示例 1:項目初始化
用戶提示:"幫我構建一個計算器"
工具調用:
1. aifp_run(is_new_session=true)
→ 返回:會話包(指令名稱、設置、項目狀態、支持性上下文)
→ 狀態顯示:.aifp-project/ 缺失 — 未初始化
2. aifp_init(project_root="/home/user/calculator")
→ 返回:{ success: true, message: "項目已初始化" }
發生的事情:
- AI 檢測到項目不存在,自動調用
aifp_init輔助函數 - 創建
.aifp-project/目錄,包含project.db、user_preferences.db和ProjectBlueprint.md - 註冊項目元數據(名稱、根路徑、基礎設施)
- 插入默認用戶設置和備份配置
- AI 進入階段 2:與用戶討論項目形態(基礎設施、目的、目標)
- 路由到
project_discovery進行協作規劃(主題、流程、完成路徑、里程碑)
示例 2:編寫符合 FP 的代碼
用戶提示:"編寫一個 multiply_matrices 函數"
工具調用:
1. aifp_run(is_new_session=false)
→ 返回:輕量級指導
2. reserve_file(project_root="/home/user/calculator", name="matrix_operations", ...)
→ 返回:{ success: true, data: { id: 42 } }
3. reserve_function(project_root="/home/user/calculator", name="multiply_matrices", file_id=42, ...)
→ 返回:{ success: true, data: { id: 99 } }
(AI 將符合 FP 的代碼寫入 src/matrix_operations_id_42.py)
4. finalize_file(project_root="/home/user/calculator", file_id=42, path="src/matrix_operations_id_42.py", ...)
→ 返回:{ success: true }
5. finalize_function(project_root="/home/user/calculator", function_id=99, line_start=5, line_end=25, ...)
→ 返回:{ success: true }
發生的事情:
- 在寫入之前,文件和函數在
project.db中預留(ID 嵌入名稱中) - AI 按照 FP 基線編寫純函數代碼(無 OOP、無突變、顯式參數)
- 文件和函數使用行號和元數據完成
- 項目數據庫現在跟蹤代碼結構,以便在未來會話中即時檢索
示例 3:恢復工作 / 檢查狀態
用戶提示:"我們進展到哪裡了?" 或 "繼續工作"
工具調用:
1. aifp_run(is_new_session=false)
→ 返回:指導 + 常見起點
(AI 從緩存上下文回答 — 除非上下文過期,否則無需額外的數據庫調用)
2. aifp_status(project_root="/home/user/calculator", type="detailed")
→ 返回:項目元數據、活動里程碑、當前任務、最近的筆記、警告
發生的事情:
- AI 展示當前里程碑、活動任務和下一步步驟
- 如果
project_continue_on_start=true,AI 自動開始下一個任務 - 無需重新解析源代碼 — 所有內容都在
project.db中索引
📚 詳細文檔
指令參考
所有指令文檔隨包一起提供,位於 src/aifp/reference/directives/,共 129 個 MD 文件,涵蓋每個指令。每個文件包括:目的、應用時機、完整工作流(主幹 → 分支)、合規/不合規示例、邊緣情況、相關指令、使用的輔助函數和數據庫操作。
數據庫模式
模式 SQL 文件位於包中的 src/aifp/database/schemas/:
aifp_core.sql— 全局只讀數據庫(指令、輔助函數、流程)project.sql— 每個項目的可變數據庫(文件、函數、任務、里程碑)user_preferences.sql— 每個項目的用戶自定義數據庫user_directives.sql— 每個項目的自動化指令(僅用例 2)
🔧 技術細節
核心原則
1. 函數式 - 過程式混合
# ✅ 符合 AIFP
def calculate_total(items: List[Item]) -> float:
"""純函數:確定性,無副作用"""
return reduce(lambda acc, item: acc + item.price, items, 0.0)
# ❌ 不符合 AIFP
class Calculator:
def __init__(self):
self.total = 0 # 隱藏狀態
def add_item(self, item):
self.total += item.price # 突變
2. 數據庫索引邏輯
每個函數、文件和依賴項都在 SQLite 中跟蹤。AI 通過輔助工具訪問這些數據,而不是原始 SQL:
AI 調用:get_functions_by_file(project_root, file_id)
→ 返回:該文件中的所有函數,包括名稱、用途、行號、依賴項
無需重新解析源代碼。跨會話即時檢索上下文。
3. AI 可讀代碼
- 扁平結構:無深層繼承層次結構
- 顯式依賴:所有參數顯式傳遞
- 純函數:相同輸入 → 相同輸出
- 元數據註釋:機器可讀的函數頭
4. 有限完成路徑
項目:MatrixCalculator
├── 完成路徑(3 個階段)
│ ├── 1. 設置(已完成)
│ ├── 2. 核心開發(進行中)
│ │ ├── 里程碑:矩陣運算
│ │ │ ├── 任務:實現乘法
│ │ │ ├── 任務:實現轉置
│ │ │ └── 任務:添加驗證
│ │ └── 里程碑:向量運算
│ └── 3. 最終確定(待完成)
5. 與語言無關
AIFP 適用於 Python、JavaScript、TypeScript、Rust、Go 等。FP 指令適應特定語言的語法,同時保持通用標準。
架構概述
┌─────────────────────────────────────────────────────┐
│ AI 助手(Claude、GPT - 4 等) │
│ - 接收自然語言命令 │
│ - 遵循指令(FP 基線 + 項目管理) │
│ - 調用 MCP 工具讀寫數據庫 │
│ - 生成符合 FP 的代碼 │
└────────────────────┬────────────────────────────────┘
│ MCP 協議(通過標準輸入輸出的 JSON - RPC)
┌────────────────────▼────────────────────────────────┐
│ MCP 服務器 │
│ - 通過 JSON - RPC 公開輔助工具 │
│ - 管理四個數據庫連接 │
│ - 為所有數據庫提供 CRUD 輔助函數 │
│ - 無業務邏輯 — AI 做出所有決策 │
└───┬────────────────────┬─────────────────────────┬──┘
│ │ │
┌───▼──────────────┐ ┌───▼────────────────┐ ┌─────▼─────────────────┐ ┌──────▼────────────────┐
│ aifp_core.db │ │ project.db │ │ user_preferences.db │ │ user_directives.db │
│ (全局,只讀) │ │ (每個項目,可變) │ │ (每個項目,可變) │ │ (每個項目,可選) │
│ │ │ │ │ │ │ │
│ - FP 指令 │ │ - 項目元數據 │ │ - 指令偏好 │ │ - 用戶指令 │
│ - 項目管理 │ │ - 文件和函數 │ │ - 用戶設置 │ │ - 執行統計 │
│ - 用戶偏好 │ │ - 任務層次結構 │ │ - AI 學習日誌 │ │ - 依賴項 │
│ - 用戶系統 │ │ - 主題和流程 │ │ - 跟蹤功能 │ │ - 生成的代碼引用 │
│ - 輔助定義 │ │ - 完成路徑 │ │ (所有可選) │ │ - 源文件跟蹤 │
│ - 指令流 │ │ - 運行時筆記 │ │ │ │ (文件中的日誌) │
└──────────────────┘ └────────────────────┘ └───────────────────────┘ └───────────────────────┘
數據庫架構
aifp_core.db(全局,只讀)
位置:在 MCP 服務器安裝目錄內(用戶定義的位置,在 AI 客戶端中配置)
目的:包含所有 AIFP 標準、指令和輔助定義的不可變知識庫。
關鍵表:
directives:所有 FP、項目和用戶偏好指令(工作流、關鍵字、閾值)helper_functions:數據庫、文件、Git 和 FP 實用程序,組織在多個註冊表文件中directive_helpers:多對多關聯表,將指令映射到其輔助函數,幷包含執行元數據directives_interactions:跨指令關係和依賴項categories:指令分組(純度、不可變性、任務管理等)tools:MCP 工具定義
輔助 - 指令關係(v1.4 新增):
- 一個指令可以使用多個輔助函數,一個輔助函數可以為多個指令服務
- 關聯表存儲:執行上下文、順序、參數映射
- 實現靈活的輔助函數重用和清晰的執行流程
- 在
aifp_core.db的directive_helpers關聯表中定義
輔助函數分類:
- 工具:所有輔助函數都作為 MCP 工具公開(AI 通過 MCP 直接調用)
- 子輔助函數 (
is_sub_helper = TRUE):僅由其他輔助函數調用的內部實用程序(不向 AI 公開)
輔助函數註冊表(開發階段):
- 開發期間,輔助函數定義保存在
docs/helpers/json/*.json中 - 開發人員修改 JSON 文件,完成後導入數據庫
- 每個輔助函數包括
used_by_directives字段用於關係映射 - 數據庫導入腳本在發佈前從 JSON 文件填充
aifp_core.db - 生產環境:用戶查詢
aifp_core.db(預填充),而不是 JSON 文件 - JSON 文件是僅用於開發的臨時區域,不會隨包一起發佈
只讀原則:此數據庫在部署後進行版本控制且不可變。AI 從中讀取但從不修改。
project.db(每個項目,可變)
位置:<project - root>/.aifp - project/project.db
目的:單個 AIFP 項目的持久狀態。跟蹤代碼結構、任務和運行時筆記。
關鍵表:
project:高級元數據(名稱、目的、目標、狀態、用戶指令狀態、最後已知的 Git 哈希)files、functions、interactions:代碼結構跟蹤themes、flows:組織分組completion_path、milestones、tasks、subtasks、sidequests:分層路線圖notes:帶有可選指令上下文的運行時日誌(源、嚴重性、指令名稱)types:代數數據類型(ADTs)infrastructure:項目設置(語言、包、測試)work_branches:Git 協作元數據(用戶、目的、合併策略)merge_history:基於 FP 的合併衝突解決審計跟蹤
用戶指令集成:project.user_directives_status 字段跟蹤用戶指令是否初始化(NULL/進行中/活動/禁用),允許 aifp_run 和 aifp_status 指令在活動時包含用戶指令上下文。
增強的筆記:notes 表現在包括 source(用戶/AI/指令)、directive_name(可選上下文)和 severity(信息/警告/錯誤),以提高可追溯性。
user_preferences.db(每個項目,可變)
位置:<project - root>/.aifp - project/user_preferences.db
目的:用戶特定的 AI 行為自定義和可選跟蹤功能。
關鍵表:
directive_preferences:每個指令的行為覆蓋(原子鍵值結構)user_settings:項目範圍的 AI 行為設置tracking_settings:可選跟蹤的功能標誌(默認全部禁用)ai_interaction_log:用戶更正和學習數據(可選)fp_flow_tracking:FP 合規歷史(可選)issue_reports:上下文相關的錯誤報告(可選)
成本管理原則:所有跟蹤功能默認禁用,以最小化 API 令牌使用。項目工作應具有成本效益;調試和分析是可選的。
用戶自定義示例:
-- 用戶說:"始終添加文檔字符串"
INSERT INTO directive_preferences (directive_name, preference_key, preference_value)
VALUES ('project_file_write', 'always_add_docstrings', 'true');
-- 下次文件寫入將自動包含文檔字符串
user_directives.db(每個項目,可選)
位置:<project - root>/.aifp - project/user_directives.db
目的:存儲用戶定義的特定領域指令,用於自動化(家庭自動化、雲基礎設施等)。當此數據庫存在時,AIFP 項目專門用於構建和管理從這些指令生成的自動化代碼庫。
此數據庫僅存在於 用例 2:自定義指令自動化 項目中。在常規軟件開發項目中,不會創建此數據庫。
關鍵表:
user_directives:指令定義(觸發器、操作、狀態、驗證配置)directive_executions:執行統計(僅摘要,詳細日誌在文件中)directive_dependencies:所需的包、API、環境變量directive_implementations:將指令鏈接到生成的代碼文件helper_functions:AI 生成的輔助函數(特定項目的實現實用程序)directive_helpers:多對多關聯表,將用戶指令映射到其輔助函數source_files:跟蹤用戶指令源文件(YAML/JSON/TXT)logging_config:基於文件的日誌配置
輔助函數(v1.0 新增):
- AI 為用戶指令生成特定項目的輔助函數
- 跟蹤實現狀態:未實現 → 生成 → 測試 → 批准
- 對所有生成的代碼強制執行 FP 合規性(純函數)
- 與
aifp_core.db採用相同的多對多關係模式
基於文件的日誌記錄原則:數據庫僅存儲狀態和統計信息。詳細的執行日誌(30 天保留)和錯誤日誌(90 天保留)存儲在 .aifp - project/logs/ 的輪轉文件中。
目錄結構比較:
# 用例 1:常規軟件開發
my - web - app/
├── src/ # 你的應用程序代碼
├── tests/ # 你的測試
└── .aifp - project/ # AIFP 跟蹤你的應用程序
├── project.db
└── user_preferences.db
# 用例 2:自定義指令自動化
home - automation/
├── directives/ # ← 用戶在此編寫指令文件
│ ├── lights.yaml
│ └── security.yaml
├── src/ # ← AIFP 生成此代碼
│ ├── lights_controller.py
│ └── security_monitor.py
├── tests/ # ← AIFP 生成測試
└── .aifp - project/ # ← 僅由 AI 管理,用戶從不觸碰
├── project.db # 跟蹤生成的 src/ 代碼
├── user_preferences.db
├── user_directives.db # 引用 ../directives/ 文件
└── logs/ # 30/90 天執行日誌
示例工作流(自動化項目):
- 用戶在項目中創建
directives/lights.yaml - 用戶告訴 AI:"解析我在 directives/lights.yaml 的指令文件"
- AI 通過交互式問答解析並驗證
- AI 在
src/中生成符合 FP 的實現代碼 - AI 在
project.db中跟蹤生成的代碼(文件、函數、任務) - 指令通過後臺服務即時執行
- 執行日誌記錄到
.aifp - project/logs/,統計信息記錄到數據庫
注意:用戶指令文件保留在用戶項目中。.aifp - project/ 是 AI 管理的元數據。
工作原理
1. AIFP MCP 網關模式
aifp_run 命令作為 網關和提醒,而不是執行器。它告訴 AI 應該應用 AIFP 指令。
每次 aifp_run 調用返回:
{
"success": true,
"message": "AIFP MCP 可用",
"guidance": {
"directive_access": "從會話包中緩存指令名稱。需要時按名稱查詢特定指令。",
"when_to_use": "在編碼或需要項目管理操作/響應時使用 AIFP 指令。",
"assumption": "除非用戶明確拒絕,否則始終假設 AIFP 適用。"
}
}
MCP 服務器為所有數據庫操作公開 CRUD 輔助函數 — 跟蹤文件、函數、任務、項目狀態、用戶偏好和(對於用例 2)自動化指令。AI 在運行時從數據庫中發現可用的輔助函數。
AI 決策流程:
- 用戶在請求前加上
aifp run(或 AI 假設) - AI 調用
aifp_run工具 → 接收指導 - AI 評估:這是編碼還是項目管理?
- 如果是:檢查指令是否在內存中
- 沒有指令? → 調用
get_all_directives() - 有指令? → 應用適當的指令
- 沒有指令? → 調用
- 如果不是:不使用指令進行響應
2. 命令流程示例
用戶:"幫我構建一個計算器"
AI 處理:
- 調用
aifp_run(is_new_session=true)→ 接收會話包(指令名稱、項目狀態、設置、支持性上下文) - 從包中檢查項目狀態:
.aifp - project/缺失 → 項目未初始化 - 調用
aifp_init輔助函數(階段 1:機械設置)- 以編程方式創建
.aifp - project/目錄、數據庫、藍圖模板
- 以編程方式創建
- 進入階段 2(智能填充):檢測語言/工具,與用戶討論項目
- 路由到
project_discovery:與用戶協作確定藍圖、主題、流程、完成路徑、里程碑 - 發現完成 → 路由到
aifp_status→project_progression→ 創建第一個任務 - 開始工作
3. 自我評估框架
在行動之前,AI 使用指令提供的問題進行自我評估:
核心問題:
-
這是否涉及編碼或項目狀態更改?
- 編碼和項目管理是統一的 — 編寫代碼會自動觸發文件跟蹤、數據庫更新和任務進度
- FP 基線始終作為強制編碼風格處於活動狀態
- 項目指令處理跟蹤方面(文件寫入、數據庫更新、任務管理)
-
我是否在內存中有指令?
- 否:通過
aifp_run(is_new_session=true)從會話包中加載 - 是:使用緩存的指令繼續
- 否:通過
-
哪些指令適用?
- FP 基線:強制編碼風格(純函數、不可變性、無 OOP) — 自然應用,不作為指令調用
- FP 指令:僅作為參考文檔 — 在不確定複雜場景時查閱
- 項目指令:文件寫入、數據庫更新、任務管理
-
是否需要行動 - 反應?
- 代碼寫入 →
project_file_write指令 → 數據庫更新 - 文件編輯 → 數據庫同步
- 帶有決策的討論 → 數據庫更新
- 代碼寫入 →
示例流程(編碼任務):
用戶:"編寫 multiply_matrices 函數"
AI 思考:
✓ FP 基線適用(編寫純、不可變、無 OOP 的代碼)
✓ 項目跟蹤適用(`project_file_write` 指令)
✓ 我在內存中有指令
AI 執行:
1. 自然地編寫遵循 FP 基線的函數
2. 應用 `project_file_write` 指令
3. 更新 `project.db`(文件、函數、交互)
4. 指令執行
指令遵循 主幹 → 分支 → 回退 模式:
{
"trunk": "analyze_function",
"branches": [
{"if": "pure_function", "then": "mark_compliant"},
{"if": "mutation_detected", "then": "refactor_to_pure"},
{"if": "low_confidence", "then": "prompt_user"},
{"fallback": "prompt_user"}
]
}
項目生命週期
graph TD
A[aifp_init] --> B[project_discovery]
B --> C[project_progression]
C --> D[project_file_write]
D --> E[project_update_db]
E --> F{所有項目完成?}
F -->|否| D
F -->|是| G[project_task_complete]
G --> H{所有任務完成?}
H -->|否| C
H -->|是| I[project_milestone_complete]
I --> J{所有里程碑完成?}
J -->|否| C
J -->|是| K[project_completion_check]
K --> L[project_archive]
📄 許可證
本項目採用 MIT 許可證,詳情請見 LICENSE。
替代品













