news 2026/5/14 22:14:15

为AI编码智能体构建结构化记忆:Beads任务追踪器实战指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
为AI编码智能体构建结构化记忆:Beads任务追踪器实战指南

1. 项目概述:为AI编码智能体构建结构化记忆

如果你和我一样,已经深度使用Claude Code、Cursor Agent或者GitHub Copilot Chat这类AI编码助手超过半年,你一定会遇到一个核心痛点:上下文丢失。当你让智能体处理一个稍微复杂、需要多步协作的任务时,比如“重构项目的认证模块”,它可能会生成一个不错的初始计划,但当你后续提问“现在实现OAuth登录”时,它很可能已经忘了之前的上下文,或者需要你重新粘贴大量历史对话。这种“金鱼记忆”严重限制了AI智能体处理长周期、多步骤任务的能力。

Beads(项目代号bd)就是为了解决这个问题而生的。它不是另一个聊天界面,而是一个分布式、图结构的任务追踪器,专门为AI编码智能体设计。你可以把它理解为智能体的“外置大脑”或“结构化工作记忆”。它用依赖关系图取代了杂乱无章的Markdown计划列表,让智能体能够理解任务之间的先后顺序、父子关系和关联性,从而实现真正的“规划-执行-迭代”工作流。

简单来说,Beads做了三件事:

  1. 持久化存储:将智能体的任务规划、执行状态和结果,存储在一个版本控制的SQL数据库(Dolt)中,而不是易失的聊天上下文里。
  2. 依赖感知:明确任务A是否阻塞了任务B,任务C是否是任务D的子项,形成一个清晰的执行图谱。
  3. 零冲突协作:通过哈希ID和底层数据库的合并能力,支持多个智能体(甚至多个人)在同一个项目上并行工作,而不会产生任务状态的冲突。

它尤其适合那些正在将AI深度集成到开发工作流中的工程师、技术负责人以及独立开发者。无论你是在个人项目上尝试自动化,还是在团队中探索AI辅助编码的最佳实践,Beads提供的这套结构化记忆系统,都能显著提升智能体的可靠性和产出效率。

2. 核心设计思路:为什么是“图”+“数据库”?

在深入命令行之前,理解Beads背后的设计哲学至关重要。这决定了它为什么好用,以及应该在什么场景下使用。

2.1 从线性列表到依赖图:解决智能体的“规划失焦”

传统的AI智能体任务管理,通常是在聊天窗口中列一个Markdown清单。这种线性列表有几个致命缺陷:

  • 依赖模糊:智能体很难判断“实现用户模型”和“创建注册API”哪个应该先做,或者它们是否相互依赖。
  • 状态追踪困难:一个任务从“待办”到“进行中”再到“完成”,状态变化缺乏可靠的、可查询的记录。
  • 上下文爆炸:为了记住整个列表和状态,你需要不断在提示词中重复粘贴,挤占了宝贵的上下文窗口。

Beads将任务建模为图(Graph)中的节点,用边(Edge)来表示blocks(阻塞)、relates_to(关联)、parent_of(父子)等关系。当智能体执行bd ready命令时,它不是在返回一个简单的过滤列表,而是在进行图遍历查询:找出所有没有“入边”(即没有被其他未完成任务阻塞)的节点。这确保了智能体永远在解决当前可执行的最优任务,避免了因依赖未就绪而产生的空转或错误。

2.2 选择Dolt作为存储引擎:版本控制与无冲突合并的基石

Beads没有选择普通的SQLite或JSON文件,而是采用了Dolt——一个“Git for Data”的SQL数据库。这个选择是工程上的神来之笔,解决了多智能体协作的核心难题。

想象一下,你和你的AI编码伙伴同时在两个不同的Git分支上工作,各自创建和更新任务。当合并代码时,如果任务状态存储在普通文件里,很可能会产生冲突。Dolt引入了数据库层面的版本控制、分支和单元格级合并。这意味着,如果智能体A在分支feat-auth上更新了任务bd-a1b2的描述,而智能体B在分支fix-bug上将其状态改为“已完成”,Dolt可以自动、无冲突地合并这两个更改。Beads使用的哈希ID(如bd-a1b2)是全局唯一的,进一步杜绝了ID冲突的可能性。

