---
title: "创建任务"
method: POST
path: "/api/v1/users/tasks"
tags: ["【用户】任务管理"]
---

# 创建任务

`POST /api/v1/users/tasks`

创建任务
`attachments` 为可选附件列表，最多 10 个；每项包含 `url` 和 `filename`，URL 需要匹配后端配置的附件白名单前缀。创建任务后，首轮 user-input 日志会按 `{ "content": "base64文本", "attachments": [] }` 结构返回。

## Request body

- DomainCreateTaskReq
  - `attachments` DomainTaskAttachment[] — 附件列表，最多 10 个；URL 必须匹配后端配置的附件白名单前缀
    - `filename` string
    - `url` string
  - `cli_name` 'codex' | 'claude' | 'opencode'
  - `content` string, required
  - `extra` DomainTaskExtraConfig
    - `issue_id` string
    - `plugin_ids` string[] — Plugin IDs 数组（仅 OpenCode 真正下发）
    - `project_id` string
    - `skill_ids` string[]
  - `git_identity_id` string
  - `host_id` string, required
  - `image_id` string, required
  - `model_id` string, required
  - `repo` DomainTaskRepoReq, required
    - `branch` string
    - `repo_filename` string
    - `repo_url` string
    - `zip_url` string
  - `resource` DomainVMResource, required
    - `core` integer
    - `life` integer
    - `memory` integer
  - `sub_type` 'generate_docs' | 'generate_requirement' | 'generate_design' | 'generate_tasklist' | 'execute_task' | 'pr_review'
  - `system_prompt` string
  - `task_type` 'develop' | 'design' | 'review'

## Response `200`

成功

- object
  - `code` integer
  - `data` DomainProjectTask
    - `branch` string
    - `cli_name` 'codex' | 'claude' | 'opencode'
    - `completed_at` integer
    - `content` string
    - `created_at` integer
    - `extra` DomainTaskExtraConfig
      - `issue_id` string
      - `plugin_ids` string[] — Plugin IDs 数组（仅 OpenCode 真正下发）
      - `project_id` string
      - `skill_ids` string[]
    - `full_name` string
    - `id` string, required
    - `image` DomainImage
      - `created_at` integer
      - `id` string
      - `is_default` boolean
      - `name` string
      - `owner` DomainOwner
        - `id` string
        - `name` string
        - `type` 'private' | 'public' | 'team'
      - `remark` string
    - `last_active_at` integer
    - `log_store` 'loki' | 'clickhouse'
    - `model` DomainModelBrief
      - `access_level` string
      - `context_limit` integer
      - `created_at` integer
      - `id` string
      - `interface_type` 'openai_chat' | 'openai_responses' | 'anthropic'
      - `is_free` boolean
      - `is_hidden` boolean
      - `last_check_at` integer
      - `last_check_error` string
      - `last_check_success` boolean
      - `model` string
      - `output_limit` integer
      - `owner` DomainOwner
        - `id` string
        - `name` string
        - `type` 'private' | 'public' | 'team'
      - `provider` string
      - `remark` string
      - `support_image` boolean
      - `temperature` number
      - `thinking_enabled` boolean
      - `updated_at` integer
      - `weight` integer
    - `repo_filename` string
    - `repo_url` string
    - `stats` DomainTaskStats
      - `input_tokens` integer
      - `llm_requests` integer
      - `output_tokens` integer
      - `total_tokens` integer
    - `status` 'pending' | 'processing' | 'error' | 'finished'
    - `sub_type` 'generate_docs' | 'generate_requirement' | 'generate_design' | 'generate_tasklist' | 'execute_task' | 'pr_review'
    - `summary` string
    - `title` string
    - `type` 'develop' | 'design' | 'review'
    - `user_id` string
    - `virtualmachine` DomainVirtualMachine
      - `conditions` GithubComChaitinMonkeyCodeBackendEntTypesCondition[]
        - `last_transition_time` integer
        - `message` string
        - `progress` integer
        - `reason` string
        - `status` 0 | 1 | 2 | 3
        - `type` 'Scheduled' | 'ImagePulled' | 'ProjectCloned' | 'ImageBuilt' | 'ContainerCreated' | 'ContainerStarted' | 'Ready' | 'Failed' | 'Hibernated'
      - `cores` integer
      - `created_at` integer
      - `environment_id` string
      - `host` DomainHost
        - `arch` string
        - `cores` integer
        - `default` boolean
        - `external_ip` string
        - `groups` DomainTeamGroup[]
          - `created_at` integer
          - `id` string
          - `name` string
          - `updated_at` integer
          - `users` DomainUser[]
            - `avatar_url` string
            - `email` string
            - `has_password` boolean
            - `id` string
            - `identities` DomainUserIdentity[]
              - …
            - `is_blocked` boolean
            - `name` string
            - `role` 'individual' | 'enterprise' | 'subaccount' | 'admin' | 'gittask'
            - `status` 'active' | 'inactive' | 'banded'
            - `team` DomainTeam
              - …
            - `token` string
            - `wechat_mp_bound` boolean
        - `id` string
        - `is_default` boolean
        - `memory` integer
        - `name` string
        - `os` string
        - `owner` DomainOwner
          - `id` string
          - `name` string
          - `type` 'private' | 'public' | 'team'
        - `remark` string
        - `status` 'online' | 'offline'
        - `version` string
        - `virtualmachines` DomainVirtualMachine[]
        - `weight` integer
      - `hostname` string
      - `id` string
      - `life_time_seconds` integer
      - `memory` integer
      - `name` string
      - `os` string
      - `owner` DomainUser
        - `avatar_url` string
        - `email` string
        - `has_password` boolean
        - `id` string
        - `identities` DomainUserIdentity[]
          - `avatar_url` string
          - `email` string
          - `id` string
          - `identity_id` string
          - `platform` 'baizhi' | 'google' | 'github' | 'gitlab' | 'gitea' | 'gitee' | 'oidc'
          - `username` string
        - `is_blocked` boolean
        - `name` string
        - `role` 'individual' | 'enterprise' | 'subaccount' | 'admin' | 'gittask'
        - `status` 'active' | 'inactive' | 'banded'
        - `team` DomainTeam
          - `id` string
          - `name` string
        - `token` string
        - `wechat_mp_bound` boolean
      - `ports` DomainVMPort[]
        - `error_message` string
        - `forward_id` string
        - `port` integer
        - `preview_url` string
        - `status` 'reserved' | 'connected'
        - `success` boolean
        - `white_list` string[]
      - `status` 'unknown' | 'pending' | 'online' | 'offline' | 'hibernated'
      - `version` string
  - `message` string

## Other responses

- `500` — 服务器内部错误

---

[API](https://skmtc.net/chaitin/apis/untitled-api.md) · [All operations](https://skmtc.net/chaitin/apis/untitled-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/chaitin/untitled-api/revisions/5a5929cb17f2/schema)
