Skip to content

Commit af94591

Browse files
authored
feat: support for agent soul (#1696)
1 parent 950449a commit af94591

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

52 files changed

+5263
-573
lines changed

api/v1/api.gen.go

Lines changed: 1262 additions & 406 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

api/v1/api.yaml

Lines changed: 321 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4629,6 +4629,245 @@ paths:
46294629
schema:
46304630
$ref: "#/components/schemas/Error"
46314631

4632+
/settings/agent/souls:
4633+
get:
4634+
summary: "List agent souls"
4635+
description: "Returns all configured agent souls (personalities). Requires admin role."
4636+
operationId: "listAgentSouls"
4637+
tags:
4638+
- "agent"
4639+
parameters:
4640+
- $ref: "#/components/parameters/RemoteNode"
4641+
- $ref: "#/components/parameters/Page"
4642+
- $ref: "#/components/parameters/PerPage"
4643+
- name: q
4644+
in: query
4645+
description: "Search query (matches name, description)"
4646+
required: false
4647+
schema:
4648+
type: string
4649+
responses:
4650+
"200":
4651+
description: "List of souls"
4652+
content:
4653+
application/json:
4654+
schema:
4655+
$ref: "#/components/schemas/ListSoulsResponse"
4656+
"401":
4657+
description: "Not authenticated"
4658+
content:
4659+
application/json:
4660+
schema:
4661+
$ref: "#/components/schemas/Error"
4662+
"403":
4663+
description: "Requires admin role"
4664+
content:
4665+
application/json:
4666+
schema:
4667+
$ref: "#/components/schemas/Error"
4668+
default:
4669+
description: "Unexpected error"
4670+
content:
4671+
application/json:
4672+
schema:
4673+
$ref: "#/components/schemas/Error"
4674+
4675+
post:
4676+
summary: "Create agent soul"
4677+
description: "Creates a new agent soul (personality). Requires admin role."
4678+
operationId: "createAgentSoul"
4679+
tags:
4680+
- "agent"
4681+
parameters:
4682+
- $ref: "#/components/parameters/RemoteNode"
4683+
requestBody:
4684+
required: true
4685+
content:
4686+
application/json:
4687+
schema:
4688+
$ref: "#/components/schemas/CreateSoulRequest"
4689+
responses:
4690+
"201":
4691+
description: "Soul created"
4692+
content:
4693+
application/json:
4694+
schema:
4695+
$ref: "#/components/schemas/SoulResponse"
4696+
"400":
4697+
description: "Invalid request"
4698+
content:
4699+
application/json:
4700+
schema:
4701+
$ref: "#/components/schemas/Error"
4702+
"401":
4703+
description: "Not authenticated"
4704+
content:
4705+
application/json:
4706+
schema:
4707+
$ref: "#/components/schemas/Error"
4708+
"403":
4709+
description: "Requires admin role"
4710+
content:
4711+
application/json:
4712+
schema:
4713+
$ref: "#/components/schemas/Error"
4714+
"409":
4715+
description: "Soul already exists"
4716+
content:
4717+
application/json:
4718+
schema:
4719+
$ref: "#/components/schemas/Error"
4720+
default:
4721+
description: "Unexpected error"
4722+
content:
4723+
application/json:
4724+
schema:
4725+
$ref: "#/components/schemas/Error"
4726+
4727+
/settings/agent/souls/{soulId}:
4728+
get:
4729+
summary: "Get agent soul"
4730+
description: "Returns a single agent soul by ID. Requires admin role."
4731+
operationId: "getAgentSoul"
4732+
tags:
4733+
- "agent"
4734+
parameters:
4735+
- $ref: "#/components/parameters/RemoteNode"
4736+
- $ref: "#/components/parameters/SoulId"
4737+
responses:
4738+
"200":
4739+
description: "Soul details"
4740+
content:
4741+
application/json:
4742+
schema:
4743+
$ref: "#/components/schemas/SoulResponse"
4744+
"400":
4745+
description: "Invalid soul ID"
4746+
content:
4747+
application/json:
4748+
schema:
4749+
$ref: "#/components/schemas/Error"
4750+
"401":
4751+
description: "Not authenticated"
4752+
content:
4753+
application/json:
4754+
schema:
4755+
$ref: "#/components/schemas/Error"
4756+
"403":
4757+
description: "Requires admin role"
4758+
content:
4759+
application/json:
4760+
schema:
4761+
$ref: "#/components/schemas/Error"
4762+
"404":
4763+
description: "Soul not found"
4764+
content:
4765+
application/json:
4766+
schema:
4767+
$ref: "#/components/schemas/Error"
4768+
default:
4769+
description: "Unexpected error"
4770+
content:
4771+
application/json:
4772+
schema:
4773+
$ref: "#/components/schemas/Error"
4774+
4775+
patch:
4776+
summary: "Update agent soul"
4777+
description: "Updates an existing agent soul. Requires admin role."
4778+
operationId: "updateAgentSoul"
4779+
tags:
4780+
- "agent"
4781+
parameters:
4782+
- $ref: "#/components/parameters/RemoteNode"
4783+
- $ref: "#/components/parameters/SoulId"
4784+
requestBody:
4785+
required: true
4786+
content:
4787+
application/json:
4788+
schema:
4789+
$ref: "#/components/schemas/UpdateSoulRequest"
4790+
responses:
4791+
"200":
4792+
description: "Soul updated"
4793+
content:
4794+
application/json:
4795+
schema:
4796+
$ref: "#/components/schemas/SoulResponse"
4797+
"400":
4798+
description: "Invalid request"
4799+
content:
4800+
application/json:
4801+
schema:
4802+
$ref: "#/components/schemas/Error"
4803+
"401":
4804+
description: "Not authenticated"
4805+
content:
4806+
application/json:
4807+
schema:
4808+
$ref: "#/components/schemas/Error"
4809+
"403":
4810+
description: "Requires admin role"
4811+
content:
4812+
application/json:
4813+
schema:
4814+
$ref: "#/components/schemas/Error"
4815+
"404":
4816+
description: "Soul not found"
4817+
content:
4818+
application/json:
4819+
schema:
4820+
$ref: "#/components/schemas/Error"
4821+
default:
4822+
description: "Unexpected error"
4823+
content:
4824+
application/json:
4825+
schema:
4826+
$ref: "#/components/schemas/Error"
4827+
4828+
delete:
4829+
summary: "Delete agent soul"
4830+
description: "Deletes an agent soul. Requires admin role."
4831+
operationId: "deleteAgentSoul"
4832+
tags:
4833+
- "agent"
4834+
parameters:
4835+
- $ref: "#/components/parameters/RemoteNode"
4836+
- $ref: "#/components/parameters/SoulId"
4837+
responses:
4838+
"204":
4839+
description: "Soul deleted"
4840+
"400":
4841+
description: "Invalid soul ID"
4842+
content:
4843+
application/json:
4844+
schema:
4845+
$ref: "#/components/schemas/Error"
4846+
"401":
4847+
description: "Not authenticated"
4848+
content:
4849+
application/json:
4850+
schema:
4851+
$ref: "#/components/schemas/Error"
4852+
"403":
4853+
description: "Requires admin role"
4854+
content:
4855+
application/json:
4856+
schema:
4857+
$ref: "#/components/schemas/Error"
4858+
"404":
4859+
description: "Soul not found"
4860+
content:
4861+
application/json:
4862+
schema:
4863+
$ref: "#/components/schemas/Error"
4864+
default:
4865+
description: "Unexpected error"
4866+
content:
4867+
application/json:
4868+
schema:
4869+
$ref: "#/components/schemas/Error"
4870+
46324871
/agent/sessions:
46334872
post:
46344873
summary: "Create agent session"
@@ -5070,6 +5309,15 @@ components:
50705309
type: string
50715310
minLength: 1
50725311

5312+
SoulId:
5313+
name: soulId
5314+
in: path
5315+
required: true
5316+
schema:
5317+
type: string
5318+
minLength: 1
5319+
description: The soul ID
5320+
50735321
schemas:
50745322
AuditEntry:
50755323
type: object
@@ -7009,6 +7257,7 @@ components:
70097257
- dag
70107258
- memory
70117259
- skill
7260+
- soul
70127261

70137262
SyncItem:
70147263
type: object
@@ -7357,6 +7606,10 @@ components:
73577606
description: "ID of the default model"
73587607
toolPolicy:
73597608
$ref: "#/components/schemas/AgentToolPolicy"
7609+
selectedSoulId:
7610+
type: string
7611+
nullable: true
7612+
description: "ID of the currently selected soul"
73607613

73617614
UpdateAgentConfigRequest:
73627615
type: object
@@ -7370,6 +7623,10 @@ components:
73707623
description: "ID of the default model"
73717624
toolPolicy:
73727625
$ref: "#/components/schemas/AgentToolPolicy"
7626+
selectedSoulId:
7627+
type: string
7628+
nullable: true
7629+
description: "ID of the soul to select"
73737630

73747631
AgentToolPolicy:
73757632
type: object
@@ -7677,6 +7934,67 @@ components:
76777934
items:
76787935
type: string
76797936

7937+
SoulResponse:
7938+
type: object
7939+
required:
7940+
- id
7941+
- name
7942+
description: "Soul (agent personality) configuration"
7943+
properties:
7944+
id:
7945+
type: string
7946+
name:
7947+
type: string
7948+
description:
7949+
type: string
7950+
content:
7951+
type: string
7952+
description: "Markdown body content (identity definition)"
7953+
7954+
ListSoulsResponse:
7955+
type: object
7956+
required:
7957+
- souls
7958+
- pagination
7959+
description: "List of souls"
7960+
properties:
7961+
souls:
7962+
type: array
7963+
items:
7964+
$ref: "#/components/schemas/SoulResponse"
7965+
pagination:
7966+
$ref: "#/components/schemas/Pagination"
7967+
7968+
CreateSoulRequest:
7969+
type: object
7970+
required:
7971+
- name
7972+
- content
7973+
description: "Request to create a new soul"
7974+
properties:
7975+
id:
7976+
type: string
7977+
description: "Optional custom ID (auto-generated from name if omitted)"
7978+
name:
7979+
type: string
7980+
description:
7981+
type: string
7982+
content:
7983+
type: string
7984+
description: "Markdown body content (identity definition)"
7985+
7986+
UpdateSoulRequest:
7987+
type: object
7988+
description: "Request to update a soul (partial update)"
7989+
properties:
7990+
name:
7991+
type: string
7992+
description:
7993+
type: string
7994+
content:
7995+
type: string
7996+
description: "Markdown body content (identity definition)"
7997+
76807998
ModelPreset:
76817999
type: object
76828000
required:
@@ -7821,6 +8139,9 @@ components:
78218139
safeMode:
78228140
type: boolean
78238141
description: "Enable approval prompts for dangerous commands"
8142+
soulId:
8143+
type: string
8144+
description: "Soul ID to use for this session (overrides default)"
78248145

78258146
CreateAgentSessionResponse:
78268147
type: object

0 commit comments

Comments
 (0)