molecule-core/docs/adapters/medo-integration.md
Hongming Wang 24fec62d7f initial commit — Molecule AI platform
Forked clean from public hackathon repo (Starfire-AgentTeam, BSL 1.1)
with full rebrand to Molecule AI under github.com/Molecule-AI/molecule-monorepo.

Brand: Starfire → Molecule AI.
Slug: starfire / agent-molecule → molecule.
Env vars: STARFIRE_* → MOLECULE_*.
Go module: github.com/agent-molecule/platform → github.com/Molecule-AI/molecule-monorepo/platform.
Python packages: starfire_plugin → molecule_plugin, starfire_agent → molecule_agent.
DB: agentmolecule → molecule.

History truncated; see public repo for prior commits and contributor
attribution. Verified green: go test -race ./... (platform), pytest
(workspace-template 1129 + sdk 132), vitest (canvas 352), build (mcp).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 11:55:37 -07:00

174 lines
6.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# MeDo Integration Design — Molecule AI Hackathon (May 20 2026)
**Status:** Design — implementation pending operator sign-off on open questions (§5).
**Scope:** How the molecule-dev team builds MeDo apps for the "Build with MeDo" hackathon.
**Key constraint:** MeDo App Builder is an OpenClaw skill on ClawHub (`seiriosPlus/miaoda-app-builder`),
not a REST API. All interactions go through natural-language messages to an OpenClaw workspace.
---
## 1. Architecture Overview
```
CEO / Canvas
│ A2A task
PM (claude-code)
│ delegate_task_async → workspace: medo-builder
MeDo Builder workspace [runtime: openclaw, skill: miaoda-app-builder]
│ OpenClaw CLI → skill → api.miaoda.cn
MeDo platform (app created / published → URL returned)
│ result relayed via A2A event_queue
PM → CEO
```
The MeDo Builder workspace is a **dedicated OpenClaw-runtime workspace** inside the
molecule-dev org with the Miaoda App Builder skill pre-installed. PM delegates natural-language
app-build requests to it via `delegate_task_async` and polls for the result (58 min latency).
---
## 2. Installing the Miaoda App Builder Skill
### 2.1 API Key
The skill requires `MIAODA_API_KEY` (not `MEDO_API_KEY`).
> ⚠️ **Credential name mismatch**: the global platform secret is currently named `MEDO_API_KEY`.
> The skill's frontmatter declares `primaryEnv: MIAODA_API_KEY`. The MeDo Builder workspace must
> set `MIAODA_API_KEY` — either rename the global secret or add a workspace-level alias.
> See open question §5-A.
Obtain the key from: **MeDo website → Settings → API Keys**. Keys do not expire, but generating
a new one immediately invalidates the previous one.
### 2.2 Installation Query
OpenClaw installs skills by sending a natural-language install message to the agent.
No CLI command is documented on ClawHub — send this message to the OpenClaw workspace on first boot:
```
Install the Miaoda App Builder skill from ClawHub: seiriosPlus/miaoda-app-builder
```
OpenClaw auto-downloads the skill, installs Python runtime deps (`requests`), and makes the skill
available for subsequent messages.
### 2.3 Workspace Config Sketch (`org-templates/medo-builder/workspace.yaml`)
```yaml
name: MeDo Builder
role: Builds and publishes MeDo applications via the Miaoda App Builder OpenClaw skill
runtime: openclaw
tier: 2
required_env:
- MIAODA_API_KEY # TODO: resolve name vs platform secret MEDO_API_KEY (§5-A)
- OPENROUTER_API_KEY # OpenClaw needs an LLM provider
initial_prompt: |
You are a MeDo App Builder. On startup:
1. Install the Miaoda App Builder skill:
"Install the Miaoda App Builder skill from ClawHub: seiriosPlus/miaoda-app-builder"
2. Confirm installation succeeded.
3. Wait for build tasks from PM via A2A.
When you receive a build task, use natural language to instruct the skill:
"Create a [description] app and publish it when done."
App generation takes 58 minutes — poll the skill or wait for confirmation before reporting done.
```
---
## 3. A2A Delegation Pattern (58 Min Latency)
App generation is asynchronous and slow. PM **must** use `delegate_task_async` + `check_task_status`
rather than `delegate_task` (which has a shorter timeout and will return before the app is ready).
### 3.1 PM Delegation Flow
```python
# Step 1: fire and forget
task = await delegate_task_async(
workspace_id="medo-builder-workspace-id",
task="Build a restaurant reservation tool with online booking, menu display, "
"and contact form. Publish when done and return the URL."
)
# Step 2: poll every 60s (app takes 58 min)
while True:
status = await check_task_status(task_id=task["task_id"])
if status["status"] in ("completed", "failed"):
break
await asyncio.sleep(60)
result_url = status.get("result") # MeDo app URL on success
```
### 3.2 Invocation Patterns (verified from Baidu doc)
Natural-language messages the MeDo Builder workspace should accept from PM:
| Intent | Message to send to MeDo Builder workspace |
|--------|-------------------------------------------|
| List existing apps | `"Show me my apps"` |
| Create + auto-publish | `"Create a [description] and publish it when done"` |
| Create only | `"Create a [description]"` |
| Modify existing | `"Add a search function to app [name/ID]"` |
| Publish draft | `"Publish this app"` |
| Status check | `"Is the app generation done yet?"` |
---
## 4. Proposed Org Template — `org-templates/medo-builder/`
```
org-templates/medo-builder/
├── org.yaml ← minimal single-workspace org (not full team)
├── medo-builder/
│ ├── system-prompt.md ← MeDo Builder agent persona + delegation rules
│ └── workspace.yaml ← runtime: openclaw, skill install, env
```
**org.yaml sketch:**
```yaml
name: MeDo Builder
description: Single-workspace org for building MeDo apps (hackathon)
defaults:
runtime: openclaw
tier: 2
required_env: [MIAODA_API_KEY, OPENROUTER_API_KEY]
workspaces:
- name: MeDo Builder
role: Builds and publishes MeDo applications via Miaoda App Builder skill
files_dir: medo-builder
canvas: { x: 400, y: 300 }
```
The medo-builder workspace is deployed **as a child of the molecule-dev PM** in the hackathon org,
not as a standalone org. Full `org-templates/medo-builder/` implementation is Week 2 scope.
---
## 5. Open Questions (Operator Resolution Required)
| # | Question | Why it blocks |
|---|----------|---------------|
| 5-A | **Credential name**: platform secret is `MEDO_API_KEY`; skill expects `MIAODA_API_KEY`. Rename global secret or add workspace alias? | Workspace boot will fail with "MIAODA_API_KEY not set" |
| 5-B | **Credit cost per app**: Baidu doc mentions a Credit System but content was not rendered. How many credits does create+generate+publish consume? Do we have enough for hackathon testing? | Budget planning |
| 5-C | **Rate limits**: no rate-limit info in docs or ClawHub page. What's the max concurrent app generations per API key? | Parallelism planning |
| 5-D | **Failure recovery**: what happens if the OpenClaw skill process crashes mid-generation (after Confirm & Generate, before Publish)? Is there a way to resume or check status by app ID? | Reliability design |
| 5-E | **Submission format**: does the hackathon judge the published MeDo app URL, the Molecule AI org config, or both? | Determines whether we need a polished demo org or just a working app |
---
## 6. Implementation Checklist (Weeks 13)
- [x] Week 1: This design doc (`docs/adapters/medo-integration.md`)
- [ ] Week 1: Resolve §5-A (credential name) + obtain API key credits estimate
- [ ] Week 2: `org-templates/medo-builder/` — full system-prompt + workspace.yaml
- [ ] Week 2: Integration test — PM delegates one real app build end-to-end
- [ ] Week 3: Polish demo org; rehearse submission flow; publish hackathon entry