这种设计带来了几个直接优势:

  • 分支对应的工作流:你可以为每个功能分支创建对应的Beads分支,任务状态与代码变更同步演进。
  • 完整的审计追踪:Dolt存储了每次数据变更的历史,你可以通过bd show <id>看到任务生命周期的完整时间线,谁在什么时候做了什么,一目了然。
  • 内置同步:通过Dolt远程仓库,可以轻松地在不同机器或团队成员间同步任务数据库,就像git push/pull一样简单。

2.3 智能体优化的接口设计:JSON、原子操作与自动就绪

Beads的CLI设计处处体现着为自动化而生的思想。首先,几乎所有命令都支持--json-j标志,输出结构化的JSON。这对于智能体来说,远比解析人类可读的文本表格要可靠得多。智能体可以轻松地提取任务ID、标题、状态、优先级等信息,并基于此做出决策。

其次,关键操作是原子性的。例如,bd update <id> --claim命令一次性完成了“设置为进行中”和“声明为处理者”两个操作。这防止了在多智能体环境下,出现两个智能体同时认为自己“认领”了同一个任务的竞态条件。

最后,自动就绪检测是核心工作流引擎。智能体不需要自己计算复杂的依赖关系,只需定期查询bd ready,就能获得一份可以安全执行的任务短名单。这大大降低了智能体规划逻辑的复杂度。

3. 从零开始:安装、初始化与基础工作流

理论讲完了,我们上手实操。Beads的安装力求简单,但有一些关键细节需要注意,这关系到后续使用的顺畅度。

3.1 安装方式选择与避坑指南

官方推荐了几种安装方式,我的建议是:

  • macOS/Linux用户:直接使用brew install beads。Homebrew会处理依赖、更新和路径配置,是最省心的方式。
  • Node.js生态用户:如果你习惯npm,npm install -g @beads/bd也不错,但要注意全局安装的权限问题。
  • 通用脚本安装:对于没有包管理器的环境,安装脚本是首选。
curl -fsSL https://raw.githubusercontent.com/steveyegge/beads/main/scripts/install.sh | bash

重要提示:无论用哪种方式,安装后务必验证。运行bd version确认安装成功。有时安装脚本可能因为网络问题没有正确设置PATH,如果命令未找到,尝试重启终端或手动将安装目录(如~/.beads/bin)加入PATH。

安全验证不容忽视:对于从网络下载的二进制文件,保持警惕是好事。Beads的安装脚本默认会校验下载文件的SHA256哈希值,与GitHub Release中的checksums.txt比对。如果你手动下载了二进制文件,务必自己执行校验。在macOS上,脚本默认会保留苹果的公证签名(如果存在),这是一个额外的安全层。除非你明确知道在做什么,否则不要轻易设置BEADS_INSTALL_RESIGN_MACOS=1进行重签名。

3.2 项目初始化:理解“嵌入式”与“服务器”模式

安装完成后,进入你的项目目录,执行初始化。这里你会遇到第一个重要选择:存储模式。

cd /path/to/your/awesome-project bd init

这条命令默认使用嵌入式模式。它会在你的项目下创建一个.beads/embeddeddolt/目录,里面运行着一个内嵌的Dolt数据库引擎。这种模式单写者,简单轻量,不需要管理额外进程,适合绝大多数个人或小型协作场景。文件锁会防止多个进程同时写入。

对于需要多写者的场景,比如一个团队共享的中央任务数据库,你需要服务器模式。

bd init --server

这个命令会创建.beads/dolt/目录,并期望连接到一个外部的dolt sql-server进程。你需要先启动Dolt服务器(例如dolt sql-server --host 0.0.0.0 --port 3307),然后Beads才能连接。服务器模式支持并发写入,但部署复杂度更高。

实操心得:除非你确知需要多人同时写入,否则强烈建议从嵌入式模式开始。嵌入式模式的性能对于日常使用完全足够,而且备份和迁移(后面会讲)非常方便。不要过早引入分布式系统的复杂性。

3.3 核心命令实战:创建一个智能体工作流

现在,让我们模拟一个AI智能体(比如Claude Code)如何使用Beads来处理“为项目添加日志模块”这个任务。

第一步:规划与创建任务智能体首先需要将大目标分解。它可能会执行:

