Skip to content
FunCoding

Search

Search docs, Skills and MCP

会话与消息 HTTP API

管理会话生命周期、发送提示、处理异步任务与权限请求。

This page has not been translated into English yet. The original Chinese version is shown below.

HTTP 会话流程通常是创建或选择 session,再提交消息,并按同步响应或事件追踪结果。下列 :id、:messageID 都需要替换为实际 ID;请求体中的 ? 表示可选字段,不是 JSON 键名的一部分。

创建与选择会话

方法和路径用途或请求体
GET /session会话列表
POST /session创建会话,{ parentID?, title? }
GET /session/status按 ID 返回全部会话状态
GET /session/:id会话详情
PATCH /session/:id更新属性,{ title? }
GET /session/:id/children子会话
GET /session/:id/todo待办列表
DELETE /session/:id删除会话及其全部数据

初始化项目规则使用 POST /session/:id/init,请求体为 { messageID, providerID, modelID },会分析应用并创建 AGENTS.md。

消息与任务入口

方法和路径行为
GET /session/:id/message列出消息,可带 limit 查询参数
GET /session/:id/message/:messageID消息详情
POST /session/:id/message发消息并等待响应
POST /session/:id/prompt_async发消息后立即返回 204 No Content
POST /session/:id/command执行 slash command
POST /session/:id/shell执行 shell command

普通消息和异步消息的请求字段为 { messageID?, model?, agent?, noReply?, system?, tools?, parts }。parts 的具体类型依实例的 OpenAPI schema,不应把模型文本直接当作任意 part 对象。

普通消息接口返回 { info, parts };异步接口的 204 仅表示此请求不等待结果,不是任务完成的信号。结合事件流与会话状态检查执行进度。

slash command 请求体为 { messageID?, agent?, model?, command, arguments };shell 请求体为 { agent, model?, command }。二者均返回消息信息及 parts,而不是随意替换成普通消息的字段。

中止、分叉与摘要

方法和路径请求体及行为
POST /session/:id/abort中止正在执行的会话
POST /session/:id/fork可传 { messageID? },从已有会话的消息创建分叉
GET /session/:id/diff可带 messageID 查询参数,返回文件 diff
POST /session/:id/summarize{ providerID, modelID },生成会话摘要
POST /session/:id/revert{ messageID, partID? },撤销消息
POST /session/:id/unrevert恢复被撤销的消息

分叉接口返回新的 Session;不要继续把旧 ID 当成新分支。撤销涉及会话与工作区变更,不能将其视为仅删除界面显示。

权限响应与分享

权限请求响应端点为 POST /session/:id/permissions/:permissionID,请求体 { response, remember? }。此处官方表没有列出 response 的全部枚举;实现客户端时应依据实例 schema,不自行猜测字符串。

POST /session/:id/share 创建分享,DELETE /session/:id/share 撤回分享,均返回 Session。访问范围和保留行为见会话分享。

接入程序应保留中止、权限处理和最终状态判断,而不是将一次 HTTP 响应成功等同于所有文件操作已成功完成。