[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-Canner--wren-engine":3,"tool-Canner--wren-engine":64},[4,17,27,35,43,56],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":16},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,3,"2026-04-05T11:01:52",[13,14,15],"开发框架","图像","Agent","ready",{"id":18,"name":19,"github_repo":20,"description_zh":21,"stars":22,"difficulty_score":23,"last_commit_at":24,"category_tags":25,"status":16},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",140436,2,"2026-04-05T23:32:43",[13,15,26],"语言模型",{"id":28,"name":29,"github_repo":30,"description_zh":31,"stars":32,"difficulty_score":23,"last_commit_at":33,"category_tags":34,"status":16},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107662,"2026-04-03T11:11:01",[13,14,15],{"id":36,"name":37,"github_repo":38,"description_zh":39,"stars":40,"difficulty_score":23,"last_commit_at":41,"category_tags":42,"status":16},3704,"NextChat","ChatGPTNextWeb\u002FNextChat","NextChat 是一款轻量且极速的 AI 助手，旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性，以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发，NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。\n\n这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言，它也提供了便捷的自托管方案，支持一键部署到 Vercel 或 Zeabur 等平台。\n\nNextChat 的核心亮点在于其广泛的模型兼容性，原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型，让用户在一个界面即可自由切换不同 AI 能力。此外，它还率先支持 MCP（Model Context Protocol）协议，增强了上下文处理能力。针对企业用户，NextChat 提供专业版解决方案，具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能，满足公司对数据隐私和个性化管理的高标准要求。",87618,"2026-04-05T07:20:52",[13,26],{"id":44,"name":45,"github_repo":46,"description_zh":47,"stars":48,"difficulty_score":23,"last_commit_at":49,"category_tags":50,"status":16},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",84991,"2026-04-05T10:45:23",[14,51,52,53,15,54,26,13,55],"数据工具","视频","插件","其他","音频",{"id":57,"name":58,"github_repo":59,"description_zh":60,"stars":61,"difficulty_score":10,"last_commit_at":62,"category_tags":63,"status":16},3128,"ragflow","infiniflow\u002Fragflow","RAGFlow 是一款领先的开源检索增强生成（RAG）引擎，旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体（Agent）能力相结合，不仅支持从各类文档中高效提取知识，还能让模型基于这些知识进行逻辑推理和任务执行。\n\n在大模型应用中，幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构（如表格、图表及混合排版），显著提升了信息检索的准确度，从而有效减少模型“胡编乱造”的现象，确保回答既有据可依又具备时效性。其内置的智能体机制更进一步，使系统不仅能回答问题，还能自主规划步骤解决复杂问题。\n\n这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统，还是致力于探索大模型在垂直领域落地的创新者，都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口，既降低了非算法背景用户的上手门槛，也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目，它正成为连接通用大模型与行业专有知识之间的重要桥梁。",77062,"2026-04-04T04:44:48",[15,14,13,26,54],{"id":65,"github_repo":66,"name":67,"description_en":68,"description_zh":69,"ai_summary_zh":70,"readme_en":71,"readme_zh":72,"quickstart_zh":73,"use_case_zh":74,"hero_image_url":75,"owner_login":76,"owner_name":76,"owner_avatar_url":77,"owner_bio":78,"owner_company":79,"owner_location":79,"owner_email":80,"owner_twitter":81,"owner_website":82,"owner_url":83,"languages":84,"stars":119,"forks":120,"last_commit_at":121,"license":122,"difficulty_score":123,"env_os":124,"env_gpu":124,"env_ram":124,"env_deps":125,"category_tags":133,"github_topics":134,"view_count":10,"oss_zip_url":79,"oss_zip_packed_at":79,"status":16,"created_at":151,"updated_at":152,"faqs":153,"releases":183},3556,"Canner\u002Fwren-engine","wren-engine","The open context engine for AI agents support 15+ data sources. Built on Rust and Apache DataFusion.","Wren Engine 是一款专为 AI 智能体打造的开源“上下文引擎”，旨在填补人工智能与企业业务数据之间的认知鸿沟。当前，许多 AI 虽然能连接数据库并生成代码，却往往不理解“净收入”、“活跃客户”等企业特有的业务定义和逻辑，导致分析结果缺乏准确性。Wren Engine 正是为了解决这一痛点而生，它让 AI 不再直接面对冰冷的原始数据表，而是基于预定义的语义模型、可信指标和数据关系进行推理，从而将自然语言提问转化为精准、可解释且符合企业规范的数据查询。\n\n该项目由 Canner 团队开发，底层采用高性能的 Rust 语言和 Apache DataFusion 构建，支持超过 15 种数据源。其核心亮点在于引入了 MDL（模型定义语言），允许开发者以声明式的方式建模业务含义，确保数据治理和血缘关系在 AI 交互中得到严格执行。Wren Engine 非常适合正在构建下一代 AI 应用的企业开发者、数据工程师以及希望将大模型能力安全落地到复杂业务场景中的技术团队。无论是嵌入 MCP 服务器还是集成到现有的 Agent 工作流中，它都能为智能体提供坚实的业务语境基础，让 AI 真正“懂","Wren Engine 是一款专为 AI 智能体打造的开源“上下文引擎”，旨在填补人工智能与企业业务数据之间的认知鸿沟。当前，许多 AI 虽然能连接数据库并生成代码，却往往不理解“净收入”、“活跃客户”等企业特有的业务定义和逻辑，导致分析结果缺乏准确性。Wren Engine 正是为了解决这一痛点而生，它让 AI 不再直接面对冰冷的原始数据表，而是基于预定义的语义模型、可信指标和数据关系进行推理，从而将自然语言提问转化为精准、可解释且符合企业规范的数据查询。\n\n该项目由 Canner 团队开发，底层采用高性能的 Rust 语言和 Apache DataFusion 构建，支持超过 15 种数据源。其核心亮点在于引入了 MDL（模型定义语言），允许开发者以声明式的方式建模业务含义，确保数据治理和血缘关系在 AI 交互中得到严格执行。Wren Engine 非常适合正在构建下一代 AI 应用的企业开发者、数据工程师以及希望将大模型能力安全落地到复杂业务场景中的技术团队。无论是嵌入 MCP 服务器还是集成到现有的 Agent 工作流中，它都能为智能体提供坚实的业务语境基础，让 AI 真正“懂”你的业务。","\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fgetwren.ai\">\n    \u003Cpicture>\n      \u003Csource media=\"(prefers-color-scheme: light)\" srcset=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FCanner_wren-engine_readme_ebc49b477a99.png\">\n      \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FCanner_wren-engine_readme_ebc49b477a99.png\" alt=\"Wren AI logo\">\n    \u003C\u002Fpicture>\n    \u003Ch1 align=\"center\">Wren Engine\u003C\u002Fh1>\n  \u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  The open context engine for AI agents\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca aria-label=\"Follow us\" href=\"https:\u002F\u002Fx.com\u002Fgetwrenai\">\n    \u003Cimg alt=\"\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F-@getwrenai-blue?style=for-the-badge&logo=x&logoColor=white&labelColor=gray&logoWidth=20\">\n  \u003C\u002Fa>\n  \u003Ca aria-label=\"License\" href=\"https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fblob\u002Fmain\u002FLICENSE\">\n    \u003Cimg alt=\"\" src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flicense\u002Fcanner\u002Fwren-engine?color=blue&style=for-the-badge\">\n  \u003C\u002Fa>\n  \u003Ca aria-label=\"Join the community on GitHub\" href=\"https:\u002F\u002Fdiscord.gg\u002F5DvshJqG8Z\">\n    \u003Cimg alt=\"\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F-JOIN%20THE%20COMMUNITY-blue?style=for-the-badge&logo=discord&logoColor=white&labelColor=grey&logoWidth=20\">\n  \u003C\u002Fa>\n  \u003Ca aria-label=\"Canner\" href=\"https:\u002F\u002Fcannerdata.com\u002F\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F%F0%9F%A7%A1-Made%20by%20Canner-blue?style=for-the-badge\">\n  \u003C\u002Fa>\n\u003C\u002Fp>\n\n> Wren Engine is the open foundation behind [Wren AI](https:\u002F\u002Fgithub.com\u002FCanner\u002FWrenAI): a semantic, governed, agent-ready context layer for business data.\n\nhttps:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F037f2317-d8e5-41f2-9563-1e0bce4ef50c\n\n## Why Wren Engine\n\nAI agents can already call tools, browse docs, and write code. What they still struggle with is business context.\n\nEnterprise data is not just rows in a warehouse. It is definitions, metrics, relationships, permissions, lineage, and intent. An agent that can connect to PostgreSQL or Snowflake still does not know what \"net revenue\", \"active customer\", or \"pipeline coverage\" actually mean in your company.\n\nThis is not just our thesis. In [Your Data Agents Need Context](https:\u002F\u002Fa16z.com\u002Fyour-data-agents-need-context\u002F), a16z argues that data agents break down when they only have connectivity and SQL generation, but lack business definitions, source-of-truth context, and the operational knowledge that explains how a company actually runs.\n\n\u003Cp align=\"center\">\n  \u003Cimg width=\"888\" height=\"678\" alt=\"before Wren Engine Challenge\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FCanner_wren-engine_readme_24dfeba4924e.png\" \u002F>\n\u003C\u002Fp>\n\nWren Engine exists to solve that gap.\n\nIt gives AI agents a context engine they can reason over, so they can:\n\n- understand models instead of raw tables\n- use trusted metrics instead of inventing SQL\n- follow relationships instead of guessing joins\n- respect governance instead of bypassing it\n- turn natural language into accurate, explainable data access\n\nThis is the open source context engine for teams building the next generation of agent experiences.\n\n## The Vision\n\nWe believe the future of AI is not tool calling alone. It is context-rich systems where agents can reason, retrieve, plan, and act on top of a shared understanding of business reality.\n\nWren Engine is our open source contribution to that future.\n\n\u003Cp align=\"center\">\n  \u003Cimg width=\"1267\" height=\"705\" alt=\"with_wren_engine\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FCanner_wren-engine_readme_9914a5c6356a.png\" \u002F>\n\u003C\u002Fp>\n\nIt is the semantic and execution foundation beneath Wren AI, and it is designed to be useful well beyond a single product:\n\n- embedded in MCP servers and agent workflows\n- connected to modern warehouses, databases, and file systems\n- expressive enough to model business meaning through MDL\n- robust enough to support governed enterprise use cases\n- open enough for the community to extend, integrate, and build on\n\nIf Wren AI is the full vision, Wren Engine is the open core that makes that vision interoperable.\n\n## What Wren Engine Does\n\nWren Engine turns business data into agent-usable context.\n\n\u003Cp align=\"center\">\n  \u003Cimg width=\"2199\" height=\"1537\" alt=\"engine-architecture\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FCanner_wren-engine_readme_d912fa3fe3a8.png\" \u002F>\n\u003C\u002Fp>\n\nAt a high level:\n\n1. You describe your business domain with Wren's semantic model and MDL.\n2. Wren Engine captures the context agents need: models, metrics, relationships, and access rules.\n3. It analyzes intent and plans correct queries across your underlying data sources.\n4. MCP clients and AI agents interact with that context through a clean interface.\n5. Teams keep refining the model as business logic and systems evolve.\n\nThis is the practical open source path from text-to-SQL toward context-aware data agents.\n\nThat means your agent is no longer asking, \"Which raw table should I query?\"\n\nIt is asking, \"Which business concept, metric, or governed slice of context do I need to answer this task correctly?\"\n\n## Built For Agent Builders\n\nWren Engine is especially useful for the open source community building agent-native workflows in tools like:\n\n- OpenClaw\n- Claude Code\n- VS Code\n- Claude Desktop\n- Cline\n- Cursor\n\nIf your environment can speak MCP, call HTTP APIs, or embed a semantic service, Wren Engine can become the context layer behind your agent.\n\nUse it to power experiences like:\n\n- natural-language analytics with trusted business definitions\n- AI copilots that can answer questions across governed enterprise data\n- agents that generate dashboards, reports, and workflow decisions\n- code assistants that need real business context, not just schema dumps\n- internal AI tools that should be grounded in semantic models instead of ad hoc SQL\n\nThis is especially important in developer-facing agent environments, where the assistant may understand your codebase but still lacks the business context required to answer data questions correctly.\n\n## Supported Data Sources\n\nWren Engine is built to work across modern data stacks, including warehouses, databases, and file-based sources.\n\nCurrent open source support includes connectors such as:\n\n- Amazon S3\n- Apache Spark\n- Apache Doris\n- Athena\n- BigQuery\n- ClickHouse\n- Databricks\n- DuckDB\n- Google Cloud Storage\n- Local files\n- MinIO\n- MySQL\n- Oracle\n- PostgreSQL\n- Redshift\n- SQL Server\n- Snowflake\n- Trino\n\nSee the connector API docs in the project documentation for the latest connection schemas and capabilities.\n\n## Get Started\n\n### Use Wren Engine through MCP\n\nIf you want to use Wren Engine from an Claude Code or MCP-capable IDE, start here:\n\n- [Quick start: Chat with jaffle_shop using Wren Engine + Claude Code](https:\u002F\u002Fdocs.getwren.ai\u002Foss\u002Fengine\u002Fget_started\u002Fquickstart)\n- [Quick start with Claude Desktop](https:\u002F\u002Fdocs.getwren.ai\u002Foss\u002Fengine\u002Fget_started\u002Fquickstart_claude)\n- [Understanding Wren AI project structure](https:\u002F\u002Fdocs.getwren.ai\u002Foss\u002Fengine\u002Fget_started\u002Fstructure)\n\nThe MCP server includes:\n\n- a local Web UI for connection and MDL setup\n- read-only mode for safer agent usage\n- manifest deployment and validation tools\n- metadata tools for remote schema discovery\n\n### Learn the concepts\n\n- [What is context?](https:\u002F\u002Fdocs.getwren.ai\u002Foss\u002Fengine\u002Fconcept\u002Fwhat_is_context)\n- [What is Modeling Definition Language (MDL)?](https:\u002F\u002Fdocs.getwren.ai\u002Foss\u002Fengine\u002Fconcept\u002Fwhat_is_mdl)\n- [Benefits of Wren Engine with LLMs](https:\u002F\u002Fdocs.getwren.ai\u002Foss\u002Fengine\u002Fconcept\u002Fbenefits_llm)\n- [Your Data Agents Need Context](https:\u002F\u002Fa16z.com\u002Fyour-data-agents-need-context\u002F)\n- [Powering Semantic SQL for AI Agents with Apache DataFusion](https:\u002F\u002Fgetwren.ai\u002Fpost\u002Fpowering-semantic-sql-for-ai-agents-with-apache-datafusion)\n\n\n\n## Wren Engine vs. Other Data Tools\n\nPeople often compare Wren Engine to catalog services like DataHub, raw database MCP servers, BI semantic tools, or text-to-SQL agents.\n\nThe simple difference is:\n\n- those tools usually help an agent find data or generate SQL\n- Wren Engine helps an agent understand business meaning and produce the right query through a context engine\n\n| Tool type | What it gives the agent | What Wren Engine adds |\n| --- | --- | --- |\n| Data catalog services | Tables, columns, lineage, owners, descriptions | Business models, metrics, relationships, and governed query planning |\n| Raw database or schema access | Direct access to schemas and SQL execution | A business layer above raw tables so the agent does not have to guess intent |\n| BI or semantic tools | Curated metrics and entities for analytics workflows | An open context layer designed for MCP and agent workflows |\n| Text-to-SQL agents | Fast SQL generation from natural language | Better accuracy by grounding generation in explicit business definitions |\n\nMany teams will want both:\n\n- a catalog to inventory and document the data estate\n- Wren Engine to turn that data into agent-ready context\n\nWhy that matters:\n\n- more accurate answers because joins and metrics are defined instead of guessed\n- more consistent answers because every agent uses the same business definitions\n- safer data access because governance can be carried into query planning\n- less prompt engineering because the context lives in the engine, not in the prompt\n\nWithout Wren, an agent may know where the data is but still not know how to answer the question correctly.\n\n## Repository Map\n\nThis repository contains the core engine modules:\n\n| Module | What it does |\n| --- | --- |\n| [`wren-core`](.\u002Fwren-core) | Rust context engine powered by Apache DataFusion for MDL analysis, planning, and optimization |\n| [`wren-core-base`](.\u002Fwren-core-base) | Shared manifest and modeling types |\n| [`wren-core-py`](.\u002Fwren-core-py) | PyO3 bindings that expose the engine to Python |\n| [`ibis-server`](.\u002Fibis-server\u002F) | FastAPI server for query execution, validation, metadata, and connectors |\n| [`mcp-server`](.\u002Fmcp-server\u002F) | MCP server for AI agents and MCP-compatible clients |\n\nSupporting modules include `wren-core-legacy`, `example`, `mock-web-server`, and benchmarking utilities.\n\n### Developer entry points\n\n- [`wren-core\u002FREADME.md`](.\u002Fwren-core\u002FREADME.md)\n- [`wren-core-py\u002FREADME.md`](.\u002Fwren-core-py\u002FREADME.md)\n- [`ibis-server\u002FREADME.md`](.\u002Fibis-server\u002FREADME.md)\n- [`mcp-server\u002FREADME.md`](.\u002Fmcp-server\u002FREADME.md)\n\n## Local Development\n\nCommon workflows:\n\n```bash\n# Rust context engine\ncd wren-core\ncargo check --all-targets\n\n# Python + connector server\ncd ibis-server\njust install\njust dev\n\n# MCP server\ncd mcp-server\n# see module README for uv-based setup\n```\n\n## Project Status\n\nWren Engine is actively evolving in the open. The current focus is to make the context engine, execution path, and MCP integration stronger for real-world agent workflows.\n\nIf you are building with agents today, this is a great time to get involved.\n\n## Community\n\n- Join our [Discord community](https:\u002F\u002Fdiscord.gg\u002F5DvshJqG8Z)\n- Open a [GitHub issue](https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fissues)\n- Explore [Wren AI](https:\u002F\u002Fgithub.com\u002FCanner\u002FWrenAI) to see the broader product vision\n- Read the market thesis from a16z: [Your Data Agents Need Context](https:\u002F\u002Fa16z.com\u002Fyour-data-agents-need-context\u002F)\n\nWren Engine is for builders who believe AI needs better context, not just better prompts.\n","\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fgetwren.ai\">\n    \u003Cpicture>\n      \u003Csource media=\"(prefers-color-scheme: light)\" srcset=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FCanner_wren-engine_readme_ebc49b477a99.png\">\n      \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FCanner_wren-engine_readme_ebc49b477a99.png\" alt=\"Wren AI logo\">\n    \u003C\u002Fpicture>\n    \u003Ch1 align=\"center\">Wren Engine\u003C\u002Fh1>\n  \u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  面向AI智能体的开放上下文引擎\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca aria-label=\"关注我们\" href=\"https:\u002F\u002Fx.com\u002Fgetwrenai\">\n    \u003Cimg alt=\"\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F-@getwrenai-blue?style=for-the-badge&logo=x&logoColor=white&labelColor=gray&logoWidth=20\">\n  \u003C\u002Fa>\n  \u003Ca aria-label=\"许可证\" href=\"https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fblob\u002Fmain\u002FLICENSE\">\n    \u003Cimg alt=\"\" src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flicense\u002Fcanner\u002Fwren-engine?color=blue&style=for-the-badge\">\n  \u003C\u002Fa>\n  \u003Ca aria-label=\"加入GitHub社区\" href=\"https:\u002F\u002Fdiscord.gg\u002F5DvshJqG8Z\">\n    \u003Cimg alt=\"\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F-JOIN%20THE%20COMMUNITY-blue?style=for-the-badge&logo=discord&logoColor=white&labelColor=grey&logoWidth=20\">\n  \u003C\u002Fa>\n  \u003Ca aria-label=\"Canner\" href=\"https:\u002F\u002Fcannerdata.com\u002F\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F%F0%9F%A7%A1-Made%20by%20Canner-blue?style=for-the-badge\">\n  \u003C\u002Fa>\n\u003C\u002Fp>\n\n> Wren Engine是[ Wren AI](https:\u002F\u002Fgithub.com\u002FCanner\u002FWrenAI)背后的开放基础架构：一个语义化、受治理且适用于智能体的业务数据上下文层。\n\nhttps:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F037f2317-d8e5-41f2-9563-1e0bce4ef50c\n\n## 为什么需要Wren Engine\n\nAI智能体已经能够调用工具、浏览文档和编写代码。然而，它们仍然难以处理业务上下文。\n\n企业数据不仅仅是数据仓库中的行数据，还包括定义、指标、关系、权限、血缘关系以及使用意图等信息。即使智能体可以连接到PostgreSQL或Snowflake，它仍然无法理解“净收入”、“活跃客户”或“销售漏斗覆盖率”在贵公司究竟意味着什么。\n\n这不仅是我们提出的观点，在a16z的文章《你的数据智能体需要上下文》中也指出，仅具备连接能力和SQL生成能力的数据智能体，在缺乏业务定义、权威数据上下文以及解释公司实际运作方式的运营知识时，将难以发挥作用。\n\n\u003Cp align=\"center\">\n  \u003Cimg width=\"888\" height=\"678\" alt=\"Wren Engine出现前的挑战\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FCanner_wren-engine_readme_24dfeba4924e.png\" \u002F>\n\u003C\u002Fp>\n\nWren Engine正是为了解决这一问题而诞生的。\n\n它为AI智能体提供了一个可进行推理的上下文引擎，使智能体能够：\n\n- 理解模型而非原始表\n- 使用可信的指标而非自行编写SQL\n- 按照关系进行查询而非猜测联接方式\n- 遵守治理规则而非绕过限制\n- 将自然语言转化为准确且可解释的数据访问请求\n\n这是面向构建下一代智能体体验团队的开源上下文引擎。\n\n## 愿景\n\n我们相信，AI的未来并非仅仅依赖于工具调用，而是基于丰富的上下文系统，让智能体能够在对业务现实达成共识的基础上进行推理、检索、规划并采取行动。\n\nWren Engine就是我们为实现这一未来所作出的开源贡献。\n\n\u003Cp align=\"center\">\n  \u003Cimg width=\"1267\" height=\"705\" alt=\"使用Wren Engine后\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FCanner_wren-engine_readme_9914a5c6356a.png\" \u002F>\n\u003C\u002Fp>\n\n它是Wren AI背后的语义与执行基础，并且设计为能够超越单一产品而广泛适用：\n\n- 可嵌入MCP服务器和智能体工作流中\n- 能够连接现代数据仓库、数据库和文件系统\n- 表达力足够强大，可通过MDL建模业务语义\n- 性能稳健，足以支持受治理的企业级应用场景\n- 开放程度高，便于社区扩展、集成和二次开发\n\n如果说Wren AI是完整的愿景，那么Wren Engine就是使这一愿景具备互操作性的开放核心。\n\n## Wren Engine的功能\n\nWren Engine将业务数据转化为智能体可用的上下文。\n\n\u003Cp align=\"center\">\n  \u003Cimg width=\"2199\" height=\"1537\" alt=\"引擎架构\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FCanner_wren-engine_readme_d912fa3fe3a8.png\" \u002F>\n\u003C\u002Fp>\n\n从高层次来看：\n\n1. 您使用Wren的语义模型和MDL描述您的业务领域。\n2. Wren Engine捕获智能体所需的上下文：模型、指标、关系和访问规则。\n3. 它分析用户意图，并规划出针对底层数据源的正确查询。\n4. MCP客户端和AI智能体通过清晰的接口与该上下文交互。\n5. 团队会随着业务逻辑和系统的演进而不断优化模型。\n\n这就是一条实用的开源路径，从文本到SQL，最终实现具备上下文感知的数据智能体。\n\n这意味着您的智能体不再会问：“我应该查询哪张原始表？”\n\n而是会问：“为了正确回答这个任务，我需要哪个业务概念、指标，或者受治理的上下文切片？”\n\n## 专为智能体开发者打造\n\nWren Engine对于在以下工具中构建原生智能体工作流的开源社区尤为有用：\n\n- OpenClaw\n- Claude Code\n- VS Code\n- Claude Desktop\n- Cline\n- Cursor\n\n如果您的环境能够支持MCP协议、调用HTTP API或嵌入语义服务，那么Wren Engine就可以成为您智能体背后的上下文层。\n\n您可以利用它来实现以下场景：\n\n- 基于可信业务定义的自然语言分析\n- 能够跨受治理的企业数据回答问题的AI助手\n- 可生成仪表盘、报告和工作流决策的智能体\n- 需要真实业务上下文而非单纯模式转储的代码助手\n- 应当以语义模型为基础而非临时编写SQL的内部AI工具\n\n这一点在面向开发者的智能体环境中尤为重要，因为助手可能理解您的代码库，但仍然缺乏正确回答数据相关问题所需的业务上下文。\n\n## 支持的数据源\n\nWren Engine旨在兼容现代数据栈，包括数据仓库、数据库和基于文件的数据源。\n\n当前开源支持的连接器包括：\n\n- Amazon S3\n- Apache Spark\n- Apache Doris\n- Athena\n- BigQuery\n- ClickHouse\n- Databricks\n- DuckDB\n- Google Cloud Storage\n- 本地文件\n- MinIO\n- MySQL\n- Oracle\n- PostgreSQL\n- Redshift\n- SQL Server\n- Snowflake\n- Trino\n\n请参阅项目文档中的连接器API说明，以获取最新的连接方案和功能支持信息。\n\n## 开始使用\n\n### 通过MCP使用Wren Engine\n\n如果您希望通过Claude Code或其他支持MCP的IDE使用Wren Engine，请从这里开始：\n\n- [快速入门：使用Wren Engine + Claude Code与jaffle_shop聊天](https:\u002F\u002Fdocs.getwren.ai\u002Foss\u002Fengine\u002Fget_started\u002Fquickstart)\n- [Claude Desktop快速入门](https:\u002F\u002Fdocs.getwren.ai\u002Foss\u002Fengine\u002Fget_started\u002Fquickstart_claude)\n- [了解Wren AI项目结构](https:\u002F\u002Fdocs.getwren.ai\u002Foss\u002Fengine\u002Fget_started\u002Fstructure)\n\nMCP服务器包含：\n\n- 用于连接和MDL设置的本地Web界面\n- 只读模式，以提高智能体使用的安全性\n- 清单部署和验证工具\n- 用于远程模式发现的元数据工具\n\n### 学习相关概念\n\n- [什么是上下文？](https:\u002F\u002Fdocs.getwren.ai\u002Foss\u002Fengine\u002Fconcept\u002Fwhat_is_context)\n- [什么是建模定义语言（MDL）？](https:\u002F\u002Fdocs.getwren.ai\u002Foss\u002Fengine\u002Fconcept\u002Fwhat_is_mdl)\n- [Wren Engine 与 LLM 结合的优势](https:\u002F\u002Fdocs.getwren.ai\u002Foss\u002Fengine\u002Fconcept\u002Fbenefits_llm)\n- [你的数据代理需要上下文](https:\u002F\u002Fa16z.com\u002Fyour-data-agents-need-context\u002F)\n- [利用 Apache DataFusion 为 AI 代理提供语义 SQL 支持](https:\u002F\u002Fgetwren.ai\u002Fpost\u002Fpowering-semantic-sql-for-ai-agents-with-apache-datafusion)\n\n\n\n## Wren Engine 与其他数据工具的对比\n\n人们常常将 Wren Engine 与 DataHub 等元数据目录服务、原始数据库 MCP 服务器、BI 语义工具或文本转 SQL 代理进行比较。\n\n其根本区别在于：\n\n- 这些工具通常帮助代理查找数据或生成 SQL；\n- 而 Wren Engine 则通过上下文引擎帮助代理理解业务含义，并生成正确的查询。\n\n| 工具类型 | 它为代理提供的功能 | Wren Engine 增加的价值 |\n| --- | --- | --- |\n| 数据目录服务 | 表、列、血缘关系、负责人、描述 | 业务模型、指标、关系以及受治理约束的查询规划 |\n| 原始数据库或模式访问 | 直接访问模式并执行 SQL | 在原始表之上构建业务层，使代理无需猜测意图 |\n| BI 或语义工具 | 针对分析工作流的精选指标和实体 | 专为 MCP 和代理工作流设计的开放上下文层 |\n| 文本转 SQL 代理 | 从自然语言快速生成 SQL | 通过将生成过程基于明确的业务定义，提升准确性 |\n\n许多团队会同时需要两者：\n\n- 一个元数据目录来盘点和记录数据资产；\n- Wren Engine 将这些数据转化为代理可用的上下文。\n\n这样做之所以重要：\n\n- 查询结果更准确，因为连接和指标是明确定义的，而非凭猜测得出；\n- 查询结果更一致，因为所有代理都使用相同的业务定义；\n- 数据访问更安全，因为治理规则可以融入查询规划中；\n- 减少对提示工程的依赖，因为上下文直接存在于引擎中，而非提示中。\n\n如果没有 Wren，代理可能知道数据在哪里，却仍然无法正确回答问题。\n\n## 仓库结构\n\n该仓库包含核心引擎模块：\n\n| 模块 | 功能 |\n| --- | --- |\n| [`wren-core`](.\u002Fwren-core) | 基于 Apache DataFusion 的 Rust 上下文引擎，用于 MDL 分析、规划和优化 |\n| [`wren-core-base`](.\u002Fwren-core-base) | 共享的清单和建模类型 |\n| [`wren-core-py`](.\u002Fwren-core-py) | PyO3 绑定，将引擎暴露给 Python |\n| [`ibis-server`](.\u002Fibis-server\u002F) | FastAPI 服务器，用于查询执行、验证、元数据和连接器 |\n| [`mcp-server`](.\u002Fmcp-server\u002F) | 适用于 AI 代理和兼容 MCP 的客户端的 MCP 服务器 |\n\n辅助模块包括 `wren-core-legacy`、`example`、`mock-web-server` 以及基准测试工具。\n\n### 开发者入口\n\n- [`wren-core\u002FREADME.md`](.\u002Fwren-core\u002FREADME.md)\n- [`wren-core-py\u002FREADME.md`](.\u002Fwren-core-py\u002FREADME.md)\n- [`ibis-server\u002FREADME.md`](.\u002Fibis-server\u002FREADME.md)\n- [`mcp-server\u002FREADME.md`](.\u002Fmcp-server\u002FREADME.md)\n\n## 本地开发\n\n常见工作流程：\n\n```bash\n# Rust 上下文引擎\ncd wren-core\ncargo check --all-targets\n\n# Python + 连接器服务器\ncd ibis-server\njust install\njust dev\n\n# MCP 服务器\ncd mcp-server\n# 请参阅模块 README 获取基于 uv 的设置说明\n```\n\n## 项目状态\n\nWren Engine 正在开源社区中积极发展。当前的重点是强化上下文引擎、执行路径以及与 MCP 的集成，以更好地支持实际的代理工作流。\n\n如果你目前正在构建基于代理的应用，现在正是参与的好时机。\n\n## 社区\n\n- 加入我们的 [Discord 社区](https:\u002F\u002Fdiscord.gg\u002F5DvshJqG8Z)\n- 打开一个 [GitHub 问题](https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fissues)\n- 探索 [Wren AI](https:\u002F\u002Fgithub.com\u002FCanner\u002FWrenAI)，了解更广泛的产品愿景\n- 阅读 a16z 的市场观点：[你的数据代理需要上下文](https:\u002F\u002Fa16z.com\u002Fyour-data-agents-need-context\u002F)\n\nWren Engine 专为那些相信 AI 需要更好的上下文，而不仅仅是更好的提示词的开发者打造。","# Wren Engine 快速上手指南\n\nWren Engine 是一个专为 AI Agent 设计的开源上下文引擎。它通过语义模型（MDL）将原始数据转化为具备业务含义的上下文，帮助 AI Agent 理解指标、关系和治理规则，从而生成准确的查询而非盲目猜测 SQL。\n\n## 环境准备\n\n在开始之前，请确保您的开发环境满足以下要求：\n\n*   **操作系统**: Linux, macOS 或 Windows (WSL2 推荐)\n*   **运行时依赖**:\n    *   **Rust**: 用于编译核心引擎 (`wren-core`)。建议安装最新稳定版。\n    *   **Python**: 3.9 或更高版本，用于运行连接器服务器和 MCP 服务。\n    *   **Just**: 任务运行器（可选但推荐，用于简化开发命令），可通过 `cargo install just` 安装。\n    *   **uv** (可选): 用于管理 Python 依赖和 MCP 服务器环境。\n*   **数据源**: 至少拥有一个可连接的数据源（如 PostgreSQL, DuckDB, CSV 文件等）用于测试。\n\n## 安装步骤\n\nWren Engine 由多个模块组成，最核心的使用方式是通过 **MCP Server** 让 AI Agent 调用，或通过 **Ibis Server** 进行 API 交互。以下是基于源码的快速设置流程。\n\n### 1. 克隆仓库\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine.git\ncd wren-engine\n```\n\n### 2. 设置核心引擎与连接器服务 (Ibis Server)\n\n此步骤安装用于执行查询和处理元数据的后端服务。\n\n```bash\n# 进入 ibis-server 目录\ncd ibis-server\n\n# 安装依赖 (需要已安装 just 工具，若未安装可直接使用 pip\u002Fuv)\njust install\n\n# 或者手动安装 Python 依赖\npip install -r requirements.txt\n```\n\n### 3. 设置 MCP 服务器 (推荐用于 AI Agent)\n\n如果您希望将 Wren Engine 集成到 Claude Desktop、Cursor 或其他支持 MCP 的 IDE 中：\n\n```bash\n# 进入 mcp-server 目录\ncd ..\u002Fmcp-server\n\n# 使用 uv 设置环境 (推荐)\nuv sync\n\n# 或者使用 pip\npip install -e .\n```\n\n> **注意**: 国内开发者若遇到 PyPI 下载缓慢，可在安装命令前添加国内镜像源，例如：\n> `pip install -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple -r requirements.txt`\n\n## 基本使用\n\n最简单的方式是通过 **MCP** 协议让 AI Agent 直接与 Wren Engine 交互。以下以配置本地 MCP 并连接一个简单的数据集为例。\n\n### 第一步：准备业务语义模型 (MDL)\n\nWren Engine 的核心是 MDL (Modeling Definition Language)。您需要定义一个 JSON 文件来描述业务模型。以下是一个极简的 `manifest.json` 示例（假设您有一个本地的 `jaffle_shop` DuckDB 文件）：\n\n```json\n{\n  \"models\": [\n    {\n      \"name\": \"orders\",\n      \"tableReference\": {\n        \"schema\": \"main\",\n        \"table\": \"orders\"\n      },\n      \"columns\": [\n        {\n          \"name\": \"order_id\",\n          \"type\": \"INTEGER\",\n          \"expression\": \"order_id\"\n        },\n        {\n          \"name\": \"amount\",\n          \"type\": \"DOUBLE\",\n          \"expression\": \"amount\"\n        }\n      ],\n      \"primaryKey\": \"order_id\"\n    }\n  ],\n  \"metrics\": [],\n  \"relationships\": []\n}\n```\n\n### 第二步：启动 MCP 服务器\n\n在 `mcp-server` 目录下，配置并启动服务。您可以将其配置为读取上述 manifest 并连接到数据源。\n\n如果是本地开发测试，可以直接通过命令行参数或配置文件指定数据源和 manifest 路径。以下是一个典型的启动逻辑（具体参数请参考 `mcp-server` 下的配置文档）：\n\n```bash\n# 在 mcp-server 目录下运行\n# 假设您已配置好环境变量或使用配置文件指向您的 manifest 和数据源\nuv run mcp_server --manifest-path ..\u002Fexample\u002Fmanifest.json --data-source duckdb\n```\n\n### 第三步：在 AI 客户端中连接\n\n以 **Claude Desktop** 或支持 MCP 的 **Cursor\u002FVS Code** 为例，在配置文件中添加 Wren Engine 的 MCP 服务器路径。\n\n**Claude Desktop 配置示例 (`claude_desktop_config.json`):**\n\n```json\n{\n  \"mcpServers\": {\n    \"wren-engine\": {\n      \"command\": \"uv\",\n      \"args\": [\"run\", \"--directory\", \"\u002Fpath\u002Fto\u002Fwren-engine\u002Fmcp-server\", \"mcp_server\"],\n      \"env\": {\n        \"WREN_MANIFEST_PATH\": \"\u002Fpath\u002Fto\u002Fyour\u002Fmanifest.json\",\n        \"WREN_DATA_SOURCE\": \"duckdb\"\n      }\n    }\n  }\n}\n```\n\n重启 AI 客户端后，您就可以直接使用自然语言提问，例如：\n\n> \"Show me the total order amount.\"\n\nWren Engine 会自动解析您的 MDL 模型，理解 `amount` 是业务指标，并生成正确的查询计划，而不是让 AI 去猜测表结构。\n\n### 替代方案：直接 API 调用 (Ibis Server)\n\n如果不使用 MCP，也可以直接启动 Ibis Server 进行 HTTP 调用：\n\n```bash\n# 在 ibis-server 目录下\njust dev\n# 或\npython -m uvicorn main:app --reload\n```\n\n服务默认启动在 `http:\u002F\u002Flocalhost:8000`。您可以通过 POST 请求发送 SQL 或 MDL 查询请求。","某电商公司的数据团队正试图构建一个 AI 助手，让非技术背景的销售经理能直接通过自然语言查询复杂的业务指标（如“净营收”或“活跃客户数”）。\n\n### 没有 wren-engine 时\n- **语义理解偏差**：AI 仅连接数据库表，无法区分“订单金额”与财务定义的“净营收”，常因缺少业务逻辑而生成错误的 SQL。\n- **关联关系混乱**：面对多表关联，AI 只能猜测连接键（Join Keys），导致查询结果出现数据重复或丢失。\n- **指标口径不一**：不同部门对“活跃用户”定义不同，AI 缺乏统一的度量衡标准，输出结果可信度低。\n- **维护成本高昂**：每次业务规则变更，开发人员需手动重写提示词或调整底层代码，响应速度慢。\n\n### 使用 wren-engine 后\n- **模型化理解**：wren-engine 将原始表抽象为带有业务含义的语义模型，AI 能精准识别“净营收”的计算逻辑而非盲目查表。\n- **预定义关联路径**：通过 MDL（模型定义语言）明确表间关系，AI 不再猜测 Join 条件，确保查询路径准确无误。\n- **统一度量标准**：在引擎层固化企业级指标定义，无论谁提问，AI 输出的“活跃用户”数据始终基于同一套真理源。\n- **敏捷迭代**：业务规则变更只需更新语义模型配置，无需修改代码，AI 即刻适配新的分析需求。\n\nwren-engine 通过构建统一的语义上下文层，让 AI 代理真正读懂企业业务，将自然语言转化为准确、可解释且受治理的数据洞察。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FCanner_wren-engine_4ca9f3ed.png","Canner","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002FCanner_bfb22412.png","Open-source GenBI AI Agent! Bringing AI to Data.",null,"contact@getwren.ai","getwrenai","https:\u002F\u002Fgetwren.ai\u002Foss","https:\u002F\u002Fgithub.com\u002FCanner",[85,89,93,97,101,105,109,113,116],{"name":86,"color":87,"percentage":88},"Java","#b07219",52,{"name":90,"color":91,"percentage":92},"Python","#3572A5",26.9,{"name":94,"color":95,"percentage":96},"Rust","#dea584",18.7,{"name":98,"color":99,"percentage":100},"ANTLR","#9DC3FF",1,{"name":102,"color":103,"percentage":104},"Shell","#89e051",0.6,{"name":106,"color":107,"percentage":108},"HTML","#e34c26",0.3,{"name":110,"color":111,"percentage":112},"Jupyter Notebook","#DA5B0B",0.2,{"name":114,"color":115,"percentage":112},"Just","#384d54",{"name":117,"color":115,"percentage":118},"Dockerfile",0.1,631,182,"2026-04-03T19:34:43","Apache-2.0",4,"未说明",{"notes":126,"python":124,"dependencies":127},"该工具核心引擎 (wren-core) 基于 Rust 开发，依赖 Apache DataFusion；提供 Python 绑定 (wren-core-py) 和 FastAPI 服务 (ibis-server)。MCP 服务器部分建议使用 uv 进行环境设置。支持多种数据源连接器（如 PostgreSQL, Snowflake, DuckDB 等）。文档未明确列出具体的操作系统、GPU、内存或 Python 版本硬性要求，主要通过 cargo 和 just 命令进行本地开发构建。",[128,129,130,131,132],"Rust (cargo)","Apache DataFusion","PyO3","FastAPI","uv (MCP server setup)",[13,14,51,26,15],[135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150],"business-intelligence","data","data-analysis","data-analytics","data-lake","data-warehouse","sql","semantic","semantic-layer","llm","hacktoberfest","agent","agentic-ai","ai","mcp","mcp-server","2026-03-27T02:49:30.150509","2026-04-06T08:09:13.983440",[154,159,164,169,174,179],{"id":155,"question_zh":156,"answer_zh":157,"source_url":158},16291,"Wren Engine 项目的主要模块有哪些？它们各自的功能是什么？","该项目正在过渡到 Rust 实现，许多旧的 Java 模块可以忽略。主要关注以下三个模块：\n1. ibis-server：负责数据源连接（如 Postgres, BigQuery 等）的服务器。\n2. wren-modeling-rs：处理数据建模的 Rust 模块，能基于 MDL（由 WrenAI web 提供）将语义 SQL 转换为真实 SQL。\n3. wren-modeling-py：wren-modeling-rs 的 Python API。","https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fissues\u002F715",{"id":160,"question_zh":161,"answer_zh":162,"source_url":163},16292,"如何在本地以独立 Java 应用程序的形式运行和调试 Wren Engine？","入口点是 `WrenServer`。如果你使用 IDE，可以通过 VM 选项指定配置文件路径：\n`-Dconfig=etc-pg\u002Fconfig.properties`\n\n或者通过 Maven 构建可执行 jar 包：\n`mvn clean package -DskipTests -P exec-jar`\n生成的 jar 包位于 `wren-server\u002Ftarget`。启动时同样需要提供配置文件。配置列表参考官方文档，具体启动逻辑可参考 `docker\u002Fentrypoint.sh`。","https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fissues\u002F571",{"id":165,"question_zh":166,"answer_zh":167,"source_url":168},16293,"在 x86 Mac 环境下初始化 Accio 项目失败，提示找不到配置文件怎么办？","这通常与 Docker 环境有关。尝试切换到 OrbStack (https:\u002F\u002Forbstack.dev\u002F) 往往能解决问题。此外，检查 `docker-compose` 的版本，某些版本可能需要额外的 yml 配置，建议尝试更新到较新版本（如 v2.19.1）。","https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fissues\u002F371",{"id":170,"question_zh":171,"answer_zh":172,"source_url":173},16294,"WrenAI 是否提供将用户文本提示直接转换为 SQL 查询的 API 端点？","关于 WrenAI 作为“用户提示文本到 SQL 查询”转换工具的 API 端点讨论，已移至 WrenAI 仓库进行专门探讨。请前往 WrenAI 项目的 Issue #331 查看相关进展。","https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fissues\u002F566",{"id":175,"question_zh":176,"answer_zh":177,"source_url":178},16295,"Maven 编译时出现 'Could not get HEAD Ref' 错误如何解决？","该错误通常表示 Git 目录中没有提交记录。请确保你的 `.git` 目录中存在至少一次 commit。如果日志显示成功信息，则表明问题已解决。","https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fissues\u002F1016",{"id":180,"question_zh":181,"answer_zh":182,"source_url":158},16296,"如何在 transform_sql 中设置默认的 catalog 和 schema 以简化查询？","目前 `wren-core-rs` 需要限定表名（如 `wren.public.orders`）。解决方案是修改 `transform_sql` API，将 MDL 的 catalog 和 schema 应用到 DataFusion SessionContext 中，从而允许用户直接使用表名（如 `orders`）进行查询。这是一个已知的需求，相关代码改进已在进行中。",[184,189,194,199,204,209,214,219,224,229,234,239,244,249,254,259,264,269,274,279],{"id":185,"version":186,"summary_zh":187,"released_at":188},98619,"0.24.6","## 变更内容\n* 修复 (文档)：@goldmedal 在 https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1462 中修正了 README 中的拼写错误。\n* 重构 README，采用“上下文引擎”术语：@chilijung 在 https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1463 中完成。\n* 杂项 (文档)：@chilijung 在 https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1464 中恢复了 README 中的 Wren Engine 对比部分。\n* 更新 README.md：@chilijung 在 https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1465 中完成。\n* 更新 README.md：@chilijung 在 https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1467 中完成。\n* 文档：添加各模块的 .claude\u002FCLAUDE.md 文件，并重定向 AGENTS.md：@goldmedal 在 https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1466 中完成。\n* 修复 (技能)：将更新说明中的 curl|bash 替换为 npx skills：@goldmedal 在 https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1469 中完成。\n* 功能 (ibis-server)：根据 issue #948 添加缺失的 MySQL 函数：@KerberosClaw 在 https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1470 中完成。\n* 功能 (wren)：添加独立的 wren Python SDK 包：@goldmedal 在 https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1471 中完成。\n* 功能 (skills)：添加 Claude Code 插件清单及市场：@goldmedal 在 https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1472 中完成。\n* 杂项：通过添加 Wren AI 链接和图片更新来增强 README：@chilijung 在 https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1475 中完成。\n* 杂项：重命名 wren 独立包：@goldmedal 在 https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1477 中完成。\n* 功能 (skills)：添加 wren-http-api 技能，重命名 generate-mdl，并针对 ClawHub 进行优化：@goldmedal 在 https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1473 中完成。\n* 修复 (mcp-server, skills)：修复测试报告中导致入驻受阻的问题：@goldmedal 在 https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1478 中完成。\n\n## 新贡献者\n* @KerberosClaw 在 https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1470 中完成了首次贡献。\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fcompare\u002F0.24.5...0.24.6","2026-03-26T02:10:47",{"id":190,"version":191,"summary_zh":192,"released_at":193},98620,"0.24.5","## 变更内容\n* 文档：改进 DuckDB 快速入门设置，以减少用户操作中的常见问题，由 @goldmedal 在 https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1454 中完成。\n* 杂项：更新 README，加入 a16z 上下文层的框架说明，由 @chilijung 在 https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1453 中完成。\n* 文档（技能）：强制使用 Web UI 作为连接信息设置的唯一方式，由 @goldmedal 在 https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1455 中完成。\n* 杂项（文档）：修复 README 文本，由 @chilijung 在 https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1458 中完成。\n* 杂项（ibis-server）：修复 Trino 引擎中实数类型及嵌套复合类型的映射问题，由 @okayhooni 在 https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1456 中完成。\n* 功能：为 ClickHouse 添加 LowCardinality、Bool、DateTime64 等类型映射支持，由 @ahmedjawedaj 在 https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1448 中完成。\n* 修复（mcp-server）：修复 DuckDB 连接信息及 Dockerfile 缓存问题，由 @goldmedal 在 https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1461 中完成。\n* 文档：更新 README 中的措辞，由 @chilijung 在 https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1460 中完成。\n\n## 新贡献者\n* @ahmedjawedaj 在 https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1448 中完成了首次贡献。\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fcompare\u002F0.24.4...0.24.5","2026-03-18T03:00:36",{"id":195,"version":196,"summary_zh":197,"released_at":198},98621,"0.24.4","## 变更内容\n* 功能（wren-engine）：@catpineapple 在 https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1430 中添加了对 Apache Doris 连接器的支持\n* 文档：@wwwy3y3 在 https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1440 中新增了 AI 代理上下文相关的 CLAUDE.md 和 settings.json 文件\n* 文档：@goldmedal 在 https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1441 中扩展了 CLAUDE.md，增加了完整的构建、架构和技能参考\n* 修复（ibis-server）：@okayhooni 在 https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1442 中修复了 Trino 对 `timestamp with time zone` 时间戳类型的映射问题\n* 杂项（ibis-server）：@okayhooni 在 https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1445 中将 Trino 元数据中的 table_comments 改为使用 LEFT JOIN，以避免遗漏表\n* 功能（mcp-server）：@goldmedal 在 https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1447 中添加了支持只读模式的连接信息管理 Web UI\n* 文档：@goldmedal 在 https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1446 中新增了 Model、Relationship 和 View 的 MDL 参考文档\n* 杂项：@goldmedal 在 https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1444 中解除了 wren-core-py 对 Python 3.11 版本的锁定\n* 修复（core）：@goldmedal 在 https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1378 中为 MSSQL 生成了 trim 函数\n* 杂项：@chilijung 在 https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1451 中更新了 README 文件\n\n## 新贡献者\n* @catpineapple 在 https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1430 中完成了首次贡献\n* @okayhooni 在 https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1442 中完成了首次贡献\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fcompare\u002F0.24.3...0.24.4","2026-03-17T05:17:50",{"id":200,"version":201,"summary_zh":202,"released_at":203},98622,"0.24.3","## 变更内容\n* 功能（技能）：在 wren-mcp-setup 中添加 Docker 镜像更新检查，由 @goldmedal 在 https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1433 中实现。\n* 修复：允许所有连接器的连接信息中使用整数端口，由 @goldmedal 在 https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1434 中实现。\n* 修复：解决路径注入和工作流权限缺失的代码扫描告警，由 @goldmedal 在 https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1435 中实现。\n* 功能：新增 DuckDB 数据源，并支持 v3 元数据 API，由 @goldmedal 在 https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1436 中实现。\n* 文档：添加 Wren Engine 文档，由 @goldmedal 在 https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1437 中实现。\n* 文档（技能）：添加基于文件的连接器文档、venv 环境搭建说明，并修复路径及拼写问题，由 @goldmedal 在 https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1438 中实现。\n\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fcompare\u002F0.24.2...0.24.3","2026-03-10T09:46:45",{"id":205,"version":206,"summary_zh":207,"released_at":208},98623,"0.24.2","## 变更内容\n* 功能新增：支持 connectionFilePath，并对秘钥管理进行了全面重构，由 @goldmedal 在 https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1432 中实现。\n\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fcompare\u002F0.24.1...0.24.2","2026-03-09T06:10:10",{"id":210,"version":211,"summary_zh":212,"released_at":213},98624,"0.24.1","## 变更内容\n* chore(deps): 在 uv 组的 \u002Fmcp-server 目录下，将 mcp 从 1.19.0 升级至 1.23.0，由 @dependabot[bot] 完成，详情见 https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1408\n* deps(ibis): 在 \u002Fibis-server 目录下，升级 pyasn1、filelock 和 virtualenv，由 @dependabot[bot] 完成，详情见 https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1407\n* chore(doc): 更新支持的数据源，由 @goldmedal 完成，详情见 https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1409\n* deps(ibis): 解决 dependabot 的安全问题，由 @dependabot[bot] 完成，详情见 https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1421\n* fix(ibis): 处理 MySQL 的 JSON 结果，由 @goldmedal 完成，详情见 https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1377\n* fix(ibis): 修复 ClickHouse 中 Decimal\u002FNumeric 和 Nullable 类型的映射问题，由 @MarceloNunesAlves 完成，详情见 https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1423\n* fix: 实现 ClickHouse 方言并增强时间函数的映射，由 @MarceloNunesAlves 完成，详情见 https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1424\n* feat(mcp-server): 将 MCP 服务器嵌入 Docker 镜像，并附带技能和快速入门指南，由 @goldmedal 完成，详情见 https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1425\n* chore(deps): 在 uv 组的同一目录下进行两次更新，由 @dependabot[bot] 完成，详情见 https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1426\n* feat(skills): 添加自动更新通知和技能版本控制功能，由 @goldmedal 完成，详情见 https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1427\n* feat(mcp-server): 添加版本管理和发布流程，由 @goldmedal 完成，详情见 https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1428\n* fix: 使用单独的提交来同步 mcp-server 版本，以避免强制推送，由 @goldmedal 完成，详情见 https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1429\n\n## 新贡献者\n* @MarceloNunesAlves 在 https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1423 中完成了首次贡献\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fcompare\u002F0.23.0...0.24.1","2026-03-06T10:01:42",{"id":215,"version":216,"summary_zh":217,"released_at":218},98625,"0.23.0","## 变更内容\n* 修复（核心）：由 @goldmedal 在 https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1376 中修复了 MySQL 的 `EXTRACT` 解析问题。\n* 依赖（ibis）：在 \u002Fibis-server 中，将 urllib3 从 2.6.0 升级至 2.6.3，由 @dependabot[bot] 在 https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1400 中完成。\n\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fcompare\u002F0.22.2...0.23.0","2026-01-22T03:55:59",{"id":220,"version":221,"summary_zh":222,"released_at":223},98626,"0.22.2","## 变更内容\n* 功能：添加工具注解，以提升大模型对工具的理解，由 @triepod-ai 在 https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1394 中实现。\n* 功能（ibis）：支持从 BigQuery 的多个数据集或项目中列出表，由 @goldmedal 在 https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1391 中实现。\n* 依赖（ibis）：将 aiohttp 从 3.12.15 升级至 3.13.3，由 @dependabot[bot] 在 \u002Fibis-server 中完成，详见 https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1399。\n* 功能（ibis）：添加 Spark 连接器，由 @douenergy 在 https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1398 中实现。\n\n## 新贡献者\n* @triepod-ai 在 https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1394 中完成了首次贡献。\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fcompare\u002F0.22.1...0.22.2","2026-01-09T03:54:29",{"id":225,"version":226,"summary_zh":227,"released_at":228},98627,"0.22.1","## 变更内容\n* 修复(ibis)：@Davidbackx 在 https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1383 中添加了 Athena 列的文档说明。\n* 性能优化(mcp-server)：@Ray0907 在 https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1384 中为 O(1) 查找添加了 MDL 索引缓存。\n* 修复(ibis)：@goldmedal 在 https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1375 中将 MSSQL LIMIT 的下推翻译移至子查询，以支持分页功能。\n* 修复(ibis)：@goldmedal 在 https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1381 中补充了使用 BigQuery SDK 进行试运行的功能。\n* 新特性(ibis)：@goldmedal 在 https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1374 中引入了获取特定函数详情的 API。\n* 依赖更新(ibis)：@dependabot[bot] 在 https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1386 中将 \u002Fibis-server 下的 urllib3 从 2.5.0 升级至 2.6.0。\n* 依赖更新(ibis)：@dependabot[bot] 在 https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1385 中将 \u002Fibis-server 下的 fonttools 从 4.59.2 升级至 4.61.0。\n* 杂项(ci)：@goldmedal 在 https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1387 中清理了 CI 环境。\n* 依赖更新(ibis)：@dependabot[bot] 在 https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1390 中将 \u002Fibis-server 下的 filelock 从 3.19.1 升级至 3.20.1。\n* 新特性(knowledge)：@goldmedal 在 https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1389 中引入了通用 SQL 知识库。\n* 杂项(knowledge)：@goldmedal 在 https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1395 中增强了 BigQuery SQL 的相关指令。\n\n## 新贡献者\n* @Davidbackx 在 https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1383 中完成了首次贡献。\n* @Ray0907 在 https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1384 中完成了首次贡献。\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fcompare\u002F0.22.0...0.22.1","2025-12-26T08:31:45",{"id":230,"version":231,"summary_zh":232,"released_at":233},98628,"0.22.0","## 变更内容\n* chore(ibis)：由 @goldmedal 在 https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1372 中将 ibis-ci 工作流拆分为两个流程\n* feat(core)：由 @goldmedal 在 https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1370 中直接使用 BigQuery Python 客户端\n* feat(ibis)：由 @douenergy 在 https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1362 中支持 Athena 默认凭据链认证\n* feat(core)：由 @goldmedal 在 https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1366 中引入特定数据库方言的函数列表，并重构 BigQuery 函数列表\n* feat(ibis)：由 @goldmedal 在 https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1373 中优化 Databricks 连接器，并支持服务主体连接\n\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fcompare\u002F0.21.3...0.22.0","2025-11-19T08:34:27",{"id":235,"version":236,"summary_zh":237,"released_at":238},98629,"0.21.3","## What's Changed\n* feat(ibis): introduce Databricks connector by @goldmedal in https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1361\n* feat(ibis): introduce the API for SQL knowledge by @goldmedal in https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1368\n\n\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fcompare\u002F0.21.2...0.21.3","2025-11-13T02:20:09",{"id":240,"version":241,"summary_zh":242,"released_at":243},98630,"0.21.2","## What's Changed\n* fix(core): disable EliminateCrossJoin rule by @goldmedal in https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1354\n* feat(core): support UNNEST syntax for Snowflake by @goldmedal in https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1357\n* deps(ibis): bump `fastapi` to 120.1 and `starlette` to 0.49.1 by @goldmedal in https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1358\n* feat(mcp): introduce `get_wren_guide` tool for default prompt by @goldmedal in https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1360\n\n\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fcompare\u002F0.21.1...0.21.2","2025-11-04T05:17:57",{"id":245,"version":246,"summary_zh":247,"released_at":248},98631,"0.21.1","## What's Changed\n* fix(core): allow the RLAC condition invoke the hidden columns by @goldmedal in https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1330\n* Update README.md by @chilijung in https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1332\n* fix(core): normalize the name of session property by @goldmedal in https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1331\n* fix(core): generate `trim` for BigQuery by @goldmedal in https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1337\n* chore(ibis): enhance the function list of BigQuery and MSSQL by @goldmedal in https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1336\n* fix(core): support the Unicode literal for MSSQL by @goldmedal in https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1338\n* feat(ibis): add statement level timeout for BigQuery by @goldmedal in https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1339\n* deps(ibis): bump jupyterlab from 4.4.7 to 4.4.8 in \u002Fibis-server in the pip group across 1 directory by @dependabot[bot] in https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1341\n* refactor(core): self-manage the list of the core functions by @goldmedal in https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1346\n* feat(core): support `to_char` format numeric values by @goldmedal in https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1349\n* feat(ibis): enhance the function list of snowflake by @goldmedal in https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1350\n\n\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fcompare\u002F0.21.0...0.21.1","2025-10-22T03:26:08",{"id":250,"version":251,"summary_zh":252,"released_at":253},98632,"0.21.0","## What's Changed\n* fix(core): fix temporal add and sub function of BigQuery by @goldmedal in https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1323\n* deps(java): bump com.hubspot.jinjava:jinjava from 2.8.0 to 2.8.1 in \u002Fwren-core-legacy in the maven group across 1 directory by @dependabot[bot] in https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1325\n* feat(core): implement the customize type coercion rule for unparsing purpose by @goldmedal in https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1318\n* fix(core-py): extract the used tables using the case-sensitive table name by @goldmedal in https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1320\n* deps(core-py): bump ruff from 0.12.12 to 0.13.0 in \u002Fwren-core-py in the all group by @dependabot[bot] in https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1321\n* deps(core): bump the all group across 1 directory with 4 updates by @dependabot[bot] in https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1307\n* deps(core): bump the all group across 1 directory with 2 updates by @dependabot[bot] in https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1310\n* chore(ibis): add lint rule for cython-compatible by @goldmedal in https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1328\n\n\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fcompare\u002F0.20.2...0.21.0","2025-09-24T03:07:02",{"id":255,"version":256,"summary_zh":257,"released_at":258},98633,"0.20.2","## What's Changed\n* fix(ibis): fix the path of function list in the image by @goldmedal in https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1316\n* chore(ci): simplify the Rust test by @goldmedal in https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1322\n* deps(ibis): upgrade ibis 10.8.0 and duckdb 1.3.2 by @goldmedal in https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1317\n\n\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fcompare\u002F0.20.1...0.20.2","2025-09-17T08:19:30",{"id":260,"version":261,"summary_zh":262,"released_at":263},98634,"0.18.3-1","- Fix the path of the function white list","2025-09-12T03:44:12",{"id":265,"version":266,"summary_zh":267,"released_at":268},98635,"0.20.1","## What's Changed\n* fix(ibis): use float64 instead of float for BigQuery function defeinition by @goldmedal in https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1312\n* feat(ibis): Introduce mysql function white list  by @douenergy in https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1311\n* feat(core): implement TypePlanner to compatible common SQL types by @goldmedal in https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1314\n* fix(core): remove default window frame clause by @goldmedal in https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1315\n* deps(core-py): bump the all group across 1 directory with 3 updates by @dependabot[bot] in https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1313\n\n\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fcompare\u002F0.20.0...0.20.1","2025-09-11T05:47:09",{"id":270,"version":271,"summary_zh":272,"released_at":273},98636,"0.20.0","## What's Changed\n* feat(ibis): Introduce WrenError for the structured ErrorResponse by @goldmedal in https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1299\n* chore(tool): update data source tool for mysql and postgres by @goldmedal in https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1301\n* chore(ibis): refactor the type mapping table by @goldmedal in https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1302\n* fix(core): introduce `DATE_DIFF` function by @goldmedal in https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1303\n* fix(core): fix the CLAC and scope analyze issues by @goldmedal in https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1304\n* fix(core): fix the default session time zone by @goldmedal in https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1306\n* feat(ibis): Introduce postgres function white list by @douenergy in https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1300\n* feat(core): disable `enable_ident_normalization` for case-sensitive identifier by default by @goldmedal in https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1305\n\n\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fcompare\u002F0.19.0...0.20.0","2025-09-03T03:04:06",{"id":275,"version":276,"summary_zh":277,"released_at":278},98637,"0.19.0","## What's Changed\n* feat(core): add BigQuery EXTRACT function support and window frame validation by @goldmedal in https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1279\n* fix(ibis): Enable auto-commit to avoid table locks by @JakeCowton in https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1284\n* chore(ibis): improve the date add\u002Fsub function for snowflake by @goldmedal in https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1286\n* fix(core): add quotes for the model subquery alias by @goldmedal in https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1283\n* fix(ibis): Increase Redshift get_table_list limit by @JakeCowton in https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1285\n* fix(ibis): Fix the incorrect data type in the test case by @douenergy in https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1288\n* fix(core): fix the required session properties for CLAC by @goldmedal in https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1287\n* feat(core): bump DataFusion to 49.0.1 by @goldmedal in https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1293\n* fix(core): disable `ReplaceDistinctWithAggregate` rule by @goldmedal in https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1294\n* chore(ibis): return v3 error instead of v2 error by @goldmedal in https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1296\n* fix(core): fix access controls case-insensitive issue and disable fallback for the query with access control by @goldmedal in https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1295\n* fix(core): disable DecorrelatePredicateSubquery rule by @goldmedal in https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1297\n* fix(core): fix current_timestamp function and add datetime function for bigquery by @goldmedal in https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1298\n\n## New Contributors\n* @JakeCowton made their first contribution in https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1284\n\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fcompare\u002F0.18.4...0.19.0","2025-08-26T01:48:12",{"id":280,"version":281,"summary_zh":282,"released_at":283},98638,"0.18.4","## What's Changed\n* chore(core): enhance error messages for access controls check by @goldmedal in https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1278\n* feat(ibis): Include HTTP headers in query cache key generation by @douenergy in https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fpull\u002F1277\n\n\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FCanner\u002Fwren-engine\u002Fcompare\u002F0.18.3...0.18.4","2025-08-12T09:16:23"]