攀岩技术的兴起最早可追溯到十八世纪的欧洲。当时的登山者为了克服类似阿尔卑斯山等终年积雪的冰岩地形,发展出一套系统的攀登技术。1983年法国人Mr. Francois SAVIGNY 发明了由树脂及混凝土合成的可移动式岩块,奠定了攀岩墙日后发展的基础。
目前攀岩在国外是一项非常兴盛而且老少咸宜的运动,攀岩墙的设立非常普遍,室内及室外都有。因此常常可以看到一些外国朋友在下班之后,到这些设有岩墙的休闲娱乐中心或健身房活动一下再回家的情形。在节假日,也常常可以看到在设有岩墙的公园里全家同乐的景象。因为对现代都市人而言,到天然岩场攀爬往往要花去不少交通的时间,而且受气候的影响很大。因此在国外,尤其是运动风气鼎盛的欧洲、北美洲,许多岩墙的设立都是由政府出资规划兴建,因为它提供了一个绝佳的旅游休闲的去处。
现代人随着经济起飞,生活的品质已不再是要求温饱而已,而是希望建立工作与身心健康、休闲品质、家庭亲子关系等相对的平衡。攀岩活动,可以完全满足这些需求,并且完全没有危险性。除了以上这些好处外,更因为攀岩活动没有体型、性别及年龄上的限制,无论男女老少皆可享受攀登的乐趣。现代人饱受生活压力与工作压力之苦,他们可以从攀岩活动中获得成就感,舒缓压力。
在休闲市场上,目前世界各地一些稍具规模的公园、游乐场、度假饭店都以此设备来招揽客人,以凸显自己的特色。
除了攀岩活动之外,人工岩墙也可以提供类似高楼逃生,绳索速降等个人或消防单位之训练以及山难搜救技术的训练。高空作业人员,如天线架设、建筑、外墙清洗作业、冷气安装工作人员,也可以在经过简单的训练后将工作的危险性大幅降低,提升产业竞争力,军方及特种部队也常常利用人工岩场开展各种作战技术演练,例如困难地形突破、突击、潜入、人质解救或是巷战、城市战等等。
攀岩的六大好处
● 增加身体柔软度与协调感
● 增强体力
● 集中力
● 进取心
● 自信心
● 平衡感
攀岩墙的类型
攀岩墙发展迄今,依照其用途可分为:
● 专业竞技型:专业设计,采用高强度仿真复合材料岩板,精心设计路线及难度,供攀岩专业人士、爱好者以及军、警、高空作业等特种行业训练、比赛。
● 仿真娱乐型:创意设计,安全、刺激,充分考虑不同人群的攀登要求,并最大限度的增加投资者的收益。
● 儿童型:岩板表面用环保材料喷涂卡通图案,适合幼儿园儿童及小学生,用于对其肌肉发展及手、眼、身体之协调训练方面。
博客
-
攀岩运动简介
-
22.LlamaIndex架构分析
Stars: 52.1k | Forks: 8.1k | Commits: 7,930
许可证: MIT
定位: 面向数据增强的 LLM 应用框架,核心解决「如何用私有数据增强 LLM」的问题
1. 项目定位与核心价值
LlamaIndex(原名 GPT Index)由 Jerry Liu 于 2022 年创建,定位为文档处理与 AI 数据框架。其核心价值主张是:
- 数据连接器:从 API、PDF、文档、SQL 等多种来源摄取数据
- 数据结构化:通过索引(Index)和图(Graph)组织数据,使其可被 LLM 高效使用
- 高级检索/查询接口:将任意 LLM 提示输入转换为检索上下文和知识增强输出
- 应用框架集成:与 LangChain、Flask、Docker、ChatGPT 等无缝集成
与 LangChain 偏向通用 Agent 编排不同,LlamaIndex 的差异化在于数据为中心——索引构建、检索优化、文档解析是其一等公民能力。
2. 仓库结构与模块化设计
LlamaIndex 采用核心+集成的双层包结构:
-
AI编程(三十二):Excel筛选排序 — 一行代码筛出你想要的行
八百行的表里找”华东区、销售额过万、三月份”的订单,Excel要三轮筛选加一次排序、点十几下鼠标。
pandas一行条件、一行排序,两行代码拿下——而且换个问题只要换个条件,鼠标点过的活儿再也回不来了一、老板的”第二轮追问”
上一篇结尾留了个话头:老板问完”总销售额、销售冠军、平均单值”,果然杀了个回马枪。这次的问题是:“华东区销售额过万的订单有哪些?按销售额从高到低排出来。”
打开Excel你是这么干的:点”部门”列的筛选箭头→勾”华东”→点”销售额”列筛选→数字筛选→大于→10000→点”销售额”列头排序→降序。十几下鼠标,两分钟。这时候老板又补了一句:”那三月份的呢?””那华南区的呢?”——每换一个条件,前面的鼠标全重点一遍。
上一篇我们把数据读进了程序(忘了的话回看第31篇:
df = pd.read_excel("销售明细.xlsx"),df是一张住在程序里的超级表格)。数据在程序里,”筛选”和”排序”就变成了写条件,而不是点鼠标: -
21. Mem0 架构深度分析
项目: mem0ai/mem0 — AI Agent 的记忆层基础设施
Star: 64.9K+ | Commits: 2600+ | 许可: Apache 2.0
核心定位: 为 AI Agent 提供持久化的、可检索的、多层级的记忆能力
1. 系统定位与设计哲学
Mem0 将自身定义为 “The Memory Layer for Personalized AI”,不是一个 RAG 框架,不是向量数据库,而是一个面向 Agent 的记忆中间层。它的核心命题是:AI 助手应该像人一样”记住”对话上下文、用户偏好和历史事实,而不是每次会话都从零开始。
设计哲学有三个关键原则:
- 记忆即一等公民:记忆不是对话历史的副产品,而是独立的、结构化的、可检索的知识单元
- 推理时提取而非存储时索引:不是把整段对话塞进向量库,而是用 LLM 从对话中提取离散事实
- 多信号融合检索:语义相似度 + BM25 关键词 + 实体匹配,三路信号并行打分后融合
2026 年 4 月的新算法(V3)在 LoCoMo 基准上从 71.4 提升到 92.5,LongMemEval 从 67.8 到 94.4,核心改进是将原来的 add/update/delete 三步 LLM 调用简化为单次 ADD-only 提取——记忆只增不删,依赖检索排序来衰减过时信息。
-
AI编程(三十一):Excel读取 — 让pandas把整张表一口吞下
表格里躺着八百行数据,用眼睛看看到眼花。今天请来数据分析界的”重型吊车”——
pandas,一行代码把整张Excel读进程序,列名直接当标签用,求和、平均、找最大值都不用写循环一、老板的三个问题
先说一个你迟早会遇到的场景。
周五下午五点五十,老板在群里甩过来一个
销售明细.xlsx:”帮我看看,今年总销售额多少?谁卖得最多?平均一单多少钱?快点,六点开会要用。”你打开文件——八百行,十七列。你点进”销售额”这一列,Excel左下角状态栏显示求和;再排序找最大值对应的销售名;再用AVERAGE算平均。三个问题,三轮操作,五分钟。刚喘口气,老板又来了:”那按月看看呢?华东区单独算呢?”——每多一个问题,就是一轮手动操作。
-
20. GPT-Researcher 深度架构分析
Stars: 29k+ | License: Apache 2.0 | 语言: Python
定位: 首个开源深度研究 Agent,支持 Web 和本地数据源的自主研究与报告生成
1. 整体架构概览
GPT-Researcher 采用 技能化(Skills-based)分层架构,核心是一个中央协调 Agent(
GPTResearcher类),通过组合多个专职技能模块完成研究流程。架构灵感来自 Plan-and-Solve 和 RAG 论文。┌─────────────────────────────────────────────────────────┐ │ GPTResearcher (Agent) │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌────────────┐ │ │ │ Research │ │ Context │ │ Report │ │ Deep │ │ │ │ Conductor│ │ Manager │ │ Generator │ │ Research │ │ │ └────┬─────┘ └────┬─────┘ └────┬─────┘ └─────┬──────┘ │ │ │ │ │ │ │ │ ┌────┴────┐ ┌─────┴─────┐ ┌───┴───┐ ┌─────┴──────┐ │ │ │Retrievers│ │Compressor │ │Writer │ │Source │ │ │ │(Web/MCP/ │ │(Embedding │ │(LLM) │ │Curator │ │ │ │ Local) │ │ Filtering)│ │ │ │ │ │ │ └─────────┘ └───────────┘ └───────┘ └────────────┘ │ │ │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌────────────┐ │ │ │ Memory │ │ Config │ │ LLM │ │ Browser │ │ │ │(Embeddings│ │ Manager │ │ Provider │ │ Manager │ │ │ │ + Vector) │ │ │ │ │ │ │ │ │ └──────────┘ └──────────┘ └──────────┘ └────────────┘ │ └─────────────────────────────────────────────────────────┘Agent 核心类的初始化展示了其模块化组合设计:
class GPTResearcher: def __init__( self, query: str, report_type: str = ReportType.ResearchReport.value, report_source: str = ReportSource.Web.value, tone: Tone = Tone.Objective, source_urls: list[str] | None = None, vector_store=None, config_path=None, websocket=None, agent=None, role=None, parent_query: str = "", subtopics: list | None = None, mcp_configs: list[dict] | None = None, mcp_strategy: str | None = None, **kwargs ):该构造函数暴露了 20+ 个可配置参数,覆盖报告类型、数据源、LLM 角色、MCP 集成等维度,体现了高度可定制性。
-
AI编程(三十):批量文件处理 — 让程序当你的文件收纳师
电脑里躺着几十个”报告1.csv、最终版.csv、最终版2.csv”,一个一个点开改要一下午。今天学两个新朋友——
glob负责”找到所有文件”,os负责”动文件”,从此一句话收拾整个文件夹一、一个文件夹引发的惨案
先说一个真实到让人想哭的场景。
月底报销,财务说:”把发票扫描件都按’日期_金额’格式重命名,不规范的不收。”你打开文件夹一看——
IMG_2041.jpg、IMG_2042.jpg、微信图片_20260930.png、新建文件夹、新建文件夹(2)……一百三十七个文件。你咬咬牙开始一个个改名,改到第二十个,把IMG_2051改成了IMG_2050的名字,覆盖了,找不回来了。再比如:二十个分店各交来一份
销售.csv,你得逐个打开、加上”分店”这一列、再合成总表。或者:把整个文件夹的.txt笔记全部转成.md;把照片/下所有超过5MB的图片挑出来…… -
19. Vercel AI SDK
版本: AI SDK v7.0.99 | 许可证: Apache-2.0 | 仓库: vercel/ai
分析日期: 2026-09-13
概述
Vercel AI SDK 是由 Next.js 团队打造的 Provider 无关的 TypeScript AI 工具包,提供统一 API 对接 OpenAI、Anthropic、Google 等 25+ 模型提供商。其核心设计理念是三层抽象:Core 层(generateText/streamText)、Provider 层(统一语言模型规范)、UI 层(框架无关的 React/Svelte/Vue hooks)。本文从 10 个维度深入剖析其架构设计。
1. 统一 Provider 架构
AI SDK 的核心创新是定义了一套 Language Model Specification(语言模型规范),所有 Provider 必须实现该规范接口。通过
@ai-sdk/provider包发布规范,@ai-sdk/provider-utils提供工具函数,各 Provider 包(如@ai-sdk/openai)实现具体适配。// packages/ai/src/model/resolve-model.ts // 模型解析:字符串 → Provider 实例 → LanguageModel import type { LanguageModel } from '../types'; // 支持两种使用方式: // 1. 字符串形式:model: 'openai/gpt-5.4'(通过 Vercel AI Gateway) // 2. Provider 实例:model: openai('gpt-5.4')(直连 Provider) export function resolveLanguageModel(model: LanguageModel | string): LanguageModel { // 字符串通过 Gateway 路由,对象直接使用 }架构意义:开发者可以一行代码切换 Provider,无需修改业务逻辑。Gateway 模式更是将 Provider 选择从代码层提升到配置层。
-
AI编程(二十九):数据清洗入门 — 给”脏”数据洗个澡,才能下锅
真实世界的数据从来不干净:空格、错格式、缺胳膊少腿的行混在一起。今天学两招——字符串处理和条件筛选,把脏数据洗成能用的数据
一、一份”看着没问题”的表格,坑有多深
先说一个你八成遇到过的场景。
朋友发来一份”聚餐报名表.csv”,说:”帮我算算一共来多少人,按男女分个组。”你打开一看,十几行,有姓名、性别、手机号,挺整齐的嘛。结果一算——人数比实际多了3个;按性别分组,分出来四组:”男”、”男 “(带空格)、”女”、”M”。手机号更离谱,有的带横杠,有的带”+86″,还有人写了”没手机”。
你找朋友对质,朋友说:”我就是让大家自己填的啊。”
-
18.MetaGPT架构深度分析
项目: geekan/MetaGPT — 57.4k Stars
定位: 多智能体协作框架,模拟软件公司 SOP(标准操作流程)
核心理念:
Code = SOP(Team)— 将 SOP 物化并应用于 LLM 组成的团队源码版本: main 分支 (2025)
1. 设计哲学:SOP 驱动的多智能体
MetaGPT 的核心设计哲学是将软件公司的标准操作流程(SOP)形式化,让 LLM 角色像真实团队一样协作。一行需求输入,产出用户故事、竞品分析、需求文档、数据结构、API 设计等完整软件交付物。
# team.py - Team 类的核心定位 class Team(BaseModel): """ Team: Possesses one or more roles (agents), SOP (Standard Operating Procedures), and a env for instant messaging, dedicated to env any multi-agent activity, such as collaboratively writing executable code. """ env: Optional[Environment] = None investment: float = Field(default=10.0) idea: str = Field(default="") use_mgx: bool = Field(default=True)团队拥有环境(
Environment)、投资预算(investment)、以及可选的 MGX 增强模式。这体现了”软件公司”隐喻——有预算约束、有组织架构、有协作环境。
2. 角色系统(Role):智能体的核心抽象
Role 是 MetaGPT 最核心的抽象,每个角色拥有独立的身份(profile)、目标(goal)、约束(constraints)、动作列表(actions)、记忆系统(memory)和运行时上下文(RoleContext)。
-
AI编程(二十八):配置文件管理 — 改设置不动代码,程序才像个”正经软件”
为什么专业程序的设置都放在单独的文件里?今天你做出第一个”改配置不改代码”的程序
一、一个改到崩溃的真实场景
先讲一个你大概率亲历过的惨案。
假设你(或者AI)写了一个”每日打卡提醒程序”,里面写着提醒时间是早上8点。用了一周,你想改成7点半——于是你打开代码,找到那行
提醒时间 = "08:00",改成"07:30",保存,重新运行。又过了两周,你想改提醒语;再过一周,你想把打卡记录存到另一个文件夹……每次改动都得:打开代码 → 全文搜索找到那行 → 改 → 提心吊胆别改错别的地方 → 保存重跑。