14 🤖 利用 AI 来掌握 funboost 的正确方式

说明: 这个章节是在持续更新,模型和ai agent方式在持续变化。 早期章节14.0 和 14.1 说用 funboost_all_docs_and_codes.md 这个大合并文档来给ai用,现在新增几种对本地ai agent 更好的掌握funboost的方式 方式。

14.1 说的是用 funboost_all_docs_and_codes.md 文档来给ai用(这种适合ai大模型官网网页聊天,免费不要钱) 14.2 说的是用 funboost仓库目录下的 ./agents/skills 目录下的文件来给本地ai agent用。 14.3 说的是用 nbrag 向量化funboost的源码和教程,启动nbrag mcp,配置这个mcp来给ai agent用。 (以上说的这些方式,你都可以把funboost源码clone到本地,以备ai agent直接阅读源码和教程,这样写带阿米更准确)

🎯 核心结论(3步):

  1. 🌐 打开具备 1000k token 上下文的大模型官网网页

  2. 📤 上传 funboost_all_docs_and_codes.md 文档

  3. 💬 提问 funboost 相关问题

⚠️ funboost 不是 Django/FastAPI 这类人尽皆知的框架,AI 的训练数据中 funboost 信息极少。必须投喂完整文档,AI 才能无幻觉地回答。

14.0 ✅ 正确使用 AI 掌握 funboost 的方法

14.0.1 ❌ 常见错误方式(必须避免)

#

🚫 错误做法

💥 为什么错

1

不上传文档,直接问 AI "funboost 怎么用"

AI 训练数据中几乎没有 funboost 信息,会严重幻觉 🤯

2

在 Cursor / Trae / Qoder 等 IDE 中 @funboost_all_docs_and_codes.md

IDE 为节省 token 不会全量阅读长文档,而是分步检索,准确率大幅下降 📉

3

在 Claude-code / Gemini-cli 等命令行 AI 中引用该文档

同上,agent 模式下不会一次性全量阅读 📉

4

使用 gemini.google.com(Gemini 官网)而非 aistudio.google.com

Gemini 官网即使用 3.0 pro,实测幻觉仍然严重 🤯

5

使用 gemini-flash 而非 gemini-pro

flash 模型推理能力不足,长文档理解差 🐢

14.0.2 ✅ 唯一正确的路径

必须同时满足以下 5 个条件:

  1. 🧠 使用原生支持 1000k token 上下文的大模型

  2. 🌐 在模型的官方网页中操作(不是 IDE、不是命令行)

  3. 📤 上传 funboost_all_docs_and_codes.md 文档

  4. 📖 模型会全量阅读上传的文档(网页版会全量读取,不像 IDE 只检索片段)

  5. 🎯 使用本章推荐的具体模型和网址

14.0.3 🆘 当你遇到问题时,请提供以下信息

如果按正确方式使用 AI 后仍有疑问,请说明:

  1. 🌐 你在哪个网页提问的(给出网址)

  2. 🤖 使用的什么模型(如 gemini-3.0-pro / deepseek-v3.2 / qwen-3.5)

  3. 📄 是否上传了文档(文档文件名是什么)

  4. 💬 你的具体提问内容是什么


14.0b 🛠️ nb_ai_context:冷门项目的 AI 上下文生成工具

funboost 的合并文档 funboost_all_docs_and_codes.md 就是使用 nb_ai_context 生成的。

💡 nb_ai_context 适用于任何冷门三方框架以及个人/公司的私有代码项目——将整个项目打包为单一 markdown,投喂给 AI 后效果极佳。对 Python 项目有专门的 AST 解析优化。

📦 安装:pip install nb_ai_context


14.0c ❓ 为什么要专门写第14章?

funboost 不是 Django/Flask/FastAPI 这类训练数据中大量存在的知名框架。任何 AI 在没有阅读完整文档的情况下,几乎 100% 会幻觉 🤯——编造不存在的参数名、类名、方法名。

