OA0 = Omni AI 0
OA0 是一个探索 AI 的论坛
现在注册
已注册用户请  登录
OA0  ›  技能包  ›  jules-cli:使用 Jules 命令行工具管理异步编程会话

jules-cli:使用 Jules 命令行工具管理异步编程会话

 
  acmuuu ·  2026-02-08 11:16:47 · 3 次点击  · 0 条评论  

名称: jules-cli
描述: 通过 Jules CLI 管理异步编码会话。此技能仅适用于复杂、独立的、能从远程虚拟机中获益的任务,请谨慎使用。
binaries:
- jules
- python3
env:
- HOME


Jules CLI 技能

概述

此技能使智能体能够与 jules CLI 交互。它支持任务分配、会话监控和结果集成。

使用准则(至关重要)

为防止过度和不恰当的会话创建,必须遵守以下规则:

  1. 本地优先:如果能在当前本地环境(例如,编辑文件、运行测试、小型重构)中完成任务,请勿使用 Jules。
  2. 复杂性门槛:仅将 Jules 用于以下任务:
    • 大规模:涉及大量文件或需要重大架构变更。
    • 隔离性:受益于干净的远程环境,以避免本地依赖问题。
    • 探索性:解决方案不明确,需要在虚拟机中进行迭代的任务。
  3. 禁止扩散(一次一个)
    • 切勿为同一任务创建多个会话。
    • 切勿使用循环或并行执行同时启动多个会话。
    • 等待一个会话完成并检查结果后,再决定是否需要另一个会话。
  4. 禁止“小型”任务:不要提交诸如“添加注释”、“更改变量名”或“修复拼写错误”的任务。

安全准则

为确保 CLI 命令的安全执行,必须遵守以下安全实践:

  1. 输入验证:运行任何命令前,请验证:
    • 仓库名称 遵循 owner/repo 格式(仅限字母数字、点、连字符和下划线)。
    • 会话 ID 为字母数字(通常也允许连字符和下划线)。
  2. 引号:始终将 Shell 占位符用双引号括起来(例如 "<repo>")。
  3. 禁止内联注入:切勿将用户提供的数据直接嵌入脚本字符串(如 python3 -c)。使用环境变量安全传递此类数据。
  4. 清理:确保任务描述不包含恶意 Shell 字符(如果直接传递给 Shell)。

安全控制

  • 需要批准(强制):在运行以下任何命令之前,必须请求用户的明确批准:
    • jules remote new:因为这会创建远程会话/虚拟机。
    • jules remote pull --apply:因为这会修改本地代码库。
    • jules teleport:因为这会克隆并修改环境。
  • 验证:在创建新会话之前,始终运行 jules remote list --session,以确保没有同一仓库的待处理会话。
  • 凭证:如果需要 jules login,向用户解释原因,并在获得确认后再继续。

核心工作流(手动控制)

建议直接使用 CLI 以保持对情况的了解。

1. 起飞前检查

验证仓库访问权限和格式。

jules remote list --repo

注意:确保仓库格式为 GITHUB_USERNAME/REPO

2. 提交任务

创建会话并捕获会话 ID。

# 捕获输出以获取 ID
# 将 <repo> 和任务描述替换为已验证的输入
jules remote new --repo "<repo>" --session "详细的任务描述" < /dev/null

3. 监控进度

列出会话并查找你的 ID。使用这个健壮的一行命令来检查状态(它能处理带空格的状态,如“进行中”):

检查状态(安全方法):

# 使用环境变量将会话 ID 安全地传递给 Python
export JULES_SESSION_ID="<SESSION_ID>"
jules remote list --session | python3 -c "
import sys, re, os
session_id = os.environ.get('JULES_SESSION_ID', '')
if not session_id: sys.exit(0)
for line in sys.stdin:
    line = line.strip()
    if line.startswith(session_id):
        # 提取状态(多个空格后的最后一列)
        print(re.split(r'\s{2,}', line)[-1])
"
unset JULES_SESSION_ID

4. 集成结果

一旦状态变为 已完成,拉取并应用更改。

# 将 <SESSION_ID> 替换为已验证的会话 ID
jules remote pull --session "<SESSION_ID>" --apply < /dev/null

错误处理与故障排除

  • 仓库未找到:使用 jules remote list --repo 验证格式。必须与 GitHub 路径匹配。
  • TTY 错误:在使用原始 jules 命令进行非交互式自动化时,始终使用 < /dev/null
  • 凭证:如果看到登录错误,请确保正确设置了 HOME 或运行 jules login

命令参考

命令 用途
jules remote list --repo 验证可用仓库及其确切名称。
jules remote list --session 列出活动及历史会话以检查状态。
jules remote new 创建新的编码任务。
jules remote pull 应用已完成会话的更改。
jules teleport "<id>" 克隆并应用更改(适用于新环境)。
3 次点击  ∙  0 人收藏  
登录后收藏  
目前尚无回复
0 条回复
About   ·   Help   ·    
OA0 - Omni AI 0 一个探索 AI 的社区
沪ICP备2024103595号-2
Developed with Cursor