LLAJinja

创新的开源 Skill,允许开发者使用 Jinja2 模板语法编写 AI Agent 的 Skill(技能指令)

AI编程开发 部分免费

LLAJinja 是一款创新的开源 Skill,允许开发者使用 Jinja2 模板语法编写 AI Agent 的 Skill(技能指令)。它不需要任何扩展或插件,兼容任何支持 Skill 加载机制的 AI 开发工具(如 Claude Code、OpenCode、Codex、Pi 等),让用户可以用熟悉的模板引擎来组织和管理多步骤代理工作流。

项目简介

在 AI 编程助手日益普及的背景下,如何将复杂的代理工作流封装成可复用、可组合的 Skill 一直是开发者的痛点。LLAJinja 的核心思路非常简单:将 Jinja2 模板引擎的能力引入 Skill 编写领域,用模板变量、模板循环、模板继承等机制来描述一个 Skill 的执行流程。相比固定格式的 Markdown 指令,Jinja2 模板提供了更强大的逻辑表达能力,尤其适合需要分支、循环和子任务拆分的复杂场景。

核心功能

  1. 模板变量声明与交互式输入 — 在 Skill 中使用 input. 声明所需参数,运行时若参数未提供,LLAJinja 会自动提示用户输入,实现 Skill 与人类的交互式协作。
  2. Stage 分步执行 — 使用 {% stage name %} ... {% endstage %} 标签将多步骤 Skill 拆分为顺序执行的阶段,每个阶段完成后状态保存到运行时日志,支持中断后恢复和重复执行。
  3. Agent 子任务调用 — 使用 {% agent name input={} output={} %} ... {% endagent %} 在模板中嵌入子代理调用,LLAJinja 会生成对应的 JSON Schema 定义子代理的输入输出格式,子代理的输出结果可以供后续模板引用。
  4. 嵌套 Skill — 通过 nested 参数,子代理可以运行另一个 Jinja 模板 Skill,多个 Skill 之间形成嵌套调用链,实现复杂的工作流组合。
  5. 子代理链与工作流 — 多个子代理可以串行组合或放入控制流语句中,所有执行状态自动保存到运行时日志,支持工作流的暂停、恢复和回放。
  6. 模板继承与复用 — 支持 Jinja2 原生的 extends 和 include 标签,可以将公共模板片段提取为单独文件,实现 Skill 的模块化组装。
  7. 跨 Harness 兼容 — 不依赖特定供应商的扩展接口,只要目标工具支持 Skill 加载机制即可使用 LLAJinja。
  8. 状态持久化 — 执行状态默认存储在 /tmp/llajinja 目录,可通过 LLAJINJA_WORKFLOW_PATH 环境变量自定义路径。

技术实现

LLAJinja 基于 Python Jinja2 模板引擎实现,使用 Jinja2 的 ImmutableSandboxedEnvironment 以降低模板执行的安全风险,但项目文档明确指出沙箱并非完整的安全边界,用户不应将 AI 生成的模板视为可信代码。

LLAJinja 的核心机制围绕「状态日志」展开:每次模板执行时,当前运行到的阶段、子代理输出、变量状态都会被记录到运行时日志文件。当 Harness 再次调用 Skill 时,LLAJinja 会先读取日志,找到上一个未完成的阶段,从断点处继续执行。这使得复杂的多步骤工作流能够在多次交互中可靠地恢复。

当前版本(Work in Progress)存在一个限制:LLAJinja 只能发现与其位于同一 Skill 文件夹中的其他模板化 Skill,尚不支持混合使用全局 Skill 和项目级 Skill。

快速上手

  1. 安装 Jinja2。确保 Jinja2 Python 库已安装,或在运行环境中指定包含 Jinja2 的 Python 解释器路径。
  2. 将 LLAJinja 添加到 Skills 文件夹。手动复制或通过 npx 安装到你的 AI 工具的 Skills 目录中。
  3. 编写模板化 Skill。使用 {% input.name %} 声明变量、{% stage %} 定义阶段、{% agent %} 调用子代理,用标准 Jinja2 语法组织工作流。
  4. 运行 Skill。在支持 LLAJinja 的 AI 工具中输入:llajinja run your-skill(your-skill 为你的模板文件名)。
  5. 管理运行状态。工作流执行记录保存在 /tmp/llajinja(默认),可通过 LLAJINJA_WORKFLOW_PATH 环境变量修改,适合需要长期运行的复杂流程。

适用人群

  • AI 工具深度用户:已经在使用 Claude Code、OpenCode 等支持 Skill 机制的工具,希望用更灵活的方式组织复杂任务。
  • AI 工作流工程师:需要将多步骤代理任务封装为可复用模板的开发者,熟悉 Jinja2 模板语法者上手更快。
  • Skill 开发者:正在构建自己的 Skill 库,希望引入变量、循环、阶段等高级控制能力,而不是写一堆 Markdown 说明文档。
  • 自动化脚本作者:需要将多个 AI 代理串联成链式工作流,并希望工作流能够在执行中断后从断点恢复。

开发者备注

LLAJinja 由独立开发者创建,目前处于活跃开发阶段(Work in Progress),欢迎用户反馈。灵感来源于 LLAssemblyCLI 的设计理念,相关介绍可参见作者博客。项目采用标准 Jinja2 生态,依赖明确,无供应商锁定。

GitHub:https://github.com/electronick1/LLAJinja

团队信息

由 AI 猎手自动发现

评论与建议

0 条评论