LingoFuse-pasAgent-v3
Health Warn
- License — License: MIT
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Low visibility — Only 6 GitHub stars
Code Pass
- Code scan — Scanned 12 files during light audit, no dangerous patterns found
Permissions Pass
- Permissions — No dangerous permissions requested
No AI report is available for this listing yet.
工业级 Pascal 智能体技术体系 v3——让 AI 学会用你的 Pascal 代码,支持文字+图片多模态。四大核心组件、服务端代管工具执行、双语言代码生成。提供预编译包,10 分钟让 AI 调用你的第一个 Pascal 工具。
pasAgent v3
工业级 Pascal 智能体技术体系 —— 让 AI 学会用你的 Pascal 代码
📦 获取 v3
解压后按 Pascal_Integration_Guide.md 操作。
🆕 为什么会有 v3 新仓库?
v3 与 v2 的根本区别在于 多模态(Multimodal)架构。
多模态是一个衍生型机制——它不是单个程序的升级,而是需要周边程序协同支持才能完整运转的架构级变革。
具体来说,引入多模态后:
llm_service需要同时驱动多个模型(文本模型 + 视觉模型),并把不同模态的输入路由到对应模型llm_proxy/llm_proxy_tool需要支持多模态请求的转发、多模态能力矩阵的声明llm_client需要支持多模态内容构建(文本 + 图片附件的组合)- 客户端需要理解“同一服务端、不同模态能力”的语义
这些改动跨越多个独立组件,彼此耦合紧密。为了避免 v2 主仓库的稳定性被破坏,v3 独立开仓,让多模态机制可以自由演进,同时不影响 v2 用户的既有部署。
v3 与 v2 的关系:v3 是 v2 的平行分支,不是替代。v2 仍然可用、仍然维护;v3 面向需要多模态协作的场景。
🎯 一句话定位
让你用 Pascal 写的函数,被 AI 像内置功能一样直接调用。
不需要懂 MCP 协议,不需要写 JSON Schema,不需要搭 HTTP 服务。
🆚 为什么选 pasAgent v3?—— 与 Pascal 生态其他方案的对比
Pascal 生态中已有多个 AI 智能体方案,它们在定位和适用场景上各有侧重。pasAgent v3 的独特价值在于:它是唯一一个既能自动生成工具、又能服务端代管工具执行、还能跨语言通信、且原生支持多模态协作的完整闭环方案。
方案能力矩阵
| 能力 | pasAgent v3 | PasClaw | MCP server Delphi | MakerAI Suite | Tina4 Pascal MCP | Daofy |
|---|---|---|---|---|---|---|
| 从声明自动生成工具 | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| ⭐ 无限语言 MCP-API 生成(一份声明 → 几十种目标语言) | ✅ v3 新增 | ❌ | ❌ | ❌ | ❌ | ❌ |
| 服务端代管工具执行 | ✅ | ❌ | ❌ | ✅ | ❌ | ❌ |
| 客户端零改动 | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| 跨语言通信层 | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| 多轮工具循环 | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ |
| 会话持久化 | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ |
| 🌐 多模态(Multimodal) | ✅ v3 新增 | ❌ | ❌ | ❌ | ❌ | ❌ |
| 250+ 后端兼容 | ✅ | ❌ | 有限 | ✅ | ❌ | ❌ |
| 预编译包 | ✅ | ❌ | ❌ | ❌ | ✅ | ✅ |
| 许可证 | MIT | 开源 | Apache 2.0 | 开源 | 开源 | 开源 |
一句话对比
| 方案 | 一句话 |
|---|---|
| pasAgent v3 | 给你的存量 Pascal 系统装配 AI 神经中枢,支持多模态协作,客户端零改动 |
| PasClaw | 构建一个全新的 Pascal 智能体,从零开始 |
| MCP server Delphi | 给 Delphi 项目提供全栈 MCP 工具包 |
| MakerAI Suite | Delphi 的企业级 AI 应用开发生态 |
| Tina4 Pascal MCP | 让 AI 编译、运行、测试 Pascal 程序 |
| Daofy | 让 AI 编译 Delphi 项目并查询知识库 |
v3 的两大独特优势
flowchart TB
V3["🎯 pasAgent v3<br/>两大独特优势"]
V3 --> A1["🌐 多模态协作<br/>文字问答 + 图片问答"]
V3 --> A2["⭐ 无限语言 MCP-API 生成<br/>一份声明 → 几十种目标语言"]
A1 --> D1["同一服务端<br/>同一会话<br/>多种模态"]
A2 --> D2["零样板代码<br/>零 IDL<br/>覆盖整个语言生态"]
style V3 fill:#0D2F52,stroke:#000000,stroke-width:5px,color:#FFFFFF
style A1 fill:#1E8449,stroke:#0E4D2A,stroke-width:4px,color:#FFFFFF
style A2 fill:#922B21,stroke:#5A1A14,stroke-width:4px,color:#FFFFFF
style D1 fill:#D5F5E3,stroke:#1E8449,stroke-width:3px,color:#0E4D2A
style D2 fill:#FADBD8,stroke:#922B21,stroke-width:3px,color:#5A1A14
优势 1:🌐 多模态协作 —— 文字问答 + 图片问答
其他方案:纯文本接口,无法理解图片。
pasAgent v3:
- 同一服务端、同一会话:文字问答和图片问答可以混合进行
- 多模态内容构建:客户端请求可携带文字 + 图片的混合内容
- 能力按模态声明:客户端可查询服务端支持哪些模态
- 多模型底座:文本模型 + 视觉模型协作完成多模态理解
// generate 请求中的多模态内容(示意)
{
"session_id": "...",
"content": "分析这张图",
"attachments": [
{ "kind": "image", "name": "chart.png",
"mime": "image/png", "data_b64": "..." }
]
}
优势 2:⭐ 无限语言 MCP-API 生成 —— 一份声明,几十种目标语言
其他方案:需要手写回调、JSON 读写、工具注册,或只支持单一语言。
pasAgent v3:
- 一份声明,几十种输出:Pascal / C 声明 → 任意目标语言的 MCP-API 工具提供者
- 覆盖整个语言生态:Pascal、Python、C、C++、Rust、Go、Java、C#、TypeScript、JavaScript、Ruby、PHP、Kotlin、Swift、Lua、Dart…… 语言越接越多
- 零样板代码:
cdecl回调、JSON 序列化、工具注册全部自动生成 - 5 层透明模型:每层 JSON 可看、可改、可回退
- 确定性:主链路不依赖 LLM,可复现、可审计
结论
如果你需要将 AI 能力快速、低成本、低侵入地注入到现有 Pascal 生产系统,并且需要多模态理解或无限语言 MCP-API 生成能力,pasAgent v3 是目前最具工程化价值的选择。
🧩 四大核心应用组件 + 一个辅助工具
pasAgent v3 采用 “四大核心应用组件 + 一个辅助工具” 的架构叙事:
🌟 第一梯队:应用层组件(4 个)
| # | 组件 | 角色 | 适用场景 |
|---|---|---|---|
| 1 | mcp_api_tool |
MCP 协议网关(路径 A) | 客户端原生支持 MCP(LM Studio / Claude Desktop / Continue.dev) |
| 2 | llm_proxy_tool(LTB) |
LLM 工具桥(路径 B) | 客户端不支持 MCP,服务端代管工具执行,客户端零改动 |
| 3 | llm_proxy |
纯文本转发代理 | 只需对话,不需要工具 |
| 4 | llm_client_v3 |
Pascal 客户端 SDK(含 GUI 演示 llm_tool_v3.exe) |
自研 Pascal 客户端,直接控制协议 |
🛠️ 第二梯队:辅助验证工具(1 个)
| # | 组件 | 角色 | 适用场景 |
|---|---|---|---|
| 5 | llm_service |
本地推理服务 | 断网环境 / 验证模型 / 封装成自己的 LLM 小工具 |
💡
llm_service虽然排在第 5 位,但它有一个独特价值:可以脱离整套 pasAgent 生态,单独作为一个“本地 LLM 小工具”嵌入到你自己的 Pascal 项目里使用。详见“目的 5”。
🎨 开发工具(跨组件的关键基础设施)
| 工具 | 角色 | 为什么重要 |
|---|---|---|
| MCP-API 生成器 | 无限语言代码生成器 | ⭐ 一份声明,生成几十种目标语言的 API 接口(独立仓库,详见 LingoFuse-Tools) |
pascal_agent_service |
信标(工具注册中心) | 所有工具/网关的公共基础设施 |
pascal_agent_api |
工具提供者示例 | 你的项目原型 |
mcp_api_proxy |
MCP stdio 调试代理 | 排查 MCP 握手 |
bridge |
HTTP 桥接网关 | 让浏览器 / Node / PHP 访问 |
llm_test |
命令行 REPL 测试客户端 | 调试 LLM 服务 |
llm_tool_v3 |
Pascal GUI 演示客户端 | 演示 llm_client_v3.pas 完整用法:多会话 / 流式输出 / 多模态 |
HealthCheck |
环境健康检查 | 首次部署验证 |
⭐ MCP-API 生成器:无限语言,一份声明
这是 pasAgent v3 最容易被低估、却最重要的一件工具。
⚠️ MCP-API 代码生成工具已独立到专用仓库,请一律访问:
👉 https://github.com/PassByYou888/LingoFuse-Tools
包括生成器、声明规范、使用手册、生成器源码与预编译包等,一律以该仓库为准。
一份声明,几十种目标语言
MCP-API 生成器接受 Pascal 声明 或 C 头文件原型,自动生成 几十种目标语言 的 API 接口。
这不再是“双语言”时代的定位 —— 早期版本只支持 Pascal + Python 双输出;当前版本已成熟,能覆盖主流语言生态:
flowchart LR
A["📄 一份 Pascal / C 声明"] --> B["💎 MCP-API 生成器"]
B --> C1["🅿️ Pascal"]
B --> C2["🐍 Python"]
B --> C3["🦀 Rust"]
B --> C4["🐹 Go"]
B --> C5["☕ Java"]
B --> C6["🔷 C#"]
B --> C7["📘 TypeScript"]
B --> C8["… 几十种目标语言"]
style A fill:#4A90E2,stroke:#1E3A8A,stroke-width:4px,color:#FFFFFF
style B fill:#9B59B6,stroke:#6C3483,stroke-width:5px,color:#FFFFFF
style C1 fill:#F39C12,stroke:#B7791F,stroke-width:4px,color:#FFFFFF
style C2 fill:#27AE60,stroke:#145A32,stroke-width:4px,color:#FFFFFF
style C3 fill:#C0392B,stroke:#641E16,stroke-width:4px,color:#FFFFFF
style C4 fill:#1ABC9C,stroke:#0E6655,stroke-width:4px,color:#FFFFFF
style C5 fill:#8E44AD,stroke:#5B2C6F,stroke-width:4px,color:#FFFFFF
style C6 fill:#2E86C1,stroke:#1A5276,stroke-width:4px,color:#FFFFFF
style C7 fill:#3498DB,stroke:#1F618D,stroke-width:4px,color:#FFFFFF
style C8 fill:#5D6D7E,stroke:#2C3E50,stroke-width:4px,color:#FFFFFF
为什么重要?
| 价值 | 说明 |
|---|---|
| 零样板代码 | 不需要手写 cdecl 回调、JSON 读写、工具注册——全部自动生成 |
| 零 IDL | 直接从 Pascal / C 声明生成,不需要单独写接口定义文件 |
| 无限语言输出 | 同一份声明,几十种目标语言的工具提供者同时输出,语义完全一致 |
| 跨语言互操作 | 算法在 Pascal 里、集成在 Go / Rust / Python 里?生成多份,各取所需 |
| 确定性 | 主链路不依赖 LLM,可复现、可审计、可版本控制 |
| 5 层透明模型 | 每层 JSON 可看、可改、可回退,出错时能精确定位 |
获取方式
1. 打开 LingoFuse-Tools 仓库(下方链接)
2. 获取生成器(源码 / 预编译包)
3. 粘贴 Pascal / C 声明
4. 选择目标语言
5. 走完 5 层转换
6. 在「Final source」Tab 中复制生成的目标语言源码
📖 完整说明、声明规范与最新版本:https://github.com/PassByYou888/LingoFuse-Tools
🎯 你想干什么?(按目的选择)
目的 1:客户端原生支持 MCP(LM Studio / Claude Desktop)
用 mcp_api_tool —— 把 Pascal 工具翻译成 MCP 协议,暴露给自带 MCP 支持的客户端。
flowchart LR
A["🤖 LM Studio / Claude Desktop<br/>(自己会调工具)"] -->|"MCP 协议"| B["🌉 mcp_api_tool"]
B -->|"LF_Call"| C["📡 信标"]
C --> D["🎯 你的 Pascal 工具"]
style A fill:#922B21,stroke:#5A1A14,stroke-width:3px,color:#FFFFFF
style B fill:#1E8449,stroke:#0E4D2A,stroke-width:4px,color:#FFFFFF
style C fill:#5B2C6F,stroke:#321640,stroke-width:3px,color:#FFFFFF
style D fill:#B7791F,stroke:#7E5109,stroke-width:3px,color:#FFFFFF
关键特征:
- AI 客户端自己决定调哪个工具
- 工具执行由客户端发起
- 你只需要提供工具(信标 + 工具提供者)
文档 → src/LingoFuse_LLM_Ecosystem_User_Guide.md
目的 2:客户端不支持 MCP,但想用工具(推荐 ⭐)
用 llm_proxy_tool(LTB) —— 服务端代管整个工具调用循环。客户端只发 generate,完全不知道工具存在。
flowchart LR
A["🖥️ 你的程序<br/>(不感知工具)"] -->|"只发 generate"| B["🔴 llm_proxy_tool<br/>LTB"]
B <-->|"HTTP SSE<br/>携带 tools"| C["🔌 LM Studio / DeepSeek / ..."]
B -->|"内部多轮循环"| D["📡 信标"]
D --> E["🎯 你的 Pascal 工具"]
B -.->|"chunk / think / finish"| A
style A fill:#1A5490,stroke:#0D2F52,stroke-width:3px,color:#FFFFFF
style B fill:#922B21,stroke:#5A1A14,stroke-width:4px,color:#FFFFFF
style C fill:#1E8449,stroke:#0E4D2A,stroke-width:3px,color:#FFFFFF
style D fill:#5B2C6F,stroke:#321640,stroke-width:3px,color:#FFFFFF
style E fill:#B7791F,stroke:#7E5109,stroke-width:3px,color:#FFFFFF
关键特征:
- 客户端零改动——只知道
generate/create_session等基础 API - 工具调用、结果回填、多轮循环全在 LTB 内部
- 后端必须是 OpenAI 兼容且支持
tool_calls的 API - 与
mcp_api_tool可以共存(不同reg_agent名) - 四重上限保护:轮次 / 总调用数 / 单结果长度 / 总结果长度
文档 → src/LingoFuse_LLM_Proxy_Tool_CLI_Guide.md
兼容性 → src/LingoFuse_LLM_Proxy_Compatibility_Guide.md
目的 3:只和 AI 对话(不需要工具)
用 llm_proxy —— 纯文本转发到 LM Studio / Ollama / 云 API。
flowchart LR
A["🖥️ 你的程序"] -->|"LingoFuse RPC"| B["🟣 llm_proxy"]
B -->|"HTTP SSE"| C["🔌 LM Studio / Ollama / DeepSeek / ..."]
style A fill:#1A5490,stroke:#0D2F52,stroke-width:3px,color:#FFFFFF
style B fill:#8E44AD,stroke:#5B2C6F,stroke-width:4px,color:#FFFFFF
style C fill:#1E8449,stroke:#0E4D2A,stroke-width:3px,color:#FFFFFF
关键特征:
- 无状态转发,
set_system_message明确拒绝 - 支持 250+ OpenAI 兼容后端(LM Studio / Ollama / vLLM / DeepSeek / OpenRouter / Groq / 智谱 / Moonshot / …)
- 客户端代码一行不改,切换后端只改
--backend-url
文档 → src/LingoFuse_LLM_Proxy_CLI_Guide.md
兼容性 → src/LingoFuse_LLM_Proxy_Compatibility_Guide.md
目的 4:自研 Pascal 客户端 / 开发 SDK
用 llm_client_v3(Pascal 版) —— Pascal 客户端 SDK,直接与 LingoFuse LLM 服务对话。GUI 演示见 llm_tool_v3。
flowchart LR
subgraph CLIENT["🅿️ Pascal 客户端"]
C1["llm_client_v3.pas<br/>(本仓库 src/ 目录)"]
end
subgraph SERVERS["🎯 三种 LLM 服务端(选一)"]
S1["🟣 llm_proxy"]
S2["🔴 llm_proxy_tool"]
S3["🟢 llm_service"]
end
C1 -->|"LF Call + Notify"| S1
C1 -->|"LF Call + Notify"| S2
C1 -->|"LF Call + Notify"| S3
style CLIENT fill:#1A5490,stroke:#0D2F52,stroke-width:3px,color:#FFFFFF
style SERVERS fill:#5B2C6F,stroke:#321640,stroke-width:3px,color:#FFFFFF
为什么只有 Pascal 版本?
Python 天生就能接入智能体生态——LangChain、LlamaIndex、OpenAI SDK、Anthropic SDK 等都是 Python 原生,直接用即可,不需要绕道 LingoFuse。
而 Pascal 生态缺乏这样的基础设施,所以 pasAgent 为 Pascal 提供了
llm_client_v3.pas作为标准客户端 SDK。
关键特征:
- 同时兼容 Delphi 7+ 和 FPC 3.0+
- 能力发现:
get_api_capabilities让客户端在运行时知道服务端支持什么 - 流式回调:
OnChunk/OnThink/OnFinish/OnError/OnClosed - 会话过滤:
FActiveSessionId防止多会话串台
文档 → Pascal_Integration_Guide.md
SDK 文档 → src/llm_client_v3.md
Structured Output 学习指南 → src/llm_client_v3_Structured_Output_Learning_Guide.md
目的 5:把本地 LLM 封装成自己的小工具
用 llm_service —— 本地加载 GGUF 模型,可以脱离 pasAgent 生态单独使用。
flowchart LR
A["🖥️ 你的 Pascal / Python 程序"] -->|"LingoFuse RPC"| B["🟢 llm_service"]
B -->|"加载"| C["📦 本地 GGUF 模型"]
style A fill:#1A5490,stroke:#0D2F52,stroke-width:3px,color:#FFFFFF
style B fill:#1E8449,stroke:#0E4D2A,stroke-width:4px,color:#FFFFFF
style C fill:#B7791F,stroke:#7E5109,stroke-width:3px,color:#FFFFFF
关键特征:
- 完全离线——不需要联网、不需要外部 API、不需要 LM Studio
- 可嵌入——你可以在自己的 Pascal 项目里只加载
llm_service+llm_client_v3,就得到一个“本地 LLM 小工具” - 兼容 P2P 通信——通过 LingoFuse 服务网格,天然支持跨进程、跨机器
典型用途:
| 场景 | 说明 |
|---|---|
| 离线环境 | 内网、无外网访问的工业现场 |
| 隐私敏感 | 数据不能出本地,必须全程离线 |
| 快速验证 | 检验某个 GGUF 模型是否适合你的任务 |
| 嵌入自研项目 | 只引入 llm_service + llm_client_v3,作为你的“AI 助手”模块 |
💡
llm_service是辅助验证工具,不是应用层核心。生产环境更推荐用llm_proxy/llm_proxy_tool转发到 LM Studio 等成熟后端;但如果你需要完全离线或深度嵌入,llm_service是最佳选择。
文档 → src/LingoFuse_LLM_Service_CLI_guide.md
模型部署 → src/NVIDIA-Nemotron-3-Nano-Omni-30B-A3B-Reasoning-UD-IQ4_XS.md
🗺️ 一图看懂组网
flowchart TB
subgraph Users["👤 你的目的"]
U1["客户端支持 MCP"]
U2["客户端不支持 MCP"]
U3["纯对话"]
U4["自研 Pascal 客户端"]
U5["本地 LLM 小工具"]
end
subgraph Entrances["🚪 四大核心应用组件 + 一个辅助工具"]
E1["🌉 mcp_api_tool<br/>路径 A"]
E2["🔴 llm_proxy_tool<br/>路径 B"]
E3["🟣 llm_proxy"]
E4["📦 llm_client_v3<br/>(Pascal SDK)"]
E5["🟢 llm_service<br/>(本地推理·辅助工具)"]
end
subgraph Beacon["📡 公共基础设施"]
B["pascal_agent_service<br/>信标 ipc:agent"]
end
subgraph Tools["🎯 你的 Pascal 工具"]
T["pascal_agent_api<br/>或你自己的工具提供者"]
end
subgraph Backends["🔌 后端"]
R1["LM Studio / Ollama / 云 API"]
R2["📦 本地 GGUF 模型"]
end
U1 --> E1
U2 --> E2
U3 --> E3
U4 --> E4
U5 --> E5
E1 --> B
E2 --> B
E2 -.-> R1
E3 -.-> R1
E4 --> E1
E4 --> E2
E4 --> E3
E4 --> E5
E5 -.-> R2
B --> T
style Users fill:#1A5490,stroke:#0D2F52,stroke-width:3px,color:#FFFFFF
style Entrances fill:#5B2C6F,stroke:#321640,stroke-width:3px,color:#FFFFFF
style Beacon fill:#1E8449,stroke:#0E4D2A,stroke-width:3px,color:#FFFFFF
style Tools fill:#B7791F,stroke:#7E5109,stroke-width:3px,color:#FFFFFF
style Backends fill:#922B21,stroke:#5A1A14,stroke-width:3px,color:#FFFFFF
共存规则:
mcp_api_tool与llm_proxy_tool可以同时运行(注册到信标的reg_agent名不同)llm_proxy/llm_proxy_tool/llm_service默认共用同一端点ipc:llm_service,同一时刻只能运行一个- 要共存必须为每个指定不同的
--endpoint+--app-name
🚀 快速上手
场景 A:客户端支持 MCP(路径 A)
# 终端 1:信标
.\pascal_agent_service.exe
# 终端 2:工具提供者
.\pascal_agent_api.exe
# 终端 3:MCP 网关
.\mcp_api_tool.exe
然后配置 LM Studio / Claude Desktop 的 MCP 设置即可。
场景 B:客户端不支持 MCP(路径 B · 推荐)
# 终端 1:信标
.\pascal_agent_service.exe
# 终端 2:工具提供者
.\pascal_agent_api.exe
# 终端 3:LTB(服务端代管工具)
.\llm_proxy_tool.exe `
--backend-url http://127.0.0.1:1234/v1 `
--mcp-reg-agent-app llm_proxy_agent `
--mcp-tool-provider-app agent_main_app
客户端只需(SDK 见 src/llm_client_v3.pas):
// Pascal 客户端(llm_client_v3.pas)
LLM := TLLMClient.Create('LLM_Service', 'ipc:llm_service', 10000);
LLM.OnChunk := Do_LLM_Chunk;
if not LLM.Connect(err) then Exit;
if not LLM.Generate('5 加 7 等于几?', '', sid, err) then Exit;
// 无需知道工具、MCP、tool_calls 的存在
场景 C:纯对话
.\llm_proxy.exe --backend-url http://127.0.0.1:1234/v1
场景 D:本地验证模型
.\llm_service.exe --model-path .\NVIDIA-Nemotron-3-Nano-Omni-30B-A3B-Reasoning-UD-IQ4_XS.gguf
📦 组件清单
应用层组件
| 组件 | 角色 | 谁关心 |
|---|---|---|
mcp_api_tool |
🌉 MCP 协议网关(路径 A) | 用 MCP 客户端的你 |
llm_proxy_tool |
🔴 LLM 工具桥(路径 B,服务端代管工具) | 客户端不支持 MCP 的你 |
llm_proxy |
🟣 纯文本转发代理 | 只用对话的你 |
llm_client_v3 |
📦 Pascal 客户端 SDK(含 GUI 演示 llm_tool_v3) |
自研 Pascal 客户端的你 |
llm_service |
🟢 本地推理服务(可封装成小工具) | 断网 / 验证模型 / 深度嵌入的你 |
开发工具
| 组件 | 角色 | 谁关心 |
|---|---|---|
| MCP-API 生成器 | ⭐ 无限语言代码生成器(独立仓库) | 要生成工具提供者的你 |
pascal_agent_service |
📡 信标(工具注册中心) | 部署服务的你 |
pascal_agent_api |
🎯 工具提供者示例 | 写 Pascal 的你 |
mcp_api_proxy |
🕵️ MCP stdio 调试代理 | 排查 MCP 握手的你 |
bridge |
🌐 HTTP 桥接网关 | Web 生态的你 |
llm_test |
🧪 命令行 REPL | 调试 LLM 的你 |
llm_tool_v3 |
🖼️ Pascal GUI 演示客户端 | 学习 SDK 用法的你 |
HealthCheck |
✅ 环境健康检查 | 首次部署的你 |
📁 项目结构
flowchart TB
subgraph Root["LingoFuse-pasAgent-v3/"]
R1["📘 文档<br/>readme / Pascal_Integration_Guide<br/>Build_Guide / NVIDIA-Nemotron-..."]
R2["📐 规范<br/>MCP-API 生成器相关规范见 LingoFuse-Tools"]
R3["📝 元信息<br/>llms.txt / LICENSE"]
end
subgraph Src["src/"]
S1["🅿️ Pascal<br/>pascal_agent_service / pascal_agent_api<br/>lingofuse_helper / lingofuse_import<br/>llm_client_v3 / llm_tool_v3"]
S2["🌉 MCP 网关<br/>mcp_api_tool.py / mcp_api_proxy.py"]
S3["🔧 中间件<br/>language_middleware.py / generate_agent_json.py"]
S4["🧠 LLM<br/>llm_service.py / llm_proxy.py<br/>llm_proxy_tool.py / llm_test.py"]
S5["🔨 构建<br/>build_*.ps1 / build_pascal_agent.bat"]
S6["📚 LLM 文档<br/>LingoFuse_LLM_*.md"]
S7["🐍 绑定<br/>lingofuse/(Python 包)"]
S8["🧪 示例<br/>CreateHealthCheck/ / pascal_agent_api_ref_json.md"]
end
subgraph ZCore["zCore/(git 子模块)"]
Z1["📚 Z 框架源码<br/>Z.Core / Z.Json / Z.Status<br/>Z.PascalStrings / Z.UnicodeMixedLib 等"]
end
style Root fill:#1A5490,stroke:#0D2F52,stroke-width:3px,color:#FFFFFF
style Src fill:#1E8449,stroke:#0E4D2A,stroke-width:3px,color:#FFFFFF
style ZCore fill:#5B2C6F,stroke:#321640,stroke-width:3px,color:#FFFFFF
你最需要关心的文件:
- src/pascal_agent_api.lpr —— 算术工具示例,你的项目原型
- src/pascal_agent_service.lpr —— 信标源码
- src/lingofuse_helper.pas —— 写工具时的辅助函数
- src/llm_client_v3.pas —— Pascal 客户端 SDK
- src/llm_tool_v3.lpr —— SDK 的 GUI 演示程序
- src/lingofuse/ —— LingoFuse Python 绑定包
- zCore/src/Z.Core.pas 等 —— 编译依赖的 Z 框架
📚 文档地图
根目录文档
| 文档 | 说明 |
|---|---|
| readme.md | 本文档——项目总览与四大核心应用组件 |
| Pascal_Integration_Guide.md | Pascal 开发者切入指南——推荐起点 |
| Build_Guide.md | 编译指南(Pascal + Python 组件) |
| llms.txt | 面向 AI 助手的项目速览 |
| LICENSE | MIT 许可证 |
MCP-API 生成器文档
⚠️ MCP-API 代码生成工具已独立到专用仓库,请一律访问:
👉 https://github.com/PassByYou888/LingoFuse-Tools
包括生成器、声明规范、使用手册、生成器源码与预编译包等。
src/ 子目录文档(LLM 生态)
| 文档 | 说明 |
|---|---|
| src/LingoFuse_LLM_Ecosystem_User_Guide.md | 生态总览——四大核心应用组件、两条路径、能力发现机制 |
| src/LingoFuse_LLM_Proxy_Tool_CLI_Guide.md | 🔴 LTB 命令行手册(路径 B 核心) |
| src/LingoFuse_LLM_Proxy_CLI_Guide.md | 🟣 纯转发代理命令行手册 |
| src/LingoFuse_LLM_Proxy_Compatibility_Guide.md | 250+ 后端兼容清单(LTB 亦适用) |
| src/LingoFuse_LLM_Service_CLI_guide.md | 🟢 本地推理服务命令行手册 |
| src/llm_client_v3.md | Pascal 客户端 SDK 文档 |
| src/llm_client_v3_Structured_Output_Learning_Guide.md | Structured Output 完整学习指南 |
| src/QUICK_START_LLM_STACK.md | LLM 栈快速上手 |
| src/pascal_agent_api_ref_json.md | agent_main / register_agent JSON 结构详解 |
| src/lingofuse/Bridge_User_Guide.md | HTTP 桥接网关使用指南 |
| src/LingoFuse_Pascal_Complete_Guide.md | Pascal 核心层完整指南(含踩坑知识库) |
| src/NVIDIA-Nemotron-3-Nano-Omni-30B-A3B-Reasoning-UD-IQ4_XS.md | 推荐模型下载与部署 |
🛡️ 稳定性:为长时间运行而设计
pasAgent 的所有组件都针对长时运行、高频调用做了专门加固:
- 单 worker 串行推理:llama.cpp 上下文不是线程安全的,所有推理通过 FIFO 队列串行化到单 worker 线程
- 双条件会话回收:空闲超时 AND 客户端离线才回收(仅
llm_service),避免客户端临时断开导致对话历史丢失 - 异常隔离:后台循环的任何异常都被捕获,不会杀死工作线程
- 句柄自动回收:显式释放 + 超时回收,防止资源泄漏
- 能力矩阵自描述:客户端可查询服务端支持哪些 API、哪些模态能力
- LTB 四重上限:轮次 / 总调用数 / 单结果长度 / 总结果长度,杜绝失控模型
实测表现:可稳定处理数万条连续的交互命令或 function call,长时间运行不掉线、不漏句柄、不串会话。
🔧 运行前准备
pasAgent 所有组件都依赖 LingoFuse 动态库(LingoFuse64.dll / liblingofuse.so)。
git clone --recursive https://github.com/PassByYou888/LingoFuse.git
# 然后将 LingoFuse/Binary 目录加入系统 PATH
提示:预编译包已内置所需动态库,无需单独安装。预编译包内包含:
类别 文件 LingoFuse 核心 LingoFuse32.dll/LingoFuse64.dllIPC 依赖 z_ipc_32.dll/z_ipc_64.dll(及调试版z_ipc_32d.dll/z_ipc_64d.dll)内存分配器 mimalloc32.dll/mimalloc64.dll/mimalloc-redirect.dll/mimalloc-redirect32.dll应用 EXE mcp_api_tool.exe/llm_proxy_tool.exe/llm_proxy.exe/llm_client_v3(GUI 为llm_tool_v3.exe) /llm_service.exe/llm_test.exe/pascal_agent_service.exe/pascal_agent_api.exe/mcp_api_proxy.exe/bridge.exe/HealthCheck.exeMCP-API 生成器请从 LingoFuse-Tools 仓库获取。
⚠️ 首次运行缺少 DLL?
如果提示找不到 LingoFuse64.dll / z_ipc_64.dll,不想自己编译 LingoFuse:
👉 直接去预编译包发布页找现成的:releases/tag/pre_build
运行环境依赖:预编译 DLL 使用 Visual Studio 2022 编译,运行时需要安装 VS2022 可再发行组件(VC++ Redistributable):
🌟 关于开放性
pasAgent v3 是 LingoFuse 的分支项目,两者均为完全开放、非商业性的开源项目。
- ✅ 永久免费:MIT 许可证
- ✅ 无商业捆绑:无收费功能、无付费订阅
- ✅ 社区驱动:决策来自社区贡献者
- ✅ 透明开发:源码全公开,构建可复现
❓ 常见问题
| 问题 | 回答 |
|---|---|
| 需要懂 MCP 协议吗? | 不需要,写 Pascal 就行 |
| 只支持豆包吗? | 支持所有 MCP 客户端:LM Studio / Claude / Continue.dev / Jan / DeepSeek |
| 只能做加减乘除吗? | 任何 Pascal 函数:数据库、文件、硬件、GUI…… |
| v3 和 v2 什么关系? | v3 是 v2 的平行分支——v2 仍维护,v3 面向多模态协作场景 |
| 为什么 v3 要独立开仓? | 多模态是衍生型机制,需要周边程序协同支持,独立开仓不影响 v2 稳定性 |
| 什么是多模态? | 让 AI 能同时处理文字和图片等多种输入形式,而不是只处理纯文本 |
| 我的客户端不支持 MCP,怎么办? | 用 llm_proxy_tool(路径 B),服务端代管工具调用 |
| 我的客户端支持 MCP,怎么用? | 用 mcp_api_tool(路径 A) |
| 我只要对话,不要工具 | 用 llm_proxy |
| 我想自己写 Pascal 客户端 | 用 llm_client_v3 SDK |
| 我想把 LLM 塞进自己的项目 | 用 llm_service + llm_client_v3,就是一个本地 LLM 小工具 |
| 有 Python 客户端吗? | 没有——Python 天生能接智能体生态(LangChain / OpenAI SDK / …),不需要绕道 |
| MCP-API 生成器支持哪些语言? | 几十种目标语言——不再局限于双语言,详见 LingoFuse-Tools |
| 需要联网吗? | 不需要(llm_service 完全离线)。用 llm_proxy / llm_proxy_tool 转发云端 API 时需联网 |
| 三种 LLM 服务端能同时跑吗? | 默认不能(共享同一端点)。要共存须改 --endpoint + --app-name |
| 缺 DLL 又不想编译? | 去预编译包发布页下载,解压即用 |
| LLM 体系文档在哪里? | 全部在 src/ 目录下 |
| 能长时间跑吗? | 能。专门做过加固:单 worker 串行、双条件回收、句柄自动回收、异常隔离、LTB 四重上限 |
👤 关于作者
老张(QQ: 600585)
看不惯跨语言调用得写一箩筐胶水代码,干脆撸了 LingoFuse;又看不惯 Pascal 老代码接不进 AI 时代,顺手撸了 pasAgent;还看不惯 AI 只能理解文字,于是 v3 走上了多模态之路。
欢迎反馈、建议、PR。
📄 许可证
MIT —— 自由使用、修改、分发。
项目始于 2026 年,持续迭代中。有问题提 Issue,急事加 Q。
Reviews (0)
Sign in to leave a review.
Leave a reviewNo results found