【论文阅读笔记】GlobeDiff:用扩散模型从局部观测生成全局状态,破解多智能体部分可观测难题

ICLR 2026 poster

GlobeDiff: State Diffusion Process for Partial Observability in Multi-Agent Systemopenreview: https://openreview.net/forum?id=96g2BRsYZXarXiv: https://arxiv.org/abs/2602.15776

在多智能体强化学习(MARL)中,部分可观性(Partial Observability, PO) 是一个长期存在的难题。每个智能体只能看到局部信息,却需要基于此做出全局协调的决策。现有的方法(如信念状态估计或通信)往往难以准确还原全局状态,容易出现“模式坍塌”(Mode Collapse),即把多种可能的全局状态平均成一个模糊的状态,导致决策失误。

本文介绍了 GlobeDiff,一种基于条件扩散模型(Conditional Diffusion Model) 的全局状态推断算法。它的核心思想是将状态推断建模为一个生成过程,通过引入潜在变量 z z z 来解决局部观测到全局状态的“一对多”映射歧义。理论证明和实验表明,GlobeDiff 不仅能准确推断全局状态,还能显著提升多智能体协作任务的性能。

文章目录

1. 研究背景与问题

1.1 多智能体部分可观马尔可夫决策过程 (Dec-POMDP)

在完全可观测的多智能体系统中,每个智能体都能看到环境的完整状态,问题可以建模为 Markov 决策过程(MDP)。但现实场景往往是部分可观测的,因此我们通常使用 Decentralized Partially Observable Markov Decision Process(Dec‑POMDP) 来建模。一个 Dec‑POMDP 由以下要素组成:

  • 全局状态集合 $ \mathcal{S} $;
  • $ n $ 个智能体,每个智能体有动作空间 $ \mathcal{A} $;
  • 联合动作 $ \mathbf{a} = (a_1,\dots,a_n) $ 导致状态转移 $ \mathcal{P}(s’ \mid s,\mathbf{a}) $;
  • 所有智能体共享一个奖励函数 $ \mathcal{R}(s,\mathbf{a}) $;
  • 每个智能体 $ i $ 根据观测函数 $ \mathcal{U}(s,\mathbf{a}) $ 获得局部观测 $ o_i \in \mathcal{O} $;
  • 折扣因子 $ \gamma $。

智能体的目标是学习联合策略 $ \pi = (\pi_1,\dots,\pi_n) $ 最大化累计折扣奖励。在部分可观测下,智能体 i i i 只能看到 o i o_i oi​,而不知道真实的全局状态 s s s。每个智能体只能基于自己的局部观测历史 $ \tau_i^t = (o_i^1, a_i^1, \dots, o_i^t) $ 做决策。

1.2 核心难点:一对多映射歧义

部分可观性的核心困难在于歧义性(Ambiguity)。单个智能体的局部观测 x x x 可能对应多个截然不同的全局状态 s s s。这是一个典型的一对多映射(One-to-Many Mapping) 问题。

现有的解决方法主要有两类,但都有局限性:

  1. 信念状态估计(Belief State Estimation):使用 RNN 或 Transformer 整合历史观测。缺点是误差会随时间累积,且判别式模型倾向于输出单一的最可能状态,导致模式坍塌。它无法表达“这里有多种可能性”的不确定性。
  2. 显式通信(Inter-agent Communication):智能体之间交换信息。缺点是通信成本高,且协议设计复杂,在严重部分可观环境下消息聚合可能不可靠。

传统的处理方法(如 RNN 信念估计)试图学习一个确定性映射 $ x \mapsto \hat{s} $,这本质上是将多模态分布压缩成一个点,容易造成模式坍缩,即生成的全局状态要么是多个可能状态的“平均”(失去物理意义),要么随机选中一个可能而忽略其他。这样的推断结果对于后续策略学习显然是不利的。

GlobeDiff 的动机:既然局部观测对应的是全局状态的分布而不是单点,我们应该使用生成模型(Generative Model) 来学习这个条件分布 p ( s ∣ x ) p(s|x) p(s∣x),而不是用判别模型去预测一个点估计。扩散模型因其强大的分布建模能力,成为了理想的选择。