🎯 本章的目的:教你用最省力的方式,让 AI 无幻觉地掌握 funboost 的全部细节。


14.0d 📊 各 AI 掌握 funboost 能力评分

(大模型进步很快,以下评分仅供参考 📅)

🤖 大模型

🌐 网址

⭐ 评分

📝 简要评价

DeepSeek 🥇

chat.deepseek.com

95

2026年支持1000k上下文,MHC+Engram技术,又快又准

Gemini 3.0 Pro 🥈

Google AI Studio

90

最早支持1000k窗口,幻觉少,跨章节推理强

Qwen 3.5 🥉

chat.qwen.ai

85

2026年支持1000k上下文,推理速度略慢

腾讯 ima 知识库

腾讯ima+funboost知识库

80

RAG 检索快,但全局连贯推理不如真1000k模型


14.1 📚 funboost_all_docs_and_codes.md 文档说明

14.1.1 ⚠️ 必须上传文档再提问

不上传文档直接提问,所有 AI 对 funboost 的回答几乎 100% 会幻觉(编造不存在的参数/类/函数)🤯。

14.1.2 📂 文档地址

GitHub 仓库 https://github.com/ydf0509/funboost 中有两个合并文档:

📄 文件

📝 内容

⭐ 推荐度

funboost_all_docs.md

所有教程 markdown 合并

一般

funboost_all_docs_and_codes.md

教程 + 全部框架源码

🌟 推荐

14.1.3 🔧 文档使用 nb_ai_context 生成

funboost 合并文档的高质量源于 nb_ai_context 的生成方式——不是简单拼接文件,而是包含项目结构、AI 阅读指引、核心文件优先排列等优化。

14.1.4 💻 funboost AI 上下文 markdown 文档的生成代码

from nb_ai_context import AiMdGenerator, NbPath

project_name = "funboost"
project_root = fr"D:\codes\{project_name}"

project_summary = """
- `funboost` 是python 全功能分布式函数调度框架
- `funboost.faas` 是funboost的战略级核武器。使函数调度框架产生架构质变:从 Worker 到 Service

- 以下一定要记住,最最重要的 类和函数如下:
   - @boost(BoosterParams(...))  任意普通函数加上装饰器,变成分布式函数
   - BoosterParams 装饰器入参控制大全,一定要学习这个类的所有入参配置;ai绝对不允许胡编乱造源码api和教程中不存在的BoosterParams字段入参。
   - BrokerEnum:支持 40+ 种消息队列中间件。
   - BoostersManager 管理分布式函数,高阶用法可能需要用到,例如启动一组消费函数,启动所有消费函数等。
   - ApsJobAdder 类, 是定时任务的最重要使用方式的类
   - ConcurrentModeEnum:funboost支持的并发模式。
"""

boost_spider_summary = """
- `boost_spider` = `funboost` 的爬虫增强工具库
- `boost_spider` 增加了3个爬虫常用类:RequestClient、SpiderResponse、DatasetSink,由 funboost 驱动调度和并发。
"""

ai_md_codes = AiMdGenerator(
    r"D:\codes\nb_ai_context\markdown_gen_files_git_ignore\ai_md_files\funboost_all_codes.md"
).set_project_propery(project_name=project_name, project_root=project_root)

ai_md_docs = AiMdGenerator(
    r"D:\codes\nb_ai_context\markdown_gen_files_git_ignore\ai_md_files\funboost_all_docs.md"
).set_project_propery(project_name="funboost_docs", project_root=r'D:\codes\funboost_docs')

funboost_most_core_source_code_file_list = [
    "funboost/__init__.py",
    "funboost/core/booster.py",
    "funboost/core/func_params_model.py",
    "funboost/constant.py",
    "funboost/timing_job/timing_push.py",
    "funboost/funboost_config_deafult.py",
    "funboost/core/current_task.py",
    "funboost/core/cli/discovery_boosters.py",
    "funboost/core/msg_result_getter.py",
    "funboost/publishers/base_publisher.py",
    "funboost/consumers/base_consumer.py",
    "funboost/core/active_cousumer_info_getter.py",
]

(
    ai_md_codes
    .clear_text()
    .add_ai_reading_guide()
    .add_project_summary(
        project_summary=project_summary,
        most_core_source_code_file_list=funboost_most_core_source_code_file_list)
    .add_project_summary(
        project_summary=boost_spider_summary,
        project_root=r"D:\codes\boost_spider",
        most_core_source_code_file_list=[
            "boost_spider/__init__.py",
            "boost_spider/http/request_client.py",
            "boost_spider/sink/dataset_sink.py",
            "boost_spider/sink/json_sink.py",
        ])
    .merge_from_dir(
        relative_dir_name='examples',
        use_gitignore=True,
        as_title=f"{project_name} examples",
        should_include_suffixes=[".py", ".md", ".html"],
        excluded_dir_name_list=[],
    )
    .merge_from_dir(
        relative_dir_name=project_name,
        use_gitignore=True,
        as_title=f"{project_name} codes",
        should_include_suffixes=[".py", ".md", ".html"],
        excluded_dir_name_list=[
            r"funboost\utils\dependency_packages",
            r"funboost\utils\dependency_packages_in_pythonpath",
            r"funboost/utils/func_timeout",
            r"funboost\funboost_web_manager\static",
            r"funboost/concurrent_pool/backup"
        ],
    )
    .merge_from_dir(
        project_root=r"D:\codes\boost_spider",
        relative_dir_name="boost_spider",
        use_gitignore=True,
        as_title="boost_spider codes",
        should_include_suffixes=[".py", ".md", ".html"],
        excluded_dir_name_list=[],
    )
    .get_textfile_info(is_show_info=True)
)

(
    ai_md_docs
    .clear_text()
    .add_ai_reading_guide()
    .add_project_summary(
        project_summary=project_summary,
        project_root=r"D:\codes\funboost",
        most_core_source_code_file_list=funboost_most_core_source_code_file_list
    )
    .add_project_summary(
        project_summary=boost_spider_summary,
        project_root=r"D:\codes\boost_spider",
        most_core_source_code_file_list=[
            "boost_spider/__init__.py",
            "boost_spider/http/request_client.py",
            "boost_spider/sink/dataset_sink.py",
            "boost_spider/sink/json_sink.py",
        ])
    .merge_from_dir(
        project_root=r"D:\codes\funboost",
        relative_dir_name='examples',
        use_gitignore=True,
        as_title=f"{project_name} examples",
        should_include_suffixes=[".py", ".md", ".html"],
        excluded_dir_name_list=[],
    )
    .merge_from_dir(
        project_root=r"D:\codes\funboost_docs",
        relative_dir_name=r"source\articles",
        use_gitignore=True,
        as_title="funboost docs",
        should_include_suffixes=[".md"],
        excluded_dir_name_list=[],
    )
    .merge_from_files(
        relative_file_name_list=["README.md"],
        project_root=r"D:\codes\boost_spider",
        as_title="boost_spider readme",
    )
    .get_textfile_info(is_show_info=True)
)

ai_md_docs_and_codes = NbPath(
    r'D:\codes\nb_ai_context\markdown_gen_files_git_ignore\ai_md_files',
    'funboost_all_docs_and_codes.md'
).clear_text().merge_text_from_files([ai_md_docs, ai_md_codes])

14.2 🛠️ 使用 .agents/skills 给本地 AI Agent 用

将 funboost 仓库目录下的 ./agents/skills 目录下的文件,复制到你的skills目录下,你写funboost相关代码时候,agent就能自动触发使用这些skill,高效写funboost代码

14.3 使用nbrag mcp

将 funboost 源码和教程向量化,启动 nbrag mcp,配置这个 mcp 来给 ai agent ,ai可以高效准确些代码。 nbrag由本人开发打造,是个rag mcp。