演示目标

本演示旨在展示 SkillLite 智能体如何在其环境中实现提示(prompts)和记忆(memory)的自进化。我们将通过运行一个 SkillLite 智能体,并观察其在交互过程中对本地存储的提示和记忆文件可能产生的变化,来体现这一核心功能。

项目地址:Skilllite

为何选择此仓库

SkillLite 仓库明确将“自进化引擎”作为其核心特性之一。README.md 中详细说明了其架构,其中包含一个“自进化引擎”,并指出“可进化数据(本地文件,随使用自动改进)”包括:

  • 提示(Prompts) — 系统 / 规划 / 执行提示
  • 记忆(Memory) — 任务模式、工具效果、失败教训
  • 技能(Skills) — 从重复模式中自动生成的技能

此外,skilllite/Cargo.toml 文件中的 agent 特性默认启用,并且 crates/skilllite-agent 依赖于 crates/skilllite-evolution,这进一步证实了智能体具备进化能力。SkillLite 的设计理念是“进化而不降低安全标准”,强调了进化过程是可审计和可回滚的,并且不会修改核心二进制文件,而是通过更新本地文件来实现。

项目设置

在开始之前,请确保您的系统已安装 Rust 和 Cargo。

  1. 克隆仓库

    首先,将 SkillLite 仓库克隆到您的本地机器:

    git clone https://github.com/EXboys/skilllite.git
    cd skilllite
    
  2. 构建 SkillLite 二进制文件

    SkillLite 的 skilllite 二进制文件包含了智能体(agent)功能。由于 agent 特性在 skilllite/Cargo.toml 中是默认启用的,您只需执行标准的发布构建命令即可:

    cargo build --release
    

    这将在 target/release/ 目录下生成 skilllite 可执行文件。

逐步构建演示

我们将通过运行 SkillLite 智能体并观察其本地数据目录来演示提示和记忆的进化。

步骤 1:运行 SkillLite 智能体

SkillLite 智能体提供了一个交互式命令行界面。您可以通过以下命令启动它:

./target/release/skilllite chat

如果 chat 命令不存在,请尝试运行 ./target/release/skilllite --help 查看可用的智能体相关命令,例如 agent 或直接运行 ./target/release/skilllite 如果它默认进入智能体模式。根据 skilllite/Cargo.tomlrustyline 的依赖,chat 模式是最可能的交互方式。

首次运行智能体时,它可能会初始化其工作目录和配置文件。

步骤 2:与智能体交互以触发潜在的进化

当智能体启动后,您会看到一个提示符,可以开始与它对话。为了触发潜在的进化,我们可以给它一个简单的任务,并进行一些反馈。

例如,您可以输入:

你好,SkillLite。你能写一首关于 Rust 编程的短诗吗?

智能体将处理您的请求并返回一个响应。

接下来,您可以尝试提供一些反馈,例如:

这首诗很好,但你能让它更强调 Rust 的安全性特性吗?

或者,您可以重复一个类似的任务,让智能体有机会从之前的交互中学习。

再写一首关于 Rust 的诗,这次重点放在并发性上。

步骤 3:观察提示和记忆文件的变化

SkillLite 智能体将提示和记忆存储在本地文件系统中。这些文件通常位于您的操作系统标准应用程序数据目录下的 skilllite 文件夹中。

您需要验证的具体路径:

  • Linux: ~/.local/share/skilllite/~/.config/skilllite/
  • macOS: ~/Library/Application Support/skilllite/
  • Windows: %APPDATA%\skilllite\ (通常是 C:\Users\<YourUser>\AppData\Roaming\skilllite\)

在与智能体交互之前和之后,检查这些目录。您应该特别关注以下子目录(如果它们存在):

  • prompts/:可能包含智能体使用的系统提示、规划提示或执行提示。
  • memory/:可能包含智能体学习到的任务模式、工具效果或失败教训。

观察方法:

  1. 在启动智能体之前,导航到上述可能的 SkillLite 数据目录,并列出其内容。例如(在 Linux/macOS 上):

    ls -R ~/.local/share/skilllite/ # 或其他路径
    

    记下或备份初始的文件列表和内容。

  2. 与智能体进行多次交互,提供不同的任务和反馈。

  3. 在与智能体交互之后,再次检查 SkillLite 数据目录。

    ls -R ~/.local/share/skilllite/ # 再次检查
    

    使用 diff 工具或手动比较,查看 prompts/memory/ 目录中是否有新的文件被创建,或者现有文件的内容是否发生了变化。

    例如,您可以使用 find 命令查找最近修改的文件:

    find ~/.local/share/skilllite/ -mmin -5 # 查找过去5分钟内修改的文件
    

预期结果:

虽然具体的文件名和内容变化取决于智能体的内部逻辑和您提供的交互,但您应该能够观察到:

  • prompts/ 目录中的文件内容可能根据智能体的学习和优化而更新。
  • memory/ 目录中可能会出现新的文件或现有文件被修改,以存储智能体从交互中获得的经验和知识。

完整代码

本演示主要涉及命令行操作,没有需要编写的“完整代码”文件。以下是您需要执行的命令摘要:

# 1. 克隆仓库
git clone https://github.com/EXboys/skilllite.git
cd skilllite

# 2. 构建 SkillLite 二进制文件
cargo build --release

# 3. 启动 SkillLite 智能体
./target/release/skilllite chat

# 4. (可选) 检查 SkillLite 数据目录(在与智能体交互之前)
# 假设在 Linux/macOS 上,请根据您的操作系统和实际路径调整
ls -R ~/.local/share/skilllite/

# 5. 在智能体提示符下进行交互,例如:
# 你好,SkillLite。你能写一首关于 Rust 编程的短诗吗?
# 这首诗很好,但你能让它更强调 Rust 的安全性特性吗?
# 再写一首关于 Rust 的诗,这次重点放在并发性上。

# 6. (可选) 检查 SkillLite 数据目录(在与智能体交互之后)
ls -R ~/.local/share/skilllite/
find ~/.local/share/skilllite/ -mmin -5 # 查找过去5分钟内修改的文件

代码工作原理

  1. cargo build --release: 这个命令编译了 SkillLite 项目,生成了一个优化的可执行文件 skilllite。由于 skilllite/Cargo.toml 中默认启用了 agent 特性,因此构建出的二进制文件包含了智能体所需的所有功能,包括与 skilllite-evolution 模块的集成。
  2. ./target/release/skilllite chat: 启动 SkillLite 智能体进入交互式聊天模式。在这个模式下,智能体通过 skilllite-agent 模块处理用户输入,与大型语言模型(LLM)进行交互(需要配置 LLM API 密钥,尽管本演示未涉及具体配置),并执行工具。
  3. 智能体进化循环: README.md 中描述的“进化引擎:反馈 → 反思 → 进化 → 验证”循环在智能体运行时
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