1.3 核心贡献

针对上述问题,GlobeDiff 做出了以下贡献:

  1. 重新定义问题:明确指出部分可观测的核心是一对多映射,并指出现有判别式方法的局限性。
  2. 提出生成式框架:首次将条件扩散模型引入多智能体全局状态推断,通过引入潜在变量 $ z $ 显式建模多模态分布,从根本上避免模式坍缩。
  3. 理论保证:证明了在单模态和多模态条件下,GlobeDiff 的估计误差均可被有界控制。
  4. 实验验证:在修改后的 SMAC 环境(SMAC‑v1/v2 PO)上,GlobeDiff 显著超越多种基线,并能直观展示高质量的状态重建。

2. GlobeDiff 方法详解

GlobeDiff 的核心是将全局状态推断 formulize 为一个条件扩散过程。为了解决一对多映射问题,作者引入了一个关键设计:潜在变量 z z z

2.1 引入潜在变量 $ z $ 解决一对多映射

如果直接学习条件分布 $ p(s \mid x) $,模型需要将同一个 $ x $ 映射到多个不同的 $ s $,这极易导致模式坍缩,模型可能会学习到这些 s s s 的平均值(模糊状态)。为了解决这个问题,GlobeDiff 引入了一个潜在变量 $ z $,其作用相当于一个“模式选择器”。模型被分解为:
p θ , ϕ ( s ∣ x ) = ∫ p θ ( s ∣ x , z ) p ϕ ( z ∣ x ) d z . (3) p_{\theta,\phi}(s \mid x) = \int p_\theta(s \mid x, z) \, p_\phi(z \mid x) \, dz. \tag{3} pθ,ϕ​(s∣x)=∫pθ​(s∣x,z)pϕ​(z∣x)dz.(3)
现在,给定 $ x $ 和一个具体的 $ z $,生成 $ s $ 变成了一个一对一的任务,因为 $ z $ 提供了足够的信息来指明应该对应哪个模式。然而,在推断时我们只有 $ x $,没有 $ z $,那该怎么办?

  • 训练时:我们同时拥有 $ x $ 和真实的 $ s $,因此可以训练一个后验网络 $ q_\psi(z \mid x, s) $ 来捕捉理想情况下应该用哪个 $ z $ 来生成 $ s $。
  • 推断时:我们训练一个先验网络 $ p_\phi(z \mid x) $,仅用 $ x $ 预测 $ z $ 的分布。这样,在推断时就可以先从 $ p_\phi(z \mid x) $ 采样 $ z $,再送入条件扩散模型 $ p_\theta(s \mid x, z) $ 得到全局状态。

这种结构类似于条件变分自编码器(CVAE)。通过最大化对数似然的证据下界(ELBO):
log ⁡ p θ , ϕ ( s ∣ x ) ≥ E q ψ [ log ⁡ p θ ( s ∣ x , z ) ] − K L ( q ψ ( z ∣ x , s ) ∥ p ϕ ( z ∣ x ) ) . (4) \log p_{\theta,\phi}(s \mid x) \ge \mathbb{E}_{q_\psi}[\log p_\theta(s \mid x, z)] - \mathrm{KL}\big( q_\psi(z \mid x, s) \,\|\, p_\phi(z \mid x) \big). \tag{4} logpθ,ϕ​(s∣x)≥Eqψ​​[logpθ​(s∣x,z)]−KL(qψ​(z∣x,s)∥pϕ​(z∣x)).(4)
因此,训练目标包含两项:

  • 让 $ p_\theta(s \mid x, z) $ 能准确重建 $ s $;
  • 让先验 $ p_\phi(z \mid x) $ 接近后验 $ q_\psi(z \mid x, s) $。

2.2 条件扩散模型 $ p_\theta(s \mid x, z) $

GlobeDiff 使用扩散概率模型(Denoising Diffusion Probabilistic Models, DDPM)来参数化 $ p_\theta(s \mid x, z) $。扩散模型包含两个过程:

