diff --git a/docs.json b/docs.json index ec40b98fb..66e7b13f6 100644 --- a/docs.json +++ b/docs.json @@ -1045,6 +1045,14 @@ "zh/articles/langbot-cloud-multi-user-workspaces" ] }, + { + "group": "在线体验", + "pages": [ + "zh/articles/langbot-wecom-customer-service-knowledge-base", + "zh/articles/langbot-telegram-sandbox-agent", + "zh/articles/langbot-wechat-official-account" + ] + }, { "group": "技术解析", "pages": [ diff --git a/images/articles/langbot-wechat-official-account-qr.png b/images/articles/langbot-wechat-official-account-qr.png new file mode 100644 index 000000000..1e86dab2c Binary files /dev/null and b/images/articles/langbot-wechat-official-account-qr.png differ diff --git a/images/articles/telegram-sandbox-qr.png b/images/articles/telegram-sandbox-qr.png new file mode 100644 index 000000000..11b2c9f78 Binary files /dev/null and b/images/articles/telegram-sandbox-qr.png differ diff --git a/images/articles/telegram-sandbox.jpg b/images/articles/telegram-sandbox.jpg new file mode 100644 index 000000000..dcb87e03a Binary files /dev/null and b/images/articles/telegram-sandbox.jpg differ diff --git a/images/articles/wecom-customer-service-qr.png b/images/articles/wecom-customer-service-qr.png new file mode 100644 index 000000000..de833abca Binary files /dev/null and b/images/articles/wecom-customer-service-qr.png differ diff --git a/images/articles/wecom-customer-service.jpg b/images/articles/wecom-customer-service.jpg new file mode 100644 index 000000000..52dbd4913 Binary files /dev/null and b/images/articles/wecom-customer-service.jpg differ diff --git a/images/articles/wecom-knowledge-base-config.png b/images/articles/wecom-knowledge-base-config.png new file mode 100644 index 000000000..d9665550e Binary files /dev/null and b/images/articles/wecom-knowledge-base-config.png differ diff --git a/tests/blog-articles.test.mjs b/tests/blog-articles.test.mjs index 470f1aaf7..2e9ef2b72 100644 --- a/tests/blog-articles.test.mjs +++ b/tests/blog-articles.test.mjs @@ -24,7 +24,7 @@ test("all canonical Blog slugs are published in every Wiki locale", () => { assert.deepEqual(slugsByLocale.get("ja"), slugsByLocale.get("en")); }); -test("article tabs group every generated page exactly once", () => { +test("article tabs group every generated Blog page exactly once", () => { for (const [locale, config] of Object.entries(localeConfig)) { const language = docs.navigation.languages.find((item) => item.language === config.language); const matchingTabs = language.tabs.filter((item) => item.tab === config.tab); @@ -32,7 +32,8 @@ test("article tabs group every generated page exactly once", () => { const tab = matchingTabs[0]; const pages = tab.groups.flatMap((group) => group.pages).filter((page) => page !== `${locale}/articles/index`); const expected = manifest.articles.filter((article) => article.locale === locale).map((article) => article.page); - assert.deepEqual([...pages].sort(), [...expected].sort()); + const expectedSet = new Set(expected); + assert.deepEqual([...pages.filter((page) => expectedSet.has(page))].sort(), [...expected].sort()); assert.equal(new Set(pages).size, pages.length, `${locale} has duplicate article navigation entries`); } }); diff --git a/tests/fumapress-migration.test.mjs b/tests/fumapress-migration.test.mjs index 7738db42c..8c803b531 100644 --- a/tests/fumapress-migration.test.mjs +++ b/tests/fumapress-migration.test.mjs @@ -170,8 +170,8 @@ test("MDX compatibility normalization removes internal .html route suffixes", () test("canonical MDX and nested OpenAPI sources are discovered", async () => { const docs = JSON.parse(await readFile(path.join(root, "docs.json"), "utf8")); const pages = await collectMdxDocuments(root); - assert.equal(pages.length, 305); - assert.deepEqual(Object.fromEntries([...pages.reduce((acc, page) => acc.set(page.split("/", 1)[0], (acc.get(page.split("/", 1)[0]) ?? 0) + 1), new Map()).entries()]), { en: 97, zh: 111, ja: 97 }); + assert.equal(pages.length, 308); + assert.deepEqual(Object.fromEntries([...pages.reduce((acc, page) => acc.set(page.split("/", 1)[0], (acc.get(page.split("/", 1)[0]) ?? 0) + 1), new Map()).entries()]), { en: 97, zh: 114, ja: 97 }); assert.deepEqual(collectOpenApiSources(docs), [ { locale: "en", source: "openapi/service-api-en.json", directory: "en/api-reference" }, { locale: "zh", source: "openapi/service-api-zh.json", directory: "zh/api-reference" }, @@ -216,9 +216,9 @@ test("prebuild is deterministic and preserves local assets and SEO files", async const first = await prepareFumapress({ root, outRoot: temp }); const second = await prepareFumapress({ root, outRoot: temp }); assert.deepEqual(first, second); - assert.equal(first.documents, 305); + assert.equal(first.documents, 308); assert.equal(first.fallbackDefaults, 0); - assert.equal(first.localeOnlyDocuments, 14); + assert.equal(first.localeOnlyDocuments, 17); assert.equal(first.redirects, 103); assert.deepEqual(first.locales, ["en", "zh", "ja"]); await readFile(path.join(temp, "content/docs/insight/guide.mdx"), "utf8"); diff --git a/tests/fumapress-static-build.test.mjs b/tests/fumapress-static-build.test.mjs index 6f46f0495..12521b4fd 100644 --- a/tests/fumapress-static-build.test.mjs +++ b/tests/fumapress-static-build.test.mjs @@ -43,9 +43,9 @@ function staticHtmlForUrlPath(urlPath) { return path.join(publicRoot, ...parts, "index.html"); } -test("all 305 canonical localized documents have static HTML", async () => { +test("all 308 canonical localized documents have static HTML", async () => { const documents = await collectMdxDocuments(root); - assert.equal(documents.length, 305); + assert.equal(documents.length, 308); const missing = []; for (const document of documents) { try { diff --git a/zh/articles/index.mdx b/zh/articles/index.mdx index e78120498..b1ef5828b 100644 --- a/zh/articles/index.mdx +++ b/zh/articles/index.mdx @@ -9,6 +9,12 @@ description: "同步自 LangBot Blog 的产品动态、技术解析、教程、 - [LangBot Cloud 新版上线:多用户 Workspace 也来到开源版](/zh/articles/langbot-cloud-multi-user-workspaces) — 2026-08-25 +## 在线体验 + +- [企业微信客服:体验 LangBot 知识库](/zh/articles/langbot-wecom-customer-service-knowledge-base) — 2026-09-17 +- [Telegram:体验 LangBot 沙箱 Agent](/zh/articles/langbot-telegram-sandbox-agent) — 2026-09-17 +- [LangBot 公众号:体验基础 AI 问答](/zh/articles/langbot-wechat-official-account) — 2026-09-17 + ## 技术解析 - [LangBot v4.10.0:Agent 沙箱与技能——让 Agent 真正像开发者一样工作](/zh/articles/langbot-v4100-sandbox-skills) — 2026-06-04 diff --git a/zh/articles/langbot-telegram-sandbox-agent.mdx b/zh/articles/langbot-telegram-sandbox-agent.mdx new file mode 100644 index 000000000..a73e64da1 --- /dev/null +++ b/zh/articles/langbot-telegram-sandbox-agent.mdx @@ -0,0 +1,94 @@ +--- +title: "Telegram:体验 LangBot 沙箱 Agent" +description: "通过 Telegram 与 LangBot 沙箱 Agent 对话,让 AI 运行命令、处理文件、编写代码并完成实际任务。" +--- + +发布于 2026-09-17 · 作者:LangBot Team + +普通 AI 对话只能告诉你“应该怎么做”,连接沙箱后的 LangBot Agent 则可以在隔离工作区中真正执行任务。 + +你可以直接在 Telegram 中描述目标,让 Agent 运行命令、创建文件、修改内容、搜索资料或执行代码,再把结果返回给你。 + +![Telegram 沙箱 Agent 使用效果](/images/articles/telegram-sandbox.jpg) + +## 不只是回答,而是动手完成 + +沙箱为 Agent 提供了一个可以操作的工作区。根据你的要求,它可以: + +- 运行 Shell 命令 +- 读取工作区中的文件 +- 创建或覆盖文件 +- 修改已有文件内容 +- 按文件名查找文件 +- 搜索文件中的文字 +- 执行 Python 等代码 +- 启动并管理任务进程 + +整个过程通过 Telegram 对话完成,不需要在聊天窗口和命令行之间反复切换。 + +## 可以让它做什么 + +### 处理文本和文件 + +你可以让 Agent 创建或整理文件: + +- 帮我生成一份项目 README +- 把这段内容整理成 Markdown +- 创建一个包含标题和表格的报告 +- 查找工作区中所有包含某个关键词的文件 +- 修改配置文件中的指定参数 + +Agent 会在工作区中完成操作,并告诉你处理结果。 + +### 编写和运行代码 + +你可以直接描述一个小程序或数据处理任务: + +- 写一个 Python 脚本统计 CSV 中每一列的平均值 +- 生成 100 条测试数据并保存为 JSON +- 检查这段代码为什么运行失败 +- 创建一个简单的网页并启动预览 +- 运行测试并根据错误修改代码 + +连接沙箱后,Agent 不仅能生成代码,还能实际运行命令并根据结果继续处理。 + +### 分析工作区内容 + +当工作区中已有文件时,可以让 Agent 帮你快速定位信息: + +- 列出当前目录下的所有 Markdown 文件 +- 搜索哪些文件使用了某个函数 +- 找出配置文件中重复的字段 +- 读取日志并归纳最常见的错误 + +它会使用文件查找和内容搜索工具完成这些任务。 + +## 如何描述任务 + +任务越明确,Agent 越容易给出符合预期的结果。建议同时说明目标、输入和输出格式。 + +例如,不要只说: + +> 帮我处理这个文件。 + +可以说得更具体: + +> 读取工作区中的 sales.csv,按月份统计销售额,将结果保存为 summary.csv,并告诉我销售额最高的月份。 + +如果任务包含多个步骤,也可以一次完整说明。Agent 会根据执行结果继续推进,并在必要时向你确认信息。 + +## 关于沙箱 + +沙箱是 Agent 的独立执行环境,用于降低运行命令和处理文件时对其他环境的影响。不同会话的文件是否共享,取决于当前沙箱的作用域设置。 + +请不要在对话中发送密码、API Key、身份证件或其他敏感信息。对于删除文件、批量修改和长时间运行等操作,建议先明确范围,并在执行前确认。 + +## 扫码开始体验 + +使用 Telegram 扫描下方二维码,打开 LangBot 沙箱 Agent 后直接发送任务。 + +![Telegram 沙箱 Agent 二维码](/images/articles/telegram-sandbox-qr.png) + +如果不知道从哪里开始,可以先试试: + +> 请用 Python 生成一份包含 20 条示例数据的 CSV 文件,并统计其中数值列的平均值。 diff --git a/zh/articles/langbot-wechat-official-account.mdx b/zh/articles/langbot-wechat-official-account.mdx new file mode 100644 index 000000000..7f574c5fd --- /dev/null +++ b/zh/articles/langbot-wechat-official-account.mdx @@ -0,0 +1,97 @@ +--- +title: "LangBot 公众号:体验基础 AI 问答" +description: "通过 LangBot 公众号进行基础 AI 问答,并获取产品动态、使用教程和应用实践。" +--- + +发布于 2026-09-17 · 作者:LangBot Team + +LangBot 是一个开源的 AI 机器人平台,可以将大模型、知识库、Agent、插件和工作流连接到企业微信、Telegram、飞书、钉钉、QQ、Discord 等消息平台。 + +关注 **LangBot 公众号**,不仅可以了解产品更新、使用方法和真实应用实践,还可以直接发送消息,体验基础 AI 问答服务。 + +## 直接使用基础 AI 问答 + +在公众号中发送问题,即可与 LangBot 进行基础对话。例如: + +- 帮我解释一个技术概念 +- 把这段文字概括成三句话 +- 帮我写一封简短的邮件 +- 为一个活动想几个标题 +- 翻译或润色一段内容 +- 给我一些学习或工作建议 + +公众号适合日常咨询、内容生成、翻译润色和一般知识问答,打开微信即可使用。 + +## 三个入口有什么区别 + +公众号提供的是**基础 AI 问答**,当前不接入企业知识库,也不提供沙箱工具。请根据需要选择对应入口: + +| 入口 | 提供的能力 | 适合的问题 | +| --- | --- | --- | +| LangBot 公众号 | 基础 AI 问答 | 日常咨询、写作、总结、翻译和一般知识问答 | +| 企业微信客服 | LangBot 知识库 | 查询产品手册、价格政策、实施流程、公司制度和会议纪要 | +| Telegram | LangBot 沙箱 Agent | 运行代码和命令、创建或修改文件、处理数据和完成多步骤任务 | + +如果需要查询企业资料,请使用[企业微信客服知识库](/zh/articles/langbot-wecom-customer-service-knowledge-base)。如果需要让 Agent 执行命令、处理文件或运行代码,请使用[Telegram 沙箱 Agent](/zh/articles/langbot-telegram-sandbox-agent)。 + +## 你可以看到什么 + +### 产品动态 + +了解 LangBot 新版本带来的能力,包括模型支持、知识库、Agent 沙箱、Skills、插件系统和平台适配等更新。 + +每次重要版本发布后,公众号会用更容易理解的方式介绍新功能能解决什么问题,以及适合哪些使用场景。 + +### 使用教程 + +从部署 LangBot 到接入消息平台,从配置模型到使用知识库,公众号会持续发布可直接参考的教程。 + +内容包括: + +- 快速部署 LangBot +- 接入企业微信、Telegram、飞书和钉钉 +- 配置 GPT、Claude、Gemini、DeepSeek 等模型 +- 创建企业知识库问答机器人 +- 使用 Agent 沙箱执行任务 +- 安装和使用插件 +- 连接 Dify、n8n、Langflow 等外部工作流 + +### 应用案例 + +你可以了解 LangBot 在不同场景中的使用方式: + +- 企业知识库与内部问答 +- 微信客服与售前咨询 +- 群聊 AI 助手 +- 文件处理和代码执行 Agent +- 客户支持与故障排查 +- 工作流自动化 + +这些案例可以帮助你判断 LangBot 是否适合自己的团队,也可以作为搭建机器人时的参考。 + +### 社区精选 + +LangBot 社区持续产生新的插件、用法和解决方案。公众号会整理值得关注的项目进展、社区实践和优秀案例,帮助你更快发现可以直接使用的能力。 + +## 适合哪些读者 + +无论你是第一次接触 AI 机器人,还是正在为团队搭建知识库、客服或自动化工作流,都可以从公众号获得相关内容。 + +- 普通用户可以了解 LangBot 能做什么 +- 企业用户可以参考知识库和客服案例 +- 开发者可以关注插件、Agent 和平台适配能力 +- 团队负责人可以了解产品更新和部署选择 + +## 关注并开始问答 + +在微信中搜索 **LangBot** 公众号并关注。进入公众号后直接发送消息,即可开始基础 AI 问答。 + +也可以使用微信扫描下方二维码关注: + +![LangBot 微信公众号二维码](/images/articles/langbot-wechat-official-account-qr.png) + +你还可以访问以下资源了解 LangBot: + +- [LangBot GitHub](https://github.com/langbot-app/LangBot) +- [LangBot 官方文档](https://langbot.app/docs) +- [LangBot Cloud](https://space.langbot.app/cloud) diff --git a/zh/articles/langbot-wecom-customer-service-knowledge-base.mdx b/zh/articles/langbot-wecom-customer-service-knowledge-base.mdx new file mode 100644 index 000000000..a1e4ef8b0 --- /dev/null +++ b/zh/articles/langbot-wecom-customer-service-knowledge-base.mdx @@ -0,0 +1,98 @@ +--- +title: "企业微信客服:体验 LangBot 知识库" +description: "通过企业微信客服,用自然语言查询产品、价格、服务流程、公司制度和最新业务信息。" +--- + +发布于 2026-09-17 · 作者:LangBot Team + +产品有几个版本?学校客户能参加优惠吗?客户签约后应该先做什么?去杭州出差能报销多少住宿费? + +这些问题的答案通常分散在产品手册、销售政策、实施流程、员工制度和会议纪要中。现在,你不必逐份查找文档,直接在微信里向 LangBot 知识库提问即可。 + +![企业微信客服知识库问答效果](/images/articles/wecom-customer-service.jpg) + +## 知识库里有什么 + +当前 LangBot 知识库汇集了企业日常使用的多类资料,包括: + +- 客户案例:记录不同行业、团队规模、使用平台和方案选择 +- 产品手册:介绍产品功能、版本区别、适用人数和部署方式 +- 销售政策:包含标准价格、活动规则和适用条件 +- 实施流程:说明签约交接、实施周期、测试和上线要求 +- 故障处理手册:提供问题分级、排查顺序和处理方法 +- 报销标准与员工制度:包含差旅住宿、交通、请假和费用报销规则 +- 会议纪要:记录产品计划、功能调整和最新业务信息 + +知识库支持导入 **PDF、Word、Markdown** 等多种常用文档格式。不同部门可以直接使用已有资料建立知识库,不必把所有内容重新整理成固定问答。 + +![LangBot 企业知识库配置](/images/articles/wecom-knowledge-base-config.png) + +## 像聊天一样查询企业资料 + +打开企业微信客服后,直接说出你想知道的事情。你不需要记住文件名,也不需要使用固定格式。 + +可以这样问: + +- 200 人的公司应该购买哪个版本? +- 企业微信最低需要哪个版本? +- 学校客户 9 月购买专业版,可以享受 88 折吗? +- 客户昨天刚签合同,今天应该做什么? +- 机器人突然不回复,应该先检查什么? +- 去杭州出差,酒店最多可以报销多少? +- 企业微信新版文件解析什么时候上线? + +LangBot 知识库会从相关资料中寻找依据,再把答案整理成容易理解的回复。 + +## 一个问题可以包含多个条件 + +你也可以把完整需求一次说清楚。例如: + +> 我们有一个 260 人的教育客户,希望使用飞书,9 月份上线,还希望参加本月优惠。应该推荐哪个版本?有哪些风险? + +面对这类问题,LangBot 知识库会同时参考产品版本、人数限制、行业政策、活动规则和类似客户案例,而不是只回答其中一个条件。 + +如果客户还要求数据本地存储,也可以继续追问: + +> 客户要求数据必须保存在本地,版本选择会发生变化吗? + +LangBot 知识库会结合私有化部署要求给出补充说明。 + +## 查询产品和价格 + +你可以询问产品能力、版本区别、适用人数和标准价格: + +- 基础版、专业版和企业版有什么区别? +- 专业版最多支持多少人? +- 哪个版本支持 API? +- 哪个版本支持私有化部署? +- 专业版的标准价格是多少? + +## 查询交付和故障处理 + +LangBot 知识库也可以根据实施流程和故障处理手册回答: + +- SaaS 标准实施通常需要几个工作日? +- 正式上线前至少需要完成哪些测试? +- 知识库准确率只有 82%,建议上线吗? +- 单一客户完全不可用属于什么故障级别? +- API 连续失败几次后需要升级? + +## 查询公司制度和最新消息 + +除了产品资料,你还可以查询员工制度和会议决定: + +- 去上海出差的住宿标准是多少? +- 出差结束后多久需要提交报销? +- 某项功能的最新上线日期是什么时候? + +当正式手册和最新会议纪要涉及同一件事时,LangBot 知识库会结合更新后的信息回答,帮助你减少使用旧资料的情况。 + +## 扫码开始体验 + +使用微信扫描下方二维码,进入企业微信客服后即可直接提问。 + +![企业微信客服二维码](/images/articles/wecom-customer-service-qr.png) + +如果不知道从哪里开始,可以先发送: + +> 给我介绍一下产品手册。