Repository navigation
Replies: 2 comments
|
@MKaptein, thank you for contributing your ideas. Could you elaborate on what you mean by the "kind of action"? The distinction seems a bit blurry. What new information does the kind of action provide? Could you please provide a few examples? |
|
Of course, and sorry for being a bit fuzzy; in the end the basic idea is to have toolCalls with "security relevant semantics" tied to them, so it's inherently a bit vague. However, in the context of agents -- given our experience -- it is actually very solvable. With "kind of action" I mean what the agent does in a step, whatever the tool is called. Actually, ACS already does this using specific hook names, so the Guardian knows what kind of step it is before it looks at the payload:
So, the notion of "kind of action" in a way exists already. A memory write could also have been a generic tool call; ACS chose to give it a hook of its own. It is a choice whether to treat something as a generic "tool" or to provide a specific hook for a specific kind of action. My suggestion is simply to extend this list with a number of categories that are recurring in agent behavior. Here are some suggestions based on "kind of actions" we currently use, how I think one would currently encode them in ACS, and how we could make them more explicit:
With the added semantics, a I might not have been sufficiently explicit about what we would gain by adding such semantics, here are a few ideas of simple policies that would be easy to enforce:
Actually, because the harness already declares its hooks at session start, the Guardian would know up front whether the harness reports code execution at all. It stays a bit blurry, I agree: a shell command can also fetch a web page. The harness can only report what it knows. I am also not attached to separate hooks; a required field with a few fixed values on |
Uh oh!
There was an error while loading. Please reload this page.
Hi all, three small ideas about
toolCallRequest. They are closely related, so I am putting them in one discussion thread; if there is any enthusiasm I am happy to move them forward.In my view, a capability string like
filesystem.deletesays three things at once:However, the field is optional, and hence I was thinking whether we could not formalize this more and make each of the three more explicit. Here are some ideas:
codeExecutionandcredentialAccess). A harness declares its hooks at the start of a session, so a Guardian would know whether code execution is reported at all. #153 points out that the open problem is that capability is optional; making it required would help too.memoryStorelist plus read. The existing operation stays as it is.Intent.parsedhas one already, but a tool call does not, so checking a call against the Intent seems to need a parser per tool (hope that's correct).The
capabilityfield would still be the way to declare in advance what a tool or a skill may do. The other changes just describe the resource / "step" in more detail.I may be missing existing work here; #8 and #227 seem related.
Some background on where this comes from is here. That's work we have been doing which is sparking some of these ideas. Ideally I would love to use ACS instead of AAG in some of our upstream applications, but we would need sufficiently granular step descriptions.
All reactions