前向过程(加噪)

逐步向真实状态 $ s^0 $ 添加高斯噪声,得到一系列噪声状态 $ s^1, s^2, \dots, s^K $:
q ( s k ∣ s k − 1 ) = N ( s k ; 1 − β k s k − 1 , β k I ) , (5) q(s^k \mid s^{k-1}) = \mathcal{N}\big( s^k; \sqrt{1-\beta^k} s^{k-1}, \beta^k \mathbf{I} \big), \tag{5} q(sk∣sk−1)=N(sk;1−βk​sk−1,βkI),(5)
其中 $ \beta^k $ 是预定义的噪声方差(通常随 $ k $ 增大而增大)。利用重参数化技巧,可以直接从 $ s^0 $ 计算任意 $ s^k $:
s k = α ˉ k s 0 + 1 − α ˉ k ϵ , ϵ ∼ N ( 0 , I ) , (6) s^k = \sqrt{\bar{\alpha}^k} s^0 + \sqrt{1 - \bar{\alpha}^k} \, \epsilon,\quad \epsilon \sim \mathcal{N}(\mathbf{0},\mathbf{I}), \tag{6} sk=αˉk​s0+1−αˉk​ϵ,ϵ∼N(0,I),(6)
这里 $ \alpha^k = 1 - \beta^k , , , \bar{\alpha}^k = \prod_{i=1}^k \alpha^i $。

反向过程(去噪)

反向过程从纯噪声 $ s^K \sim \mathcal{N}(\mathbf{0},\mathbf{I}) $ 开始,逐步去噪恢复出 $ s^0 $。条件扩散模型将这个过程参数化为:
p θ ( s 0 : K ∣ x , z ) = N ( s K ; 0 , I ) ∏ k = 1 K p θ ( s k − 1 ∣ s k , x , z ) . (7) p_\theta(s^{0:K} \mid x, z) = \mathcal{N}(s^K; \mathbf{0},\mathbf{I}) \prod_{k=1}^K p_\theta(s^{k-1} \mid s^k, x, z). \tag{7} pθ​(s0:K∣x,z)=N(sK;0,I)k=1∏K​pθ​(sk−1∣sk,x,z).(7)
通常将 $ p_\theta(s^{k-1} \mid s^k, x, z) $ 建模为高斯分布,其均值由神经网络 $ \epsilon_\theta(s^k, x, z, k) $ 预测的噪声决定:
μ θ ( s k , x , z , k ) = 1 α k ( s k − β k 1 − α ˉ k ϵ θ ( s k , x , z , k ) ) , (8) \mu_\theta(s^k, x, z, k) = \frac{1}{\sqrt{\alpha^k}} \left( s^k - \frac{\beta^k}{\sqrt{1 - \bar{\alpha}^k}} \, \epsilon_\theta(s^k, x, z, k) \right), \tag{8} μθ​(sk,x,z,k)=αk​1​(sk−1−αˉk​βk​ϵθ​(sk,x,z,k)),(8)
方差固定为 $ \beta^k \mathbf{I} $。从而采样公式为:
s k − 1 = 1 α k ( s k − β k 1 − α ˉ k ϵ θ ( s k , x , z , k ) ) + β k ϵ , ϵ ∼ N ( 0 , I ) . (9) s^{k-1} = \frac{1}{\sqrt{\alpha^k}} \left( s^k - \frac{\beta^k}{\sqrt{1 - \bar{\alpha}^k}} \epsilon_\theta(s^k, x, z, k) \right) + \sqrt{\beta^k} \, \epsilon,\quad \epsilon \sim \mathcal{N}(\mathbf{0},\mathbf{I}). \tag{9} sk−1=αk​1​(sk−1−αˉk​βk​ϵθ​(sk,x,z,k))+βk​ϵ,ϵ∼N(0,I).(9)

2.3 训练目标

训练难点:在推断时,我们只有 x x x,没有 z z z。但在训练时,我们有真实状态 s s s。

