Skip to content

[Question] Should CodeInterpreter CRD provide better defaults to simplify the "out-of-box" experience? #244

@JesseStutler

Description

@JesseStutler

Please provide an in-depth description of the question you have:
When I go though this getting started guidance: https://github.com/volcano-sh/agentcube/blob/main/docs/getting-started.md, I have question with the CodeInterpreter CRD. The CodeInterpreter CRD is designed to work hand-in-hand with the Python SDK(or future other SDKs), providing an out-of-the-box code execution experience. The SDK exposes some methods, all of which communicate with the PicoD daemon running inside the sandbox.

However, the current CRD design exposes template.image as a user-configurable field:

spec:
  template:
    image: ghcr.io/volcano-sh/picod:latest   # User can change this
    args:
      - --workspace=/root

This quite confuse me:

  • The Python SDK (CodeInterpreterClient) depends on PicoD's HTTP API (/api/execute, /api/files) inside the sandbox. If a user sets a custom image that doesn't include PicoD, the SDK simply won't work.
  • If the user needs a fully custom runtime, AgentRuntime is the right choice — but it doesn't support warmPoolSize.
  • SandboxClaim could combine warm-pool with custom images, but it's an internal detail that shouldn't be user-facing.

What do you think about this question?:
Here are some directions I think:

  • Make image default to the official PicoD image and clearly document that custom images MUST implement the PicoD HTTP API contract (/api/execute, /api/files, /health), otherwise the SDK will not work.
  • Ship a default CodeInterpreter CR with the Helm chart — so that SDK users get a zero-config experience out of the box, and only platform admins who understand the PicoD contract would create custom CodeInterpreter CRDs.

Would like to hear suggestions :) What do you guys think?

Environment:

  • agentcube version:
  • Kubernetes version:
  • Others:

Metadata

Metadata

Assignees

No one assigned

    Labels

    questionFurther information is requested

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions