Agent API

Agent-related API endpoints for controlling the agent loop and sessions.

Session Management

Create Session

POST /api/session/create
Response: { "session_id": "uuid" }

Get Last Active Session

GET /api/session/last
Response: { "session_id": "uuid", "exists": true }

List Sessions

GET /api/sessions
Response: {
  "sessions": [
    {
      "session_id": "uuid",
      "created_at": "timestamp",
      "message_count": 10,
      "is_active": true
    }
  ],
  "total": 1
}

Get Session

GET /api/sessions/{session_id}
Response: {
  "session_id": "uuid",
  "created_at": "timestamp",
  "message_count": 10,
  "is_active": true
}

Delete Session

DELETE /api/sessions/{session_id}
Response: { "success": true }

List All Sessions

GET /api/session/list
Response: { "session_ids": ["uuid1", "uuid2"] }

Update Session Title

PATCH /api/session/{session_id}/title
Body: { "title": "New Title" }
Response: { "success": true }

Chat

Send Message

POST /api/chat
Body: {
  "session_id": "default",
  "message": "Hello",
  "last_event_id": 0,
  "attachments": []
}
Response: {
  "content": "Reply message",
  "iterations": 2
}

Chat Stream

POST /api/chat/stream
Body: {
  "session_id": "default",
  "message": "Hello",
  "last_event_id": 0
}
Response: SSE stream (text/event-stream)

Stop Generation

POST /api/chat/stop
Body: { "session_id": "default" }
Response: { "success": true, "message": "已停止生成" }

Supplement Message

POST /api/chat/supplement
Body: {
  "session_id": "default",
  "message": "Additional context",
  "attachments": []
}
Response: SSE stream

Chat Status

GET /api/chat/status?session_id=default
Response: { "running": false, "session_id": "default" }

Get Messages

GET /api/sessions/{session_id}/history?limit=50&offset=0
Response: {
  "session_id": "uuid",
  "messages": [...],
  "count": 50,
  "total": 100,
  "has_more": true
}

Status

Health Check

GET /api/health
Response: {
  "status": "ok",
  "di": { "event_bus": true },
  "sessions": { "total": 1, "active": 1 }
}