解决方案

  1. 训练一个后验网络 q ψ ( z ∣ x , s ) q_\psi(z | x, s) qψ​(z∣x,s),利用真实状态 s s s 来学习理想的 z z z。
  2. 训练一个先验网络 p ϕ ( z ∣ x ) p_\phi(z | x) pϕ​(z∣x),仅利用 x x x 来预测 z z z。
  3. 通过最小化两者之间的 KL 散度,使得推断时的先验 p ϕ p_\phi pϕ​ 接近训练时的后验 q ψ q_\psi qψ​。

总损失函数
基于变分下界(ELBO)推导,GlobeDiff 的训练损失为:
L ( θ , ϕ , ψ ) = E k , ϵ , ( s , x ) , z ∼ q ψ [ ∥ ϵ − ϵ θ ( α ˉ k s + 1 − α ˉ k ϵ , x , z , k ) ∥ 2 ] + β K L K L ( q ψ ( z ∣ x , s ) ∥ p ϕ ( z ∣ x ) ) . (10) \mathcal{L}(\theta,\phi,\psi) = \mathbb{E}_{k,\epsilon,(s,x),z\sim q_\psi} \left[ \big\| \epsilon - \epsilon_\theta\big( \sqrt{\bar{\alpha}^k} s + \sqrt{1-\bar{\alpha}^k}\epsilon, x, z, k \big) \big\|^2 \right] + \beta_{\mathrm{KL}} \, \mathrm{KL}\big( q_\psi(z \mid x,s) \,\|\, p_\phi(z \mid x) \big). \tag{10} L(θ,ϕ,ψ)=Ek,ϵ,(s,x),z∼qψ​​[​ϵ−ϵθ​(αˉk​s+1−αˉk​ϵ,x,z,k)​2]+βKL​KL(qψ​(z∣x,s)∥pϕ​(z∣x)).(10)

  • 第一项是标准的扩散模型去噪损失,保证能还原状态。
  • 第二项是 KL 散度约束,保证先验网络 p ϕ p_\phi pϕ​ 能预测出与后验网络一致的 z z z。

2.4 训练与推断过程

训练阶段,GlobeDiff 利用离线数据或在线收集的轨迹,$ (s, x) $,通过最小化式 (10) 更新 $ \theta, \phi, \psi $,学习一个条件扩散模型 $ p_\theta(s \mid x) $,其中 $ x $ 是辅助局部观测(下文解释)。

推断阶段,每个智能体根据当前 $ x $ 生成全局状态 $ \hat{s} $,然后基于 $ \hat{s} $ 做出决策($ a_i = \pi_i(\cdot \mid \hat{s}) $)。整个过程不需要任何全局信息,符合 CTDE(集中训练、分散执行)范式。

推断过程(Inference) 具体如下:

  1. 智能体获取局部观测 x x x。
  2. 通过先验网络采样 z ∼ p ϕ ( z ∣ x ) z \sim p_\phi(z | x) z∼pϕ​(z∣x)。
  3. 初始化 s K ∼ N ( 0 , I ) s_K \sim \mathcal{N}(0, I) sK​∼N(0,I)。
  4. 执行 K K K 步去噪采样,得到推断的全局状态 s ^ = s 0 \hat{s} = s_0 s^=s0​。
  5. 智能体基于 s ^ \hat{s} s^ 执行动作 a i = π ϑ i ( ⋅ ∣ s ^ ) a_i = \pi_{\vartheta_i}(\cdot | \hat{s}) ai​=πϑi​​(⋅∣s^)。

2.5 辅助观测的构造

论文考虑了两种场景来构造辅助观测 $ x $:

  • 场景一:观测信息较丰富:用单个智能体最近 $ m $ 步的历史观测构成 $ x $:
    x t = { o t − m i , o t − m + 1 i , … , o t i } . (1) x_t = \{ o_{t-m}^i, o_{t-m+1}^i, \dots, o_t^i \}. \tag{1} xt​={ot−mi​,ot−m+1i​,…,oti​}.(1)
    这适用于每个智能体自身已能积累较多信息的情况。
  • 场景二:观测信息非常有限:允许智能体之间通信,将当前时刻所有智能体的观测拼接起来:
    x t = { o t 1 , o t 2 , … , o t n } . (2) x_t = \{ o_t^1, o_t^2, \dots, o_t^n \}. \tag{2} xt​={ot1​,ot2​,…,otn​}.(2)
    此时 $ x $ 包含了全体的瞬时观测,但仍不等于全局状态,因为观测可能丢失部分属性(如敌方血量、兵种等)。

3. 理论分析:误差边界

论文给出了两个重要的理论结果(定理1和定理2),证明在合理假设下,GlobeDiff 的估计误差可以被控制。

证明细节请参考论文附录,这里我们只需理解:GlobeDiff 的理论保证了即使在复杂的一对多映射下,其推断结果仍然具有高保真度。

3.1 单样本期望误差界 (Theorem 1)

假设扩散噪声预测误差有界(MSE ≤ δ 2 \leq \delta^2 ≤δ2),且先验对齐误差有界(KL ≤ ε K L \leq \varepsilon_{KL} ≤εKL​)。对于生成的样本 s ^ \hat{s} s^ 和真实样本 s s s,期望平方误差满足:
E [ ∥ s ^ − s ∥ 2 ] ≤ 2 W 2 2 ( p θ , ϕ ( s ∣ x ) , p ( s ∣ x ) ) + 4 Var ( s ∣ x ) \mathbb{E}[\|\hat{s} - s\|^2] \leq 2 W_2^2(p_{\theta, \phi}(s|x), p(s|x)) + 4 \text{Var}(s|x) E[∥s^−s∥2]≤2W22​(pθ,ϕ​(s∣x),p(s∣x))+4Var(s∣x)

  • W 2 W_2 W2​ 是 Wasserstein-2 距离,衡量生成分布与真实分布的差异。
  • Var ( s ∣ x ) \text{Var}(s|x) Var(s∣x) 是给定观测下的状态条件方差(即环境本身的不确定性)。

解释:误差主要由两部分组成:模型分布与真实分布的距离,以及环境本身固有的不确定性。模型无法消除环境固有的不确定性,但可以将分布距离最小化。

3.2 多模态误差界 (Theorem 2)

针对本文重点解决的多模态情况(即 p ( s ∣ x ) p(s|x) p(s∣x) 有多个峰值),假设真实分布是 N N N 个高斯模式的混合:
p ( s ∣ x ) = ∑ i = 1 N w i N ( s ; μ i ( x ) , Σ i ( x ) ) p(s|x) = \sum_{i=1}^N w_i \mathcal{N}(s; \mu_i(x), \Sigma_i(x)) p(s∣x)=i=1∑N​wi​N(s;μi​(x),Σi​(x))
若模式之间分离度足够大(距离 D D D 足够远),则生成的样本 s ^ \hat{s} s^ 至少会落在某一个真实模式中心 μ j ( x ) \mu_j(x) μj​(x) 的附近,误差满足:
E [ ∥ s ^ − μ j ( x ) ∥ 2 ] ≤ C 1 K δ 2 + C 2 ε K L + 2 max ⁡ i Tr ( Σ i ( x ) ) + O ( e − D 2 / ( 8 σ max ⁡ 2 ) ) \mathbb{E}[\|\hat{s} - \mu_j(x)\|^2] \leq C_1 K \delta^2 + C_2 \varepsilon_{KL} + 2 \max_i \text{Tr}(\Sigma_i(x)) + O(e^{-D^2/(8\sigma^2_{\max})}) E[∥s^−μj​(x)∥2]≤C1​Kδ2+C2​εKL​+2imax​Tr(Σi​(x))+O(e−D2/(8σmax2​))
解释:这个定理证明了即使存在多模态歧义,GlobeDiff 生成的状态也不会乱跑,而是会收敛到某一个合理的真实状态模式中心附近,且误差有界。这保证了模型能正确捕获多模态特性,而不是在模态间“和稀泥”。误差项分别对应扩散步数误差、先验对齐误差、模式内方差以及模式间分离度带来的指数级小误差。

4. 实验场景与结果

4.1 环境与设置

实验在 SMAC(StarCraft Multi-Agent Challenge)及其变体上进行。作者发现原始 SMAC 的局部观测信息量过大,即使将视野缩小到 3,标准 MARL 算法 MAPPO 的性能下降也非常有限(仅 0.03 的胜率下降),这说明原始环境不适合研究部分可观测性。因此,他们修改了环境,移除局部观测中的敌方单位类型和生命值,使得观测与全局状态之间的映射变得更模糊。修改后的环境称为 SMAC‑v1 (PO)SMAC‑v2 (PO)

实验中,对于 SMAC‑v1 (PO),辅助观测采用单智能体历史轨迹(式 (1));对于 SMAC‑v2 (PO),辅助观测采用所有智能体的瞬时观测(式 (2))。所有结果基于三次随机种子取平均。

  • SMAC-v1(PO):基于单个智能体的历史轨迹构建辅助观测 x t = { o t − m , . . . , o t } x_t = \{o_{t-m}, ..., o_t\} xt​={ot−m​,...,ot​}。
  • SMAC-v2(PO):环境随机性更强(随机阵容、随机出生点),允许智能体间通信,辅助观测构建为联合观测 x t = { o t 1 , . . . , o t n } x_t = \{o^1_t, ..., o^n_t\} xt​={ot1​,...,otn​}。

4.2 基线方法

  • LBS(Learned Belief Search):学习自回归信念模型,用 RNN 编码观测历史。
  • Dynamic Belief:用变分推断预测其他智能体的动态信念。
  • CommFormer:学习动态通信图,基于注意力传递消息。
  • MAPPO (VAE):用条件 VAE 替换 GlobeDiff。
  • MAPPO (MLP):用 MLP 直接回归全局状态。
  • MAPPO (Joint):将联合观测直接作为策略输入(无生成模型)。

4.3 主要实验结果

Q1:GlobeDiff 能准确推断全局状态吗?

通过 t-SNE 可视化全局状态空间,GlobeDiff 推断出的状态分布结构(Voronoi 多边形形状)与真实状态高度相似,且随着训练进行,相似度不断提高,说明 GlobeDiff 确实学到了高保真的条件分布。

Q2:用 GlobeDiff 生成的全局状态能提升 MARL 性能吗?

在 SMAC‑v1 (PO) 和 SMAC‑v2 (PO) 上,GlobeDiff 在所有地图上均显著超过 LBS、Dynamic Belief、CommFormer 等基线,尤其在超难地图(如 6h_vs_8z)上优势明显。这证明精确的全局状态推断对策略学习至关重要。

Q3:GlobeDiff 优于其他生成模型吗?

将 GlobeDiff 与 VAE、MLP、直接使用联合观测的 MAPPO 对比,结果显示,VAE 和 MLP 几乎没有带来性能提升,说明它们无法有效处理一对多映射;而直接使用联合观测甚至可能引入冗余信息,导致性能下降。GlobeDiff 的扩散模型凭借强大的表达能力和多模态建模,取得了最佳效果。

4.4 消融与可视化

  • 先验网络的作用:移除先验网络约束(GlobeDiff w/o p)后,性能下降。证明了对齐 p ( z ∣ x ) p(z|x) p(z∣x) 和 q ( z ∣ x , s ) q(z|x,s) q(z∣x,s) 对于推断阶段至关重要。
  • 超参数鲁棒性:扩散步数 K K K 增加能提高推断精度,但模型参数量(残差块数量)对性能影响较小,说明不需要极大的模型即可实现准确推断。
  • 参数量对比:即使将 Vanilla MAPPO 的参数量增加到与 GlobeDiff 相当(Vanilla MAPPO Large),其性能仍不如 GlobeDiff。这说明性能提升来自于生成式建模架构的优势,而非单纯的容量增加。

5. 总结与展望

GlobeDiff 首次将条件扩散模型引入多智能体全局状态推断,通过引入潜在变量 $ z $ 显式建模一对多映射,从根本上解决了部分可观测下传统方法容易模式坍缩的问题。理论分析给出了误差上界,实验证明其在 SMAC 环境下能显著提升算法性能,且能够直观地展示状态重建的质量。

