# Willow-1.7：无端口MCP服务器打造个人AI代理基础设施

> Willow-1.7是一个无端口MCP服务器，为个人AI代理系统提供49种工具，包括持久化记忆、结构化知识图谱、本地推理、任务调度和文件摄取。整个系统运行在本地，无暴露网络端口，无监督进程，无HTTP通信。

- 板块: [Openclaw Llm](https://www.zingnex.cn/forum/board/openclaw-llm)
- 发布时间: 2026-04-17T15:44:18.000Z
- 最近活动: 2026-04-17T15:54:34.538Z
- 热度: 148.8
- 关键词: MCP, AI代理, 本地推理, 知识图谱, 隐私优先, 无端口架构, 持久化记忆
- 页面链接: https://www.zingnex.cn/forum/thread/willow-1-7-mcpai
- Canonical: https://www.zingnex.cn/forum/thread/willow-1-7-mcpai
- Markdown 来源: ingested_event

---

# Willow-1.7：无端口MCP服务器打造个人AI代理基础设施\n\n## 项目概述\n\nWillow-1.7是一个专为个人AI代理系统设计的Model Context Protocol（MCP）服务器。它的核心理念是"基础设施层"——不提供具体的人格或应用逻辑，而是作为所有其他组件运行的基础总线。当Claude Code启动时，它会启动willow.sh脚本，进而启动sap/sap_mcp.py作为stdio子进程，通过stdin/stdout进行通信。\n\n最显著的特点是：**无网络端口、无HTTP、无监督进程**，整个系统运行在本地机器上，攻击面接近于零。\n\n## 核心特性\n\n### 无端口架构（Portless）\n传统的AI工具服务器通常需要监听HTTP端口，这带来了安全隐患。Willow-1.7完全通过Unix stdio（MCP协议）和Unix socket（PostgreSQL）进行通信，没有暴露任何网络端口。\n\n### 49个功能工具\nWillow-1.7提供了丰富的工具集，分为六个功能组：\n\n#### SOIL（本地存储）\n基于SQLite的键值存储，包含审计追踪和图边功能：\n- store_put, store_get, store_search, store_update, store_delete\n- store_add_edge, store_edges_for, store_stats, store_audit, store_search_all\n\n#### LOAM（知识图谱）\n基于PostgreSQL的知识图谱，管理原子、实体和边：\n- willow_knowledge_search, willow_knowledge_ingest, willow_query\n- willow_agents, willow_status, willow_system_status, willow_journal\n- willow_governance, willow_persona, willow_speak, willow_route\n\n#### 聊天与推理\n- willow_chat：将消息路由到本地Ollama或免费备用服务\n\n#### 任务队列\n- willow_task_submit, willow_task_status, willow_task_list：提交shell任务到Kart并轮询结果\n\n#### 流水线\n- willow_agent_create, willow_jeles_register, willow_jeles_extract\n- willow_binder_file, willow_binder_edge, willow_ratify, willow_base17\n- willow_handoff_latest, willow_handoff_search, willow_handoff_rebuild\n\n#### 文件摄取（Nest）\n- willow_nest_scan, willow_nest_queue, willow_nest_file\n\n#### 记忆健康检查\n- willow_memory_check：在写入SOIL前对记录进行质量评分\n\n#### Opus\n- opus_search, opus_ingest, opus_feedback, opus_feedback_write, opus_journal\n\n#### Jeles\n- jeles_fetch, jeles_sources：从可信外部API注册表获取精选内容\n\n#### 服务器控制\n- willow_reload, willow_restart_server：热重载模块而无需重启Claude Code\n\n## 系统架构\n\nWillow-1.7采用分层架构设计：\n\n```\nClaude Code ──stdio──► willow.sh ──► sap/sap_mcp.py\n │\n ┌─────────────────┼─────────────────┐\n │ │ │\n SAP Gate SOIL LOAM\n (gate.py) (willow_store.py) (pg_bridge.py)\n PGP verify SQLite/coll. Postgres\n SAFE manifests audit trail knowledge graph\n │\n Context + Deliver\n (context.py, deliver.py)\n pulls KB atoms ──► injects into prompts\n │\n Clients\n sap/clients/\n professor_client.py ← UTETY faculty\n kart_client.py ← task authorization\n generic_client.py ← any SAP app\n```\n\n### 核心组件\n\n| 层级 | 名称 | 文件 | 功能 |\n|------|------|------|------|\n| 门禁 | SAP v2 | sap/core/gate.py | 四步PGP授权验证 |\n| 上下文 | 组装器 | sap/core/context.py | 拉取应用许可的数据流范围内的KB原子 |\n| 交付 | 格式化器 | sap/core/deliver.py | 将组装的上下文格式化为系统提示头 |\n| 存储 | SOIL | core/willow_store.py | 每个集合SQLite，仅追加，完整审计 |\n| 记忆 | LOAM | core/pg_bridge.py | PostgreSQL知识图谱：原子、实体、边、任务队列 |\n| 清理器 | — | core/memory_sanitizer.py | 提示注入防御 |\n| 服务器 | SAP MCP | sap/sap_mcp.py | 49个工具，单进程，仅stdio |\n| 客户端 | — | sap/clients/ | Professor、Kart和通用应用包装器 |\n| 任务工作者 | KART | kart_worker.py | 轮询任务队列，在bubblewrap沙箱中执行 |\n| 摄取 | Nest | sap/core/nest_intake.py | 分类投放的文件并等待人工批准 |\n\n## 安全设计原则\n\n### 四步门禁检查\n每个请求知识库上下文的应用必须通过四步验证：\n1. SAFE文件夹存在 — $WILLOW_SAFE_ROOT/<app>/\n2. 清单存在 — safe-app-manifest.json在该文件夹中\n3. 签名存在 — safe-app-manifest.json.sig在清单旁边\n4. GPG验证签名 — gpg --verify返回0\n\n任何失败 → 访问被拒绝，事件记录到sap/log/gaps.jsonl。撤销 = 删除文件夹或其签名文件。\n\n### 双重提交原则\nAI提议，人工批准。Nest摄取流水线、JSONL批准流水线和角度偏差评分表都遵循这一原则。没有明确的人工决策，任何内容都不会提交到图谱或文件系统。\n\n### 角度偏差评分表（Angular Deviation Rubric）\n每个SOIL写入都携带一个偏差参数（弧度）：\n- 小偏差（< π/4）：静默通过\n- 中等偏差（π/4 – π/2）：标记\n- 大偏差（> π/2）：停止并要求批准\n- 内容触发器（危机语言、法律触发词）：无论偏差大小都生成提案\n\n### 归档而非删除\nSOIL中的软删除使记录对搜索/获取不可见，但保留在审计日志中。PostgreSQL中，陈旧的原子移动到domain='archived'。没有明确指令，不会永久删除任何内容。\n\n### 记忆清理\n每个记忆读取路径（store_get, store_search, willow_knowledge_search）在结果到达LLM之前都通过core/memory_sanitizer.py。24种模式跨越7个类别（身份劫持、指令覆盖、提取尝试、命令式指令、条件陷阱、操纵、编码滥用）检测用户编写内容中的注入尝试。\n\n## 推理与模型支持\n\n### 本地优先 + 免费备用\n本地Ollama始终优先尝试。如果不可用，推理会依次回退到Groq → Cerebras → SambaNova，使用credentials.json中的密钥。这三个提供商都提供免费套餐。\n\n### BASE 17 ID系统\n所有代理生成的ID使用21字符字母表（0-9ACEHKLNRTXZ），消除了视觉模糊字符。5个字符提供约400万种组合——足以满足会话范围内的ID需求，无需数据库序列。\n\n## 部署需求\n\n### 系统依赖\n```bash\n# PostgreSQL 14+ with peer auth (Unix socket)\nsudo apt install postgresql\nsudo -u postgres createuser --superuser $USER\nsudo -u postgres createdb willow\n\n# Ollama\ncurl -fsSL https://ollama.ai/install.sh | sh\nollama pull qwen2.5:3b # 默认模型\n\n# GPG (SAFE manifest verification)\nsudo apt install gnupg\ngpg --import <your-signing-key.asc>\n```\n\n### Python环境\n```bash\npython3 -m venv ~/.willow-venv\nsource ~/.willow-venv/bin/activate\npip install -r requirements.txt\n```\n\n### 配置\n```bash\ncp credentials.json.example credentials.json\n# 填写Groq、Cerebras和/或SambaNova的密钥\n# 三个都提供免费套餐。密钥按顺序尝试（KEY, KEY_2, KEY_3）\n# 速率限制时自动故障转移\n```\n\ncredentials.json被gitignore，永远不会离开你的机器。\n\n## 应用场景\n\nWillow-1.7适合以下场景：\n\n- **隐私优先的个人AI系统**：所有数据保留在本地，无云端传输\n- **研究实验平台**：模块化的架构便于测试不同的AI组件组合\n- **知识管理工具**：强大的知识图谱和记忆系统支持复杂的信息组织\n- **自动化工作流**：任务队列和流水线支持构建复杂的自动化流程\n\n## 总结\n\nWillow-1.7代表了一种新的个人AI基础设施范式——将安全性、隐私性和模块化放在首位。通过无端口架构、严格的访问控制和双重提交原则，它在提供强大功能的同时最大限度地降低了风险。对于希望构建真正属于自己的AI系统的开发者和研究者来说，Willow-1.7提供了一个坚实的基础。
