OpenHandsAPI客户端技能Skill openhands-api

此技能是一个OpenHands REST API客户端,用于程序化创建和管理AI代理对话,支持Python和TypeScript编程,适用于自动化任务和AI应用集成。关键词:OpenHands API, REST API, 代理对话, 自动化, Python, TypeScript, AI智能体, API客户端。

AI智能体 0 次安装 0 次浏览 更新于 3/18/2026

name: openhands-api description: 使用OpenHands REST API (V0) 以编程方式创建和管理代理对话。包含scripts/下的最小Python和TypeScript客户端。 triggers:

  • openhands-api-v0
  • openhands-cloud-v0
  • oh-cloud-v0

此技能提供了一个最小化、易于复制的OpenHands API客户端,用于启动和监控对话。

它故意设计得小而专注:

  • 默认使用OpenHands Cloud (https://app.all-hands.dev)。
  • 针对在OpenHands/OpenHandsopenhands/server/routes/中实现的遗留V0 REST API路由
  • 仅实现少数核心端点,以便AI代理能快速适应/扩展它。

快速开始 (Python)

from scripts.openhands_api import OpenHandsAPI

api = OpenHandsAPI(api_key="...")  # 或设置OPENHANDS_API_KEY

conv = api.create_conversation(
    initial_user_msg="请审计此仓库的脆弱测试并打开一个PR修复它们。",
    repository="owner/repo",
    selected_branch="main",
)
conversation_id = conv["conversation_id"]

final = api.poll_until_terminal(conversation_id, timeout_s=1800, poll_interval_s=30)
print(final["status"], final.get("url"))

快速开始 (TypeScript)

import { OpenHandsAPI } from "./scripts/openhands_api";

const api = new OpenHandsAPI({ apiKey: process.env.OPENHANDS_API_KEY! });

const conv = await api.createConversation({
  initialUserMsg: "运行依赖升级并打开一个PR。",
  repository: "owner/repo",
  selectedBranch: "main",
});

const final = await api.pollUntilTerminal(conv.conversation_id, {
  timeoutMs: 30 * 60_000,
  pollIntervalMs: 30_000,
});

console.log(final.status, final.url);

示例 (基于enyst/playground#105建模)

以下示例展示了一个简单的自动化模式:

  1. 使用提示模板启动对话
  2. 打印对话URL供人类查看
  3. 可选地轮询直到完成
export OPENHANDS_API_KEY="..."
python skills/openhands_api/scripts/openhands_api.py \
  new-conversation \
  --prompt-file skills/openhands_api/references/example_prompt.md \
  --repo owner/repo \
  --branch main \
  --poll

AI代理扩展此客户端的注意事项

  • 服务器期望Bearer令牌 (Authorization: Bearer <OPENHANDS_API_KEY>)。
  • 最重要的端点是 POST /api/conversations
  • 如果需要流式传输/日志,V0服务器暴露 GET /api/conversations/{conversation_id}/events
  • 如果需要一次性获取完整事件历史,使用 GET /api/conversations/{conversation_id}/trajectory

另见:

  • skills/openhands_api/references/README.md (API文档指针)
  • skills/openhands_api/scripts/openhands_api.pyskills/openhands_api/scripts/openhands_api.ts