Let the CEO hand out connector toolkits agent by agent
Connections belong to the company - one Composio connected account per toolkit, mirrored locally in connector_accounts - and access belongs to individuals: a new agent_connector_grants table records which agent may use which toolkit. Agent runs now load composio tools from the intersection of active connections and that agent's grants, and tool execution re-checks the grant server-side so an ungranted agent cannot call a connector tool it heard about. Any agent can list_connectors to see what the company has connected and who holds access; grant_connector/revoke_connector are CEO-only. The Composio client speaks the v3 contract (user_id, connected_account_id, toolkit catalog with cursor paging, managed auth config creation, connect-link initiation). Covered by four grants contract tests.
This commit is contained in:
1 parent
4775b23d94
commit
66aae376c0
10 files changed
+465
-66
No files matched your search
@@ -69,7 +69,7 @@ export async function runAgentLoop(deps: AgentRunLoopDeps, input: AgentRunLoopIn
|
||||
toolCallCount += 1;
|
||||
let output: string;
|
||||
if (isComposioTool(call.name)) {
|
||||
output = await executeComposioTool(deps.tools.db, input.orgId, call);
|
||||
output = await executeComposioTool(deps.tools.db, input.orgId, input.toolContext.agent.id, call);
|
||||
} else {
|
||||
output = dispatchAgentTool(deps.tools, input.toolContext, call, {
|
||||
announceTaskAssignments: shouldAnnounceTaskAssignment(call, turn.toolCalls),
|
||||
|
||||
Reference in new issue
Block a user