# 创建史诗(Epic)级任务 bd create “为项目添加结构化日志系统” -p 1 -t epic # 输出: Created bd-a3f8 (P1 epic): 为项目添加结构化日志系统 # 创建子任务,并指定父任务(形成层级) bd create “调研并选择日志库(如Zap、Logrus)” -p 2 --parent bd-a3f8 bd create “设计日志接口与配置结构” -p 2 --parent bd-a3f8 bd create “实现核心日志包装器” -p 1 --parent bd-a3f8 bd create “将现有fmt.Print替换为新日志接口” -p 0 --parent bd-a3f8

注意--parent参数建立了父子关系。任务IDbd-a3f8.1bd-a3f8.2等会自动生成,清晰体现了归属。

第二步:建立依赖关系“实现核心日志包装器”可能依赖于“设计日志接口”。智能体会建立阻塞关系:

bd dep add bd-a3f8.3 bd-a3f8.2 --type blocks

这意味着bd-a3f8.3bd-a3f8.2阻塞了。在bd-a3f8.2完成前,bd-a3f8.3不会出现在bd ready的列表里。

第三步:认领与执行智能体查询可执行任务:

bd ready --json

基于JSON输出,它发现bd-a3f8.1(调研)和bd-a3f8.2(设计)没有阻塞项,可以开始。它原子性地认领一个:

bd update bd-a3f8.1 --claim

然后开始工作。完成后,关闭任务并添加注释:

bd close bd-a3f8.1 “已调研,建议使用Zap库,性能与功能均衡。”

第四步:推进与迭代完成bd-a3f8.1后,智能体再次查询bd ready,会发现bd-a3f8.2变成了可执行状态(因为它的依赖已完成)。如此循环,直到整个史诗完成。

这个流程的关键在于,智能体的状态被持久化在数据库中。即使你关闭了聊天窗口,第二天重新打开,只需让智能体运行bd ready,它就能立刻知道自己和整个项目处在什么阶段,该继续做什么。这才是真正的“持久化上下文”。

4. 高级特性与实战技巧

掌握了基础工作流,我们来看看Beads那些能进一步提升效率的高级功能。

4.1 内存压缩:为上下文窗口“减负”

AI模型的上下文窗口是宝贵资源。如果一个项目运行了几个月,积累了成千上万个已关闭的任务,每次都将所有任务历史塞进提示词是不现实的。Beads的compaction(压缩)功能就是解决方案。

你可以手动触发压缩,也可以配置自动压缩。压缩的核心逻辑是“语义化归档”:它会将很久以前已关闭的、低优先级的任务,汇总成一个概括性的描述。例如,将100个“修复拼写错误”的琐碎任务,压缩成一条“2024年Q1期间修复了若干文档拼写错误”的记录。

# 查看压缩建议(干跑模式) bd compact --dry-run # 执行压缩 bd compact # 配置自动压缩(例如,保留最近30天的详细任务,之后压缩) bd config set compaction.keep-days 30

注意事项:压缩是不可逆的操作(虽然底层Dolt有历史版本,但恢复麻烦)。建议在首次使用前,先通过bd backup完整备份数据库。对于核心的、具有参考价值的历史任务,可以通过提高其优先级或添加特定标签(如keep-detail)来避免被压缩。

4.2 消息与线程:超越“任务”的沟通

Beads不仅管理任务,还内置了一个轻量的消息系统(message类型)。这对于智能体之间的异步沟通,或者记录一些临时性的决策、发现特别有用。

# 发送一条消息 bd create “在调研中发现Zap库的异步日志性能在IO密集型场景下可能下降,建议评估。” -t message # 回复一条消息,形成线程 bd create “已收到,将在实现时加入同步模式作为备选。” -t message --thread bd-msg-id

消息类型默认有较短的生命周期(可配置),一段时间后会自动标记为“过时”或清理,非常适合那些不需要永久保留的临时讨论。你可以把它看作智能体工作流里的“即时贴”或“临时频道”。

4.3 无Git工作流:在CI/CD与特殊环境中的运用

Beads的默认集成对象是Git仓库,但它并不依赖Git。通过环境变量BEADS_DIR--stealth标志,你可以在任何地方使用它。