未来工作可考虑将 GlobeDiff 应用到真实机器人系统或自动驾驶等更复杂的场景中,并探索如何与在线学习更紧密地结合,进一步减少分布偏移的影响。

附录:重要符号速查

符号含义
$ s $全局状态
$ x $辅助观测(由局部观测构造)
$ z $潜在变量,用于指示多模态中的具体模式
$ q_\psi(z \mid x,s) $后验网络,训练时根据真实状态推断 $ z $
$ p_\phi(z \mid x) $先验网络,推断时仅用 $ x $ 预测 $ z $ 分布
$ \epsilon_\theta(s^k, x, z, k) $噪声预测网络,用于反向扩散过程
$ \beta^k, \alpha^k, \bar{\alpha}^k $扩散过程的噪声方差及相关参数
$ K $总扩散步数
$ \mathcal{L}_{\mathrm{diff}} $扩散模型的噪声预测损失
$ \beta_{\mathrm{KL}} $KL 项的平衡系数

Read more

VsCode远程Copilot无法使用Claude Agent问题

最近我突然发现vscode Copilot中Claude模型突然没了,我刚充的钱啊!没有Claude我还用啥Copilot 很多小伙伴知道要开代理,开完代理后确实Claude会出来,本地使用是没有任何问题的,但是如果使用远程ssh的话,会出现访问异常,连接不上的情况。这时候很多小伙伴就在网上寻找方法,在vscode setting中添加这么一段代码。可以看看这篇博客 "http.proxy": "http://127.0.0.1:1082", "remote.extensionKind": { "GitHub.copilot": [ "ui" ], "GitHub.copilot-chat": [ "ui" ], "pub.name": [ "ui&

By Ne0inhk

OpenClaw之Memory配置成本地模式,Ubuntu+CUDA+cuDNN+llama.cpp

文章目录 * 背景:Memory不生效的问题 * OpenClaw的Memory配置 * Ubuntu24.04安装CUDA和cuDNN * 编译llama.cpp * 验证方案1: * 验证方案2:下载并运行Llama-2 7B模型 * 安装node-llama-cpp * 验证Memory * sqlite-vec unavailable * 踩过的坑 * 安装node-llama-cpp的一些提示 * 安装node-llama-cpp的前置条件 * Using `node-llama-cpp` With Vulkan 承接上文:Windows11基于WSL2首次运行Openclaw,并对接飞书应用,我已经在电脑上安装了OpenClaw,接下来解决Memory问题。走了很多弯路,下面主要讲我总结的正确的安装过程。 总结来说:针对Memory不生效的问题,又不想用OpenAI或Gemini,或者只想单纯的节省token,可以按照如下的方式,设置为local模式: * 修改openclaw.json配置 * 安装CUDA和cu

By Ne0inhk

Hugo + Github + Cloudflare Pages搭建你的个人博客

前置准备 * GitHub账号 * git * MarkDown文本编辑器 没有GitHub和git的可以参考这篇博客进行下载和配置,仓库可以先不创建,其中SSH密钥建议搞一下,简单来说它的作用就是验证你身份的合法性,这样每次拉取/推送代码时都无需再输入账号密码,而且SSH传输比HTTP更安全。 后面我们博客的编写以及Hugo的一些配置文件都是使用的md(MarkDown)语法,所以最好有个编辑工具,像Typora,Obsidian等等(VSCode也可以),用记事本你还需要学一下md语法,而且不美观,不能实时预览效果,一般现成的编辑器功能都很丰富而且都是自带格式化工具的 Hugo Hugo声称它们是世界上最快的构建网站的框架,由Go语言实现,简单、易用、高效、易扩展、快速部署,这也是我选择它的原因 Hugo下载 这里演示的是Windows11系统,官方推荐的下载方式需要额外下载一个包管理器,我觉得非常麻烦,所以就直接从Github下载了,点击下载Hugo,直接选择最新的版本(我的是v0.152.2),在Assets那里找到extended_windows版本,本

By Ne0inhk