config.updated WS event + provider in AgentConfig update
Some checks failed
Deploy Tracker / deploy (push) Failing after 3s
Some checks failed
Deploy Tracker / deploy (push) Failing after 3s
- PATCH /members/{id} sends config.updated WS event to agent
- WSEventType.CONFIG_UPDATED added to enums
- update_member handles provider + max_concurrent_tasks
This commit is contained in:
parent
80494c5058
commit
4dde7b940a
@ -160,6 +160,7 @@ async def update_member(member_id: str, req: MemberUpdate, db: AsyncSession = De
|
|||||||
if req.avatar_url is not None:
|
if req.avatar_url is not None:
|
||||||
member.avatar_url = req.avatar_url
|
member.avatar_url = req.avatar_url
|
||||||
|
|
||||||
|
config_changed = False
|
||||||
if req.agent_config and member.type == MemberType.AGENT:
|
if req.agent_config and member.type == MemberType.AGENT:
|
||||||
if not member.agent_config:
|
if not member.agent_config:
|
||||||
member.agent_config = AgentConfig(member_id=member.id)
|
member.agent_config = AgentConfig(member_id=member.id)
|
||||||
@ -174,9 +175,29 @@ async def update_member(member_id: str, req: MemberUpdate, db: AsyncSession = De
|
|||||||
member.agent_config.prompt = ac.prompt
|
member.agent_config.prompt = ac.prompt
|
||||||
if ac.model is not None:
|
if ac.model is not None:
|
||||||
member.agent_config.model = ac.model
|
member.agent_config.model = ac.model
|
||||||
|
config_changed = True
|
||||||
|
|
||||||
await db.commit()
|
await db.commit()
|
||||||
await db.refresh(member)
|
await db.refresh(member)
|
||||||
|
|
||||||
|
# Notify agent of config change via WS
|
||||||
|
if config_changed and member.agent_config:
|
||||||
|
from ..ws.manager import manager
|
||||||
|
from ..enums import WSEventType
|
||||||
|
ac = member.agent_config
|
||||||
|
await manager.send_to_member(str(member.id), {
|
||||||
|
"type": WSEventType.CONFIG_UPDATED,
|
||||||
|
"data": {
|
||||||
|
"model": ac.model,
|
||||||
|
"provider": ac.provider,
|
||||||
|
"prompt": ac.prompt,
|
||||||
|
"chat_listen": ac.chat_listen,
|
||||||
|
"task_listen": ac.task_listen,
|
||||||
|
"max_concurrent_tasks": ac.max_concurrent_tasks,
|
||||||
|
"capabilities": ac.capabilities or [],
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
return member_out(member)
|
return member_out(member)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -103,3 +103,4 @@ class WSEventType(StrEnum):
|
|||||||
AGENT_STREAM_DELTA = "agent.stream.delta"
|
AGENT_STREAM_DELTA = "agent.stream.delta"
|
||||||
AGENT_STREAM_TOOL = "agent.stream.tool"
|
AGENT_STREAM_TOOL = "agent.stream.tool"
|
||||||
AGENT_STREAM_END = "agent.stream.end"
|
AGENT_STREAM_END = "agent.stream.end"
|
||||||
|
CONFIG_UPDATED = "config.updated"
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user