# 在一个非Git目录或CI流水线中 export BEADS_DIR=$(mktemp -d)/my_ci_beads bd init --quiet --stealth bd create “CI: Run integration tests for commit ${COMMIT_SHA}” -p 0 bd update bd-xxxx --claim # ... 执行测试 ... if tests_passed; then bd close bd-xxxx “All tests passed.” else bd update bd-xxxx --state blocked --comment “Tests failed, see logs at ${LOG_URL}” fi

这在以下场景非常强大:

  • CI/CD管道:将每个构建、部署任务记录为Beads任务,形成可视化的流水线执行图。
  • 多版本控制系统:你的项目如果用Mercurial或Perforce,同样可以享受Beads的能力。
  • 临时分析:在/tmp下快速初始化一个数据库,用于一次性的数据分析任务规划,用完即删。

4.4 备份、迁移与恢复:数据安全的生命线

只要开始用Beads管理重要项目,备份就是必须考虑的事。Beads的备份基于Dolt的远程推送/拉取功能,非常强大。

# 1. 初始化一个备份位置(可以是一个本地目录,也可以是DoltHub远程仓库) bd backup init ~/backups/my_project_beads # 2. 将当前数据库状态推送到备份点 bd backup sync # 这相当于在底层执行了 `dolt remote add backup ...` 和 `dolt push backup main` # 3. 灾难恢复:在新位置恢复数据库 cd /path/to/new/project bd init bd backup restore --force ~/backups/my_project_beads

迁移模式同样简单。如果你从嵌入式模式切换到服务器模式,可以先在旧模式中backup sync,然后在新的服务器模式项目中backup restore,数据就完整迁移过来了。

核心技巧:将bd backup sync加入到你的日常脚本或Git钩子(如pre-push)中,实现自动备份。对于团队项目,可以考虑使用DoltHub或自建的Dolt远程服务器作为中央备份仓库,实现任务数据的异地容灾。

5. 与AI智能体的深度集成实践

Beads的价值,最终体现在与具体AI编码助手的无缝协作上。这里以Claude Code和Cursor为例,分享我的集成配置。

5.1 为Claude Code编写自定义指令

在Claude Code的开发者设置中,你可以添加项目级的自定义指令。以下是一个增强版的指令模板,你可以根据项目情况修改:

## 项目任务管理与上下文持久化 本项目使用 **Beads (bd)** 作为AI任务追踪与上下文管理系统。请你作为我的编码助手,严格遵循以下工作流: 1. **规划阶段**:当我给你一个复杂需求时,请你首先将其分解为具体的、可执行的子任务。使用 `bd create` 命令创建它们,并明确设置优先级(-p 0 最高,-p 4 最低)、类型(-t bug/feature/epic等)和依赖关系(--parent, `bd dep add`)。输出创建的任务ID列表。 2. **执行阶段**:在开始任何编码工作前,请先运行 `bd ready --json` 获取当前无阻塞的可执行任务。选择其中一个,使用 `bd update <id> --claim` 原子性认领。在代码生成或修改过程中,如果产生了需要后续处理的新想法或问题,请立即用 `bd create` 记录下来,避免遗忘。 3. **提交与迭代**:完成一个任务后,使用 `bd close <id> “完成摘要”` 关闭它。关闭前,请运行 `bd show <id>` 快速回顾该任务的所有历史和关联。然后,继续从第2步(`bd ready`)开始下一个循环。 4. **沟通与记录**:对于非任务性的技术决策、发现或疑问,请使用 `bd create “内容” -t message` 进行记录。如需回复某条消息,使用 `--thread <message_id>` 参数。 **重要规则**: - 永远通过 `bd` 命令与任务系统交互,不要仅在对话中维护清单。 - 在回复我时,如果涉及任务状态变更,请附上相关的命令输出摘要。 - 如果你发现任务依赖关系不合理或优先级需要调整,请直接使用 `bd update` 或 `bd dep` 命令修改,并说明理由。 当前项目Beads状态速览:`bd ready` (等待执行), `bd list --state open` (所有开放任务)。

将这个指令保存后,Claude Code在每次会话中都会遵循这个结构化的工作流,极大地减少了上下文管理的认知负担。

5.2 在Cursor Agent中配置工具调用

Cursor的最新版本支持类似ChatGPT的“函数调用”或“工具调用”。虽然Beads本身没有提供官方的OpenAI格式的Tool定义,但我们可以利用Cursor的“自定义命令”功能来模拟。

