Skip to content

Commit d4bc730

Browse files
enable subagent creation with kiln chat (#1380)
1 parent fa1887b commit d4bc730

3 files changed

Lines changed: 17 additions & 7 deletions

File tree

app/desktop/studio_server/tool_api.py

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,11 @@
3232
from kiln_ai.utils.exhaustive_error import raise_exhaustive_enum_error
3333
from kiln_server.project_api import project_from_id
3434
from kiln_server.task_api import task_from_id
35-
from kiln_server.utils.agent_checks.policy import ALLOW_AGENT, DENY_AGENT
35+
from kiln_server.utils.agent_checks.policy import (
36+
ALLOW_AGENT,
37+
DENY_AGENT,
38+
agent_policy_require_approval,
39+
)
3640
from mcp.types import Tool as MCPTool
3741
from pydantic import BaseModel, Field
3842

@@ -818,7 +822,9 @@ def _validate_kiln_task_tool_task_and_run_config(
818822
@app.post(
819823
"/api/projects/{project_id}/kiln_task_tool",
820824
tags=["Tools & MCP"],
821-
openapi_extra=DENY_AGENT,
825+
openapi_extra=agent_policy_require_approval(
826+
"Register a Kiln task as a tool (also called a sub-agent), making it callable by other agents and run configs."
827+
),
822828
)
823829
async def add_kiln_task_tool(
824830
project_id: Annotated[
@@ -852,7 +858,9 @@ async def add_kiln_task_tool(
852858
@app.patch(
853859
"/api/projects/{project_id}/edit_kiln_task_tool/{tool_server_id}",
854860
tags=["Tools & MCP"],
855-
openapi_extra=DENY_AGENT,
861+
openapi_extra=agent_policy_require_approval(
862+
"Edit a Kiln task tool (also called a sub-agent), including its name, description, underlying task, or run config."
863+
),
856864
)
857865
async def edit_kiln_task_tool(
858866
project_id: Annotated[

libs/server/kiln_server/utils/agent_checks/annotations/patch_api_projects_project_id_edit_kiln_task_tool_tool_server_id.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@
22
"method": "patch",
33
"path": "/api/projects/{project_id}/edit_kiln_task_tool/{tool_server_id}",
44
"agent_policy": {
5-
"permission": "deny",
6-
"requires_approval": false
5+
"permission": "allow",
6+
"requires_approval": true,
7+
"approval_description": "Edit a Kiln task tool (also called a sub-agent), including its name, description, underlying task, or run config."
78
}
89
}

libs/server/kiln_server/utils/agent_checks/annotations/post_api_projects_project_id_kiln_task_tool.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@
22
"method": "post",
33
"path": "/api/projects/{project_id}/kiln_task_tool",
44
"agent_policy": {
5-
"permission": "deny",
6-
"requires_approval": false
5+
"permission": "allow",
6+
"requires_approval": true,
7+
"approval_description": "Register a Kiln task as a tool (also called a sub-agent), making it callable by other agents and run configs."
78
}
89
}

0 commit comments

Comments
 (0)