Agent profiles in Canvas should allow us to overri...
# proj-agent
s
Agent profiles in Canvas should allow us to override the system prompt. Replacing the whole system prompt is too blunt, though: it also removes the security policy, the risk-assessment rules and the memory instructions, which a user shouldn't be able to drop by accident. So I added a Persona section in it that corresponds to what should be overridable by a user github.com/OpenHands/software-agent-sdk/pull/5449 @modern-fireman-99755 @hundreds-twilight-32833 fyi
🙌 2
h
Nice!
s
I have an alternative PR that allows full system prompt override github.com/OpenHands/software-agent-sdk/pull/5438 but its less safe, we lose prompt blocks that seem valuable @modern-fireman-99755 leans towards system prompt override for full flexibility...
m
I see the two points of the spectrum... I'm for full flexibility but I can understand that people will not think about safety. Another point, Memory should be included also in the full flexibility part (if we decide to go for this solution). Memory is in the static section of the system prompt but it is actually dynamic. We had a discussion on where to put it in the system prompt and it makes sense to put memory in the static part althought is dynamic... Sorry for the confusion
s
Mmmh I guess that's why I added a
Persona
, because the system prompt has required stuff that doesn't belong there and should be added dynamically?
m
system prompt has required stuff that doesn't belong
This was a big questions that we had The system prompt is divided in: • static: change almost never between covnersations • dynamic: can change a lot between conversations (tools, mcp, skills) This is done to try to maximze caching. But it is difficult to make a classification of the sections. For example in the static section we do have also the Memory section and the soul section. Which are actually dynamic but make sense to have them in the static part as they are almost static. So perhaps a solution would be to: • if the user didn't override the system prompt -> we left as it is now • if the user override the system prompt -> we override the static part but not the soul & memory part
s
That's close to what my persona pr does. We agree on keeping Memory, and on leaving the dynamic part untouched. The difference is the rest of the static block: my persona keeps the security policy, risk assessment and tool rules, and replaces Soul. Your proposal replaces those and keeps Soul.
m
I'm happy with your version. Just one thing: what are tool rules ?
s
for browser its instructions of the tool set that are not attached to individual tools
for example general instructions on how to use the browser use tools but that aren't linked to one specific subtool
m
ah yes... I wrote them 😞 ok so good for me
with the persona version.
@strong-ice-84145 Left a couple of comments. But In general I'm good with it
s
I applied your review comments on persona + agent tools prs!
m
okok
s
(on persona PR, still running CI checks, will push and reply with comment as soon as its done)
c
Don't we already have a
Soul
, which seems the same with
Persona
?
Ah I see why. 🤔
Yes… this solution makes sense to me and might be less disruptive