Skip to content

[Question] Integration: OpenClaw (host) + OpenSpace (worker) single-shot task architecture #68

@liuzianws

Description

@liuzianws

Question: How to properly integrate OpenClaw (host) with OpenSpace (worker)?

Context

We are trying to integrate OpenClaw as the main AI assistant with OpenSpace running as a background task executor.

Our setup:

  • OpenClaw (our main assistant) runs as a persistent session in Feishu (messaging platform)
  • OpenSpace is deployed locally at /Users/liuzian/OpenSpace
  • We use a Python wrapper (openspace_runner.py) that calls OpenSpace CLI via subprocess
  • OpenSpace has 49 skills trained in its own environment

The challenge:

OpenSpace tasks are single-shot (one task = one subprocess = one recording). There is no cross-task memory. The key question is: how should OpenClaw pass complete context to OpenSpace in a single query?

Specifically:

1. Context packaging for single-shot tasks
Since OpenSpace has no session memory, all context (user background, task description, constraints, available tools/references) must be included in a single query. Is there a recommended prompt structure or template for packaging rich context into a single OpenSpace query?

2. Skill compatibility and selection
OpenSpace has 49 skills trained in the OpenSpace environment. OpenClaw also has its own skill system. When OpenClaw calls OpenSpace:

  • Does OpenSpace automatically select appropriate skills based on the query?
  • Or does OpenClaw need to explicitly specify which skills to use?
  • Are OpenSpace skills and OpenClaw skills compatible, or are they separate systems?

3. Architecture: OpenClaw as host, OpenSpace as worker
OpenSpace runs as a standalone subprocess, separate from OpenClaw environment. Is this the intended architecture (OpenClaw as host/controller, OpenSpace as skill execution worker)? Or should OpenSpace skills be imported directly into OpenClaw?

4. Reliable recording when called via subprocess
When running OpenSpace via Python subprocess (as opposed to direct CLI), some recording directories were not being created — logs showed "Recording completed" but no directory existed on disk. This was traced to asyncio subprocess pipe handling differences. Is there a recommended way to call OpenSpace from Python that ensures reliable recording?

Any guidance on the intended integration pattern would be greatly appreciated. We are excited about combining OpenClaw persistent session/context with OpenSpace self-evolving skills. Happy to contribute documentation back.


Environment: macOS, Python 3.14, OpenSpace v0.1.0, OpenClaw (latest)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions