mirror of
https://github.com/simstudioai/sim.git
synced 2026-04-06 03:00:16 -04:00
* feat(devin): add devin integration for autonomous coding sessions * lint * improvement(devin): update tool names and add manual docs description * improvement(devin): rename tool files to snake_case and regenerate docs * regen docs * fix(devin): remove redundant Number() conversions in tool request bodies
158 lines
7.2 KiB
Plaintext
158 lines
7.2 KiB
Plaintext
---
|
|
title: Devin
|
|
description: Autonomous AI software engineer
|
|
---
|
|
|
|
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
|
|
|
<BlockInfoCard
|
|
type="devin"
|
|
color="#12141A"
|
|
/>
|
|
|
|
{/* MANUAL-CONTENT-START:intro */}
|
|
[Devin](https://devin.ai/) is an autonomous AI software engineer by Cognition that can independently write, run, debug, and deploy code.
|
|
|
|
With Devin, you can:
|
|
|
|
- **Automate coding tasks**: Assign software engineering tasks and let Devin autonomously write, test, and iterate on code
|
|
- **Manage sessions**: Create, monitor, and interact with Devin sessions to track progress on assigned tasks
|
|
- **Guide active work**: Send messages to running sessions to provide additional context, redirect efforts, or answer questions
|
|
- **Retrieve structured output**: Poll completed sessions for pull requests, structured results, and detailed status
|
|
- **Control costs**: Set ACU (Autonomous Compute Unit) limits to cap spending on long-running tasks
|
|
- **Standardize workflows**: Use playbook IDs to apply repeatable task patterns across sessions
|
|
|
|
In Sim, the Devin integration enables your agents to programmatically manage Devin sessions as part of their workflows:
|
|
|
|
- **Create sessions**: Kick off new Devin sessions with a prompt describing the task, optional playbook, ACU limits, and tags
|
|
- **Get session details**: Retrieve the full state of a session including status, pull requests, structured output, and resource consumption
|
|
- **List sessions**: Query all sessions in your organization with optional pagination
|
|
- **Send messages**: Communicate with active or suspended sessions to provide guidance, and automatically resume suspended sessions
|
|
|
|
This allows for powerful automation scenarios such as triggering code generation from upstream events, polling for completion before consuming results, orchestrating multi-step development pipelines, and integrating Devin's output into broader agent workflows.
|
|
{/* MANUAL-CONTENT-END */}
|
|
|
|
|
|
## Usage Instructions
|
|
|
|
Integrate Devin into your workflow. Create sessions to assign coding tasks, send messages to guide active sessions, and retrieve session status and results. Devin autonomously writes, runs, and tests code.
|
|
|
|
|
|
|
|
## Tools
|
|
|
|
### `devin_create_session`
|
|
|
|
Create a new Devin session with a prompt. Devin will autonomously work on the task described in the prompt.
|
|
|
|
#### Input
|
|
|
|
| Parameter | Type | Required | Description |
|
|
| --------- | ---- | -------- | ----------- |
|
|
| `apiKey` | string | Yes | Devin API key \(service user credential starting with cog_\) |
|
|
| `prompt` | string | Yes | The task prompt for Devin to work on |
|
|
| `playbookId` | string | No | Optional playbook ID to guide the session |
|
|
| `maxAcuLimit` | number | No | Maximum ACU limit for the session |
|
|
| `tags` | string | No | Comma-separated tags for the session |
|
|
|
|
#### Output
|
|
|
|
| Parameter | Type | Description |
|
|
| --------- | ---- | ----------- |
|
|
| `sessionId` | string | Unique identifier for the session |
|
|
| `url` | string | URL to view the session in the Devin UI |
|
|
| `status` | string | Session status \(new, claimed, running, exit, error, suspended, resuming\) |
|
|
| `statusDetail` | string | Detailed status \(working, waiting_for_user, waiting_for_approval, finished, inactivity, etc.\) |
|
|
| `title` | string | Session title |
|
|
| `createdAt` | number | Unix timestamp when the session was created |
|
|
| `updatedAt` | number | Unix timestamp when the session was last updated |
|
|
| `acusConsumed` | number | ACUs consumed by the session |
|
|
| `tags` | json | Tags associated with the session |
|
|
| `pullRequests` | json | Pull requests created during the session |
|
|
| `structuredOutput` | json | Structured output from the session |
|
|
| `playbookId` | string | Associated playbook ID |
|
|
|
|
### `devin_get_session`
|
|
|
|
Retrieve details of an existing Devin session including status, tags, pull requests, and structured output.
|
|
|
|
#### Input
|
|
|
|
| Parameter | Type | Required | Description |
|
|
| --------- | ---- | -------- | ----------- |
|
|
| `apiKey` | string | Yes | Devin API key \(service user credential starting with cog_\) |
|
|
| `sessionId` | string | Yes | The session ID to retrieve |
|
|
|
|
#### Output
|
|
|
|
| Parameter | Type | Description |
|
|
| --------- | ---- | ----------- |
|
|
| `sessionId` | string | Unique identifier for the session |
|
|
| `url` | string | URL to view the session in the Devin UI |
|
|
| `status` | string | Session status \(new, claimed, running, exit, error, suspended, resuming\) |
|
|
| `statusDetail` | string | Detailed status \(working, waiting_for_user, waiting_for_approval, finished, inactivity, etc.\) |
|
|
| `title` | string | Session title |
|
|
| `createdAt` | number | Unix timestamp when the session was created |
|
|
| `updatedAt` | number | Unix timestamp when the session was last updated |
|
|
| `acusConsumed` | number | ACUs consumed by the session |
|
|
| `tags` | json | Tags associated with the session |
|
|
| `pullRequests` | json | Pull requests created during the session |
|
|
| `structuredOutput` | json | Structured output from the session |
|
|
| `playbookId` | string | Associated playbook ID |
|
|
|
|
### `devin_list_sessions`
|
|
|
|
List Devin sessions in the organization. Returns up to 100 sessions by default.
|
|
|
|
#### Input
|
|
|
|
| Parameter | Type | Required | Description |
|
|
| --------- | ---- | -------- | ----------- |
|
|
| `apiKey` | string | Yes | Devin API key \(service user credential starting with cog_\) |
|
|
| `limit` | number | No | Maximum number of sessions to return \(1-200, default: 100\) |
|
|
|
|
#### Output
|
|
|
|
| Parameter | Type | Description |
|
|
| --------- | ---- | ----------- |
|
|
| `sessions` | array | List of Devin sessions |
|
|
| ↳ `sessionId` | string | Unique identifier for the session |
|
|
| ↳ `url` | string | URL to view the session |
|
|
| ↳ `status` | string | Session status |
|
|
| ↳ `statusDetail` | string | Detailed status |
|
|
| ↳ `title` | string | Session title |
|
|
| ↳ `createdAt` | number | Creation timestamp \(Unix\) |
|
|
| ↳ `updatedAt` | number | Last updated timestamp \(Unix\) |
|
|
| ↳ `tags` | json | Session tags |
|
|
|
|
### `devin_send_message`
|
|
|
|
Send a message to a Devin session. If the session is suspended, it will be automatically resumed. Returns the updated session state.
|
|
|
|
#### Input
|
|
|
|
| Parameter | Type | Required | Description |
|
|
| --------- | ---- | -------- | ----------- |
|
|
| `apiKey` | string | Yes | Devin API key \(service user credential starting with cog_\) |
|
|
| `sessionId` | string | Yes | The session ID to send the message to |
|
|
| `message` | string | Yes | The message to send to Devin |
|
|
|
|
#### Output
|
|
|
|
| Parameter | Type | Description |
|
|
| --------- | ---- | ----------- |
|
|
| `sessionId` | string | Unique identifier for the session |
|
|
| `url` | string | URL to view the session in the Devin UI |
|
|
| `status` | string | Session status \(new, claimed, running, exit, error, suspended, resuming\) |
|
|
| `statusDetail` | string | Detailed status \(working, waiting_for_user, waiting_for_approval, finished, inactivity, etc.\) |
|
|
| `title` | string | Session title |
|
|
| `createdAt` | number | Unix timestamp when the session was created |
|
|
| `updatedAt` | number | Unix timestamp when the session was last updated |
|
|
| `acusConsumed` | number | ACUs consumed by the session |
|
|
| `tags` | json | Tags associated with the session |
|
|
| `pullRequests` | json | Pull requests created during the session |
|
|
| `structuredOutput` | json | Structured output from the session |
|
|
| `playbookId` | string | Associated playbook ID |
|
|
|
|
|