在Cursor的设置中,你可以创建一系列“Custom Commands”,并绑定快捷键。例如:

  • 命令名Beads: Create Task
  • 指令
    # 请用户输入任务标题和优先级,然后执行 read -p "Task Title: " title read -p "Priority (0-4): " priority bd create "$title" -p $priority
  • 绑定快捷键Cmd+Shift+T

类似地,你可以创建Beads: Show Ready TasksBeads: Claim Task等命令。这样,在编码过程中,你可以快速通过快捷键与Beads交互,而无需切换终端或记忆复杂命令。

更进阶的做法是,利用Cursor Agent的“背景知识”功能,将bd ready --json的输出定期写入一个项目文件(如.cursor/agent_context.md),这样Agent在分析代码时,能自动感知到当前的项目任务上下文。

5.3 处理多智能体协作与冲突

当项目中有多个AI智能体(或多个开发者)同时使用Beads时,Dolt的版本控制能力就派上用场了。最佳实践是采用功能分支工作流

  1. 每个功能一个分支:不仅代码在feat-auth分支,Beads数据库也在同名的分支上工作。
    git checkout -b feat-auth bd branch feat-auth # 在Beads中创建并切换到同名分支
  2. 独立工作:在feat-auth分支上,智能体可以自由创建、修改任务,完全不影响main分支上的任务状态。
  3. 合并任务:当功能开发完成,合并代码到main后,也合并Beads分支。
    git checkout main git merge feat-auth bd checkout main bd merge feat-auth
    得益于Dolt的单元格级合并,只要你们没有同时修改同一个任务的同一个字段(比如状态),合并通常会非常顺利。如果出现冲突,Beads会提示你,你可以像解决Git代码冲突一样,使用bd conflictsbd resolve命令来解决。

避坑指南:在团队中推广时,建议初期约定一些简单规则,比如“任务标题和描述可以自由修改,但状态(state)和优先级(priority)的变更需谨慎”,以减少合并冲突的概率。充分利用bd show的审计功能,在合并前查看关键任务的变更历史。

6. 常见问题与故障排查实录

在实际使用中,你可能会遇到一些问题。以下是我和社区成员遇到过的一些典型情况及其解决方案。

6.1 安装与初始化问题

问题:安装后运行bd命令提示“command not found”。

  • 排查:这通常是PATH环境变量未正确配置。安装脚本通常会将可执行文件放在~/.beads/bin/usr/local/bin
  • 解决
    1. 检查文件是否存在:ls -la ~/.beads/bin/bdwhich bd
    2. 如果存在但未找到,将目录加入PATH。对于bashzsh,在~/.bashrc~/.zshrc中添加:export PATH="$HOME/.beads/bin:$PATH",然后执行source ~/.zshrc
    3. 对于Homebrew安装,有时需要brew link或重启终端。

问题:bd init失败,提示Dolt相关错误。

  • 排查:嵌入式模式需要下载或启动Dolt引擎。
  • 解决
    1. 检查网络连接,确保能访问GitHub Releases。
    2. 尝试清理缓存后重试:rm -rf .beads然后再次bd init
    3. 如果使用服务器模式,请确认dolt sql-server进程已在指定主机和端口运行,并且连接参数(--server-host,--server-port)或环境变量(BEADS_DOLT_SERVER_HOST等)设置正确。

6.2 命令执行与工作流问题

问题:bd ready总是返回空列表,但我明明有开放的任务。

  • 排查:这几乎总是因为依赖关系未满足bd ready只显示没有“未完成”的阻塞项的任务。
  • 解决
    1. 使用bd list --state open查看所有开放任务。
    2. 使用bd show <task_id>查看你关心的任务,检查它的“Blocked By”部分。
    3. 如果它被另一个开放任务阻塞,你需要先去完成或更新那个前置任务。如果依赖关系设置错误,可以用bd dep remove <child> <parent>解除阻塞。

问题:智能体认领任务时,提示“更新冲突”或任务已被其他人/智能体认领。

  • 排查:这是多智能体/多用户环境下的正常现象,说明该任务状态已被更改。
  • 解决
    1. 首先,运行bd show <task_id>查看任务最新的状态、处理者和更新时间。
    2. 如果确实已被他人认领,请选择另一个bd ready任务。
    3. 如果这是误操作或需要重新认领,可以与当前处理者协调(如果存在),或者如果当前处理者已离线,可以使用bd update <id> --state open --assignee ""将其重置为开放未分配状态(需根据团队规则判断是否允许)。

6.3 数据与备份问题

问题:.beads目录变得很大,想清理或移动它。

  • 解决:不要直接手动移动或删除.beads目录。正确的做法是使用备份/恢复功能。
    1. bd backup init /path/to/backup_location
    2. bd backup sync
    3. 在新位置或清理后,bd init,然后bd backup restore --force /path/to/backup_location
    4. 确认数据无误后,再删除旧的.beads目录。

问题:误删除了一个重要任务,能恢复吗?

  • 解决:可以!得益于Dolt的版本控制,你可以查看所有历史。
    1. 首先,找到该任务的历史ID或删除前的某个时间点。你可以通过bd log(如果配置了日志)或Dolt的底层命令来查看历史。
    2. 更简单的方法是:Beads数据库本身就是一个Dolt仓库。你可以cd .beads/embeddeddolt(嵌入式模式)或.beads/dolt(服务器模式的数据目录),然后使用dolt命令行工具。
    3. 例如,dolt log --oneline查看提交历史,dolt checkout <commit_hash>切换到删除前的版本,导出数据,然后再切回主分支合并恢复。这需要一些Dolt使用知识,但给了你“时光机”般的能力。

6.4 性能与高级配置

问题:项目任务数量极多(数万),bd list命令响应变慢。

  • 解决
    1. 使用过滤器:不要总是列出所有任务。多用bd list --state openbd list --priority 0,1bd list --assignee me来缩小范围。
    2. 启用压缩:定期运行bd compact,将老旧已关闭任务归档,减少主表数据量。
    3. 服务器模式优化:如果使用服务器模式,确保Dolt服务器有足够的内存,并考虑对issues表的相关查询字段建立索引(需通过Dolt SQL直接操作)。

问题:如何自定义任务类型、状态或优先级标签?

  • 解决:Beads目前有一套预定义的类型(task,bug,feature,epic,message)和状态(open,in_progress,blocked,closed)。自定义化主要通过配置实现。
    1. 查看当前配置:bd config list
    2. 设置配置:bd config set <key> <value>。例如,你可以修改默认的任务类型,但请注意,深度自定义可能影响与社区工具或未来版本的兼容性。
    3. 高级自定义通常需要修改Beads的源码或等待插件系统支持,目前建议尽量遵循默认规范。

最后,如果遇到文档未覆盖的奇怪问题,建议首先运行bd doctor命令进行基础健康检查,然后查看项目目录下的.beads/beads.log日志文件,里面通常包含了详细的错误信息,是排查问题的第一手资料。Beads是一个活跃的开源项目,其GitHub Issues页面也是寻找答案和寻求帮助的好地方。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/14 22:12:59

对抗AI焦虑的最好方式是搞懂大模型的底层原理

文章指出&#xff0c;尽管AI技术如RAG、MCP、Skill、Agent、Harness等迭代迅速&#xff0c;但程序员应专注于掌握大模型的底层原理&#xff0c;如记忆、信息获取、操作能力等&#xff0c;这些原理不会因技术变迁而失效。通过理解这些基础认知&#xff0c;程序员能更好地应对技术…

作者头像 李华
网站建设 2026/5/14 22:11:46

3分钟快速上手Clipy:彻底告别macOS剪贴板烦恼的终极指南

3分钟快速上手Clipy&#xff1a;彻底告别macOS剪贴板烦恼的终极指南 【免费下载链接】Clipy Clipboard extension app for macOS. 项目地址: https://gitcode.com/gh_mirrors/cl/Clipy 还在为频繁复制粘贴而烦恼吗&#xff1f;每次复制新内容时&#xff0c;之前的重要信…

作者头像 李华
网站建设 2026/5/14 22:09:33

配置HermesAgent使用Taotoken作为自定义模型提供商

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 配置HermesAgent使用Taotoken作为自定义模型提供商 基础教程类&#xff0c;逐步引导用户如何在HermesAgent的配置中&#xff0c;指…

作者头像 李华