Authenticate the tools your agent will use (Jira, Splunk, SentinelOne, etc.)Navigate to Settings > Integrations and connect relevant services
2
Define the Use Case
Be clear about what the agent should do:
What problem does it solve?
What triggers it?
What tools does it need?
What output should it produce?
3
(Optional) Prepare Context Docs
If your agent needs reference material (runbooks, policies, FP lists), have those ready in Google Docs or Notion
Creation Methods
You can create agents in three ways:
From Chat (Recommended)
Convert a successful chat session
From Scratch (Advanced)
Build a custom agent with full control
From Template
Start with a pre-built template
Prefer to manage agents as code? You can also define response agents as
YAML in your own GitHub repo and let Cotool sync them in. See Response
Agents as Code.
Method 1: Create From Scratch
1
Navigate to Agents
Click Agents in the sidebar, then Create Agent
2
Basic Information
Fill in the basics:Name: Short, descriptive name (e.g., “SentinelOne Alert Triage”)Description: What does this agent do? Who uses it?
3
Write System Prompt
This is the core of your agent. Write clear instructions about:
The agent’s role
What it should do
When to use which tools
How to format output
Prompt Engineering Guide → Learn how to write effective prompts
4
Select Tools
Choose which tools the agent can use:
Browse by category (SIEM, EDR, Ticketing, etc.)
Or search by name
Grant only what’s needed for the task
Tip: Start with fewer tools, add more as needed
5
Attach Skills (Optional)
Add reusable skills when part of the workflow should stay consistent across multiple agents:
Standard investigation procedures
Output formats and reporting templates
Reusable enrichment or triage playbooks
Cotool will warn you if a selected skill requires tools this agent does not have.
Learn about Skills -> Reusable instructions and resources for agents
6
Add Context Documents (Optional)
Link Google Docs or Notion pages that provide reference information:
Runbooks and procedures
Known false positive lists
Contact directories
Policy documents
The agent will have access to these during execution
7
Configure Settings
Planning Mode:
never: Agent acts immediately (faster, good for simple tasks)
auto: Agent decides if planning is needed
always: Agent always creates a plan first (better for complex tasks)
Max Tool Calls: Limit how many tools the agent can call (default: 25)Timeout: Maximum execution time (default: 5 minutes)
8
Save and Test
Click Create Agent. You’ll be taken to the agent detail page.Next, test it using the Builder interface!
Method 2: Create From Template
Templates are pre-built agents for common use cases:
1
Browse Templates
Click Agents > Create Agent > From Template
2
Choose Template
Select from templates
3
Customize
Templates come with:
Pre-written system prompt (edit to fit your needs)
Recommended tools (add/remove as needed)
Example context documents
Customize these for your environment
4
Configure Integrations
Ensure you have the required integrations connected (template will list them)
5
Test & Deploy
Use Builder to test with real data, then set up triggers
Browse Use Cases → See common agent patterns
Method 3: Create From Chat
If you’ve had a successful chat session, convert it to an agent:
1
Complete Chat Session
Use the Chat interface to work through your use case
2
Review the Session
Make sure the chat achieved the desired outcome with good tool usage
3
Click 'Create Agent'
In the chat interface, click Create Agent from Chat
4
Auto-Generated Prompt
Cotool analyzes the chat session and generates: - System prompt based on
your conversation - Tool list from what was used - Planning mode based
on complexity
5
Refine and Save
Review the generated prompt, make adjustments, and save
Learn More → Creating agents from chat sessions
What Happens After Creation?
Once you create an agent:
Test in Builder
Set Up Triggers
Monitor Performance
Iterate & Improve
Use the Builder to: - Test with sample inputs - Refine the system prompt
Verify tool usage - Check output format Don’t skip this step!
Testing before deploying prevents issues.
Make your agent autonomous: - Jira trigger - Runs when tickets are
created/updated - Slack trigger - Runs when mentioned in Slack -
Cron trigger - Runs on a schedule - Email trigger - Runs when
emails arrive
View all trigger types
Track your agent’s executions: - Success rate - Average duration - User
feedback - Evaluation scores
Agents improve over time: - Review failed executions - Incorporate user
feedback - Use AI suggestions to refine prompts - A/B test different
versions
Learn about optimization
Common Patterns
Pattern: Alert Enrichment Agent
Goal: Automatically enrich security alertsTools Needed:- get_sentinelone_alert- search_splunk- virustotal_check_hash- update_jira_ticketTrigger: Jira issue created (type=Security Alert)Prompt Focus:- Extract indicators from alert- Search for related activity- Check threat intelligence- Summarize findings in ticket
Pattern: Scheduled Report Agent
Goal: Weekly access review reportTools Needed:- list_okta_users- list_aws_iam_roles- list_google_workspace_groups- send_slack_messageTrigger: Cron (every Monday 9am)Prompt Focus:- Gather user/permission data- Identify anomalies or stale accounts- Generate formatted report- Post to #security-reports
Pattern: On-Demand Research Agent
Goal: Ad-hoc investigations via chatTools Needed:- search_splunk- list_sentinelone_alerts- get_okta_user- virustotal_*Trigger: Chat (no automatic trigger)Prompt Focus:- Help analyst investigate indicators- Provide context and enrichment- Suggest next steps- Generate summary reports
Agent Configuration Options
When creating an agent, you can configure:
Model Selection
Choose which LLM powers your agent:
General-purpose hosted model: Strong reasoning, tool use, and instruction following
High-speed/cost-optimized hosted model: Good fit for simpler tasks or high volume
Custom or self-hosted: Bring your own fine-tuned or on-prem model
always: Agent creates detailed plan first (complex multi-step tasks)
Tip: Start with auto, adjust based on results
Tool Access
Grant only necessary tools. Over-granting tools:
Increases token usage (all tools described to LLM)
Can confuse the agent
Creates security risk
Best Practice: Start minimal, add tools as needed
Skills
Skills let you attach reusable instructions and supporting files to multiple agents.Use them for:
Standard operating procedures
Shared report formats
Repeatable investigation workflows
Best Practice: Put reusable workflow logic in skills, and keep the main system prompt focused on the agent’s overall role.
Context Documents
Link up to 10 documents per agent. Documents are loaded into context at runtime.Size Limits:
50KB per document (plain text equivalent)
Agent has ~200KB total context window
Tip: Keep docs focused and concise
Evaluation Criteria
Define how this agent should be evaluated:
Accuracy of findings
Completeness of investigation
Clarity of output
Appropriate tool usage
Used for automated scoring and prompt optimization
Tips for Success
Start Small: Create a focused agent that does one thing well. It’s
easier to expand scope than to debug an overly complex agent.
Test Extensively: Use Builder to test many scenarios before deploying
triggers. This catches issues early.
Monitor Early: Check first 10-20 executions closely. This is when you’ll
discover prompt issues or missing tools.
Iterate Quickly: Don’t aim for perfection on first try. Deploy, observe,
improve. Agents get better over time.
Troubleshooting Common Issues
Agent doesn't use the right tools
Fix: Make tool usage more explicit in system prompt: “Always start
by calling get_sentinelone_alert to fetch full alert details”
Output format is inconsistent
Fix: Provide a template in the prompt: “Format your response exactly
like this: [template]”
Agent is too slow
Fix: - Reduce number of granted tools - Set planning mode to never
Remove verbose context documents - Check if tools themselves are slow
(API performance)
Agent makes wrong decisions
Fix: - Add decision criteria to prompt - Provide examples of
good/bad decisions - Check if context documents have necessary info -
Verify tool outputs are correct
Was this page helpful?
⌘I
{"docsConfig":{"theme":"linden","$schema":"https://mintlify.com/docs.json","name":"Cotool Documentation","colors":{"primary":"#A9D5F5","light":"#A9D5F5","dark":"#ADB7C2"},"logo":{"light":"https://mintcdn.com/cotool-bcb49c92/2D7q2Y6FoJjh0OqV/logo/light.svg?fit=max\u0026auto=format\u0026n=2D7q2Y6FoJjh0OqV\u0026q=85\u0026s=ed5fa6ba5fadea78cb6d1341380b9873","dark":"https://mintcdn.com/cotool-bcb49c92/2D7q2Y6FoJjh0OqV/logo/dark.svg?fit=max\u0026auto=format\u0026n=2D7q2Y6FoJjh0OqV\u0026q=85\u0026s=fab6122c7e0ad6a1e8299f49397231f5"},"favicon":"https://mintcdn.com/cotool-bcb49c92/YkFCFtl3swKv9Xqp/favicon.png?fit=max\u0026auto=format\u0026n=YkFCFtl3swKv9Xqp\u0026q=85\u0026s=4c02ec1d53713897f1c2b6f7815e864b","api":{"playground":{"display":"simple"},"examples":{"defaults":"all","languages":["curl","python","javascript","java","go"]}},"navbar":{"links":[{"href":"mailto:support@cotool.ai","label":"Support"}]},"footer":{"socials":{"x":"https://x.com/cotoolai","linkedin":"https://www.linkedin.com/company/cotool-ai","website":"https://cotool.ai"}},"integrations":{"ga4":{"measurementId":"G-RJSB18V7N5"},"gtm":{"tagId":"GTM-5BPJH7T2"}},"contextual":{"options":["copy","view"],"display":"header"},"styling":{"latex":false},"background":{"color":{"light":"#fcfeff","dark":"#0e0f12"}},"navigation":{"global":{"anchors":[{"anchor":"Blog","icon":"newspaper","href":"https://cotool.ai/blog"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"cotool-bcb49c92","hasAudioNarration":false,"actualSubdomain":"cotool-bcb49c92","customDomains":["docs.cotool.ai"],"gitSource":{"type":"github","owner":"cotool","repo":"cogent-client","deployBranch":"stable","contentDirectory":"docs","isPrivate":true,"mountPath":"","label":""},"feedback":{"thumbs":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6af626646bcf3eee99974073","clientVersion":"0.0.4143","searchFilterCounts":[{"language":"default","tag":"API Reference","count":160},{"language":"default","tag":"Endpoints","count":159},{"language":"default","tag":"Documentation","count":62},{"language":"default","tag":"Agents","count":30},{"language":"default","tag":"Alerts","count":23},{"language":"default","tag":"Integrations","count":19},{"language":"default","tag":"Agent Runs","count":14},{"language":"default","tag":"Agent Triggers","count":14},{"language":"default","tag":"Hunt","count":13},{"language":"default","tag":"Intel","count":11}]},"assistantConfig":{},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"agents/creating-agents","slug":"/agents/creating-agents","pageMetadata":{"title":"Creating Agents","description":"Step-by-step guide to creating your first agent","href":"/agents/creating-agents"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Step-by-step guide to creating your first agent\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{Accordion,AccordionGroup,Card,CardGroup,CodeBlock,Heading,Note,Step,Steps,Tab,Tabs}=_components;if(!Accordion)_missingMdxReference(`Accordion`,true);if(!AccordionGroup)_missingMdxReference(`AccordionGroup`,true);if(!Card)_missingMdxReference(`Card`,true);if(!CardGroup)_missingMdxReference(`CardGroup`,true);if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!Step)_missingMdxReference(`Step`,true);if(!Steps)_missingMdxReference(`Steps`,true);if(!Tab)_missingMdxReference(`Tab`,true);if(!Tabs)_missingMdxReference(`Tabs`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`2`,id:`prerequisites`,children:`Prerequisites`}),`\n`,_jsx(_components.p,{children:`Before creating an agent, you should:`}),`\n`,_jsxs(Steps,{children:[_jsxs(Step,{title:`Connect Integrations`,children:[_jsx(_components.p,{children:`Authenticate the tools your agent will use (Jira, Splunk, SentinelOne, etc.)`}),_jsxs(_components.p,{children:[`Navigate to `,_jsx(_components.strong,{children:`Settings > Integrations`}),` and connect relevant services`]})]}),_jsxs(Step,{title:`Define the Use Case`,children:[_jsx(_components.p,{children:`Be clear about what the agent should do:`}),_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`What problem does it solve?`}),`\n`,_jsx(_components.li,{children:`What triggers it?`}),`\n`,_jsx(_components.li,{children:`What tools does it need?`}),`\n`,_jsx(_components.li,{children:`What output should it produce?`}),`\n`]})]}),_jsx(Step,{title:`(Optional) Prepare Context Docs`,children:_jsx(_components.p,{children:`If your agent needs reference material (runbooks, policies, FP lists), have those ready in Google Docs or Notion`})})]}),`\n`,_jsx(Heading,{level:`2`,id:`creation-methods`,children:`Creation Methods`}),`\n`,_jsx(_components.p,{children:`You can create agents in three ways:`}),`\n`,_jsxs(CardGroup,{cols:3,children:[_jsx(Card,{title:`From Chat (Recommended)`,icon:`messages`,children:_jsx(_components.p,{children:`Convert a successful chat session`})}),_jsx(Card,{title:`From Scratch (Advanced)`,icon:`wand-magic-sparkles`,children:_jsx(_components.p,{children:`Build a custom agent with full control`})}),_jsx(Card,{title:`From Template`,icon:`copy`,children:_jsx(_components.p,{children:`Start with a pre-built template`})})]}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Prefer to manage agents as code?`}),` You can also define response agents as\nYAML in your own GitHub repo and let Cotool sync them in. See `,_jsx(_components.a,{href:`/agents/response-agents-as-code`,children:`Response\nAgents as Code`}),`.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`method-1-create-from-scratch`,children:`Method 1: Create From Scratch`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Navigate to Agents`,children:_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`Agents`}),` in the sidebar, then `,_jsx(_components.strong,{children:`Create Agent`})]})}),_jsxs(Step,{title:`Basic Information`,children:[_jsx(_components.p,{children:`Fill in the basics:`}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Name`}),`: Short, descriptive name (e.g., “SentinelOne Alert Triage”)`]}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Description`}),`: What does this agent do? Who uses it?`]})]}),_jsxs(Step,{title:`Write System Prompt`,children:[_jsx(_components.p,{children:`This is the core of your agent. Write clear instructions about:`}),_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`The agent’s role`}),`\n`,_jsx(_components.li,{children:`What it should do`}),`\n`,_jsx(_components.li,{children:`When to use which tools`}),`\n`,_jsx(_components.li,{children:`How to format output`}),`\n`]}),_jsx(Card,{href:`/core-concepts/system-prompts`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Prompt Engineering Guide`}),` → Learn how to write effective prompts`]})})]}),_jsxs(Step,{title:`Select Tools`,children:[_jsx(_components.p,{children:`Choose which tools the agent can use:`}),_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Browse by category (SIEM, EDR, Ticketing, etc.)`}),`\n`,_jsx(_components.li,{children:`Or search by name`}),`\n`,_jsx(_components.li,{children:`Grant only what’s needed for the task`}),`\n`]}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Tip`}),`: Start with fewer tools, add more as needed`]})]}),_jsxs(Step,{title:`Attach Skills (Optional)`,children:[_jsx(_components.p,{children:`Add reusable skills when part of the workflow should stay consistent across multiple agents:`}),_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Standard investigation procedures`}),`\n`,_jsx(_components.li,{children:`Output formats and reporting templates`}),`\n`,_jsx(_components.li,{children:`Reusable enrichment or triage playbooks`}),`\n`]}),_jsx(_components.p,{children:`Cotool will warn you if a selected skill requires tools this agent does not have.`}),_jsx(Card,{href:`/agents/skills`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Learn about Skills`}),` -> Reusable instructions and resources for agents`]})})]}),_jsxs(Step,{title:`Add Context Documents (Optional)`,children:[_jsx(_components.p,{children:`Link Google Docs or Notion pages that provide reference information:`}),_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Runbooks and procedures`}),`\n`,_jsx(_components.li,{children:`Known false positive lists`}),`\n`,_jsx(_components.li,{children:`Contact directories`}),`\n`,_jsx(_components.li,{children:`Policy documents`}),`\n`]}),_jsx(_components.p,{children:`The agent will have access to these during execution`})]}),_jsxs(Step,{title:`Configure Settings`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Planning Mode`}),`:`]}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`never`}),`: Agent acts immediately (faster, good for simple tasks)`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`auto`}),`: Agent decides if planning is needed`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`always`}),`: Agent always creates a plan first (better for complex tasks)`]}),`\n`]}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Max Tool Calls`}),`: Limit how many tools the agent can call (default: 25)`]}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Timeout`}),`: Maximum execution time (default: 5 minutes)`]})]}),_jsxs(Step,{title:`Save and Test`,children:[_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`Create Agent`}),`. You’ll be taken to the agent detail page.`]}),_jsxs(_components.p,{children:[`Next, test it using the `,_jsx(_components.strong,{children:`Builder`}),` interface!`]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`method-2-create-from-template`,children:`Method 2: Create From Template`}),`\n`,_jsx(_components.p,{children:`Templates are pre-built agents for common use cases:`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Browse Templates`,children:_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`Agents`}),` > `,_jsx(_components.strong,{children:`Create Agent`}),` > `,_jsx(_components.strong,{children:`From Template`})]})}),_jsx(Step,{title:`Choose Template`,children:_jsx(_components.p,{children:`Select from templates`})}),_jsxs(Step,{title:`Customize`,children:[_jsx(_components.p,{children:`Templates come with:`}),_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Pre-written system prompt (edit to fit your needs)`}),`\n`,_jsx(_components.li,{children:`Recommended tools (add/remove as needed)`}),`\n`,_jsx(_components.li,{children:`Example context documents`}),`\n`]}),_jsx(_components.p,{children:`Customize these for your environment`})]}),_jsx(Step,{title:`Configure Integrations`,children:_jsx(_components.p,{children:`Ensure you have the required integrations connected (template will list them)`})}),_jsx(Step,{title:`Test \u0026 Deploy`,children:_jsx(_components.p,{children:`Use Builder to test with real data, then set up triggers`})})]}),`\n`,_jsx(Card,{href:`/use-cases/alert-triage`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Browse Use Cases`}),` → See common agent patterns`]})}),`\n`,_jsx(Heading,{level:`2`,id:`method-3-create-from-chat`,children:`Method 3: Create From Chat`}),`\n`,_jsx(_components.p,{children:`If you’ve had a successful chat session, convert it to an agent:`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Complete Chat Session`,children:_jsx(_components.p,{children:`Use the Chat interface to work through your use case`})}),_jsx(Step,{title:`Review the Session`,children:_jsx(_components.p,{children:`Make sure the chat achieved the desired outcome with good tool usage`})}),_jsx(Step,{title:`Click 'Create Agent'`,children:_jsxs(_components.p,{children:[`In the chat interface, click `,_jsx(_components.strong,{children:`Create Agent from Chat`})]})}),_jsx(Step,{title:`Auto-Generated Prompt`,children:_jsx(_components.p,{children:`Cotool analyzes the chat session and generates: - System prompt based on\nyour conversation - Tool list from what was used - Planning mode based\non complexity`})}),_jsx(Step,{title:`Refine and Save`,children:_jsx(_components.p,{children:`Review the generated prompt, make adjustments, and save`})})]}),`\n`,_jsx(Card,{href:`/chat/creating-agents-from-chat`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Learn More`}),` → Creating agents from chat sessions`]})}),`\n`,_jsx(Heading,{level:`2`,id:`what-happens-after-creation`,children:`What Happens After Creation?`}),`\n`,_jsx(_components.p,{children:`Once you create an agent:`}),`\n`,_jsxs(Tabs,{children:[_jsxs(Tab,{title:`Test in Builder`,id:`test-in-builder`,children:[_jsx(_components.p,{children:`Use the Builder to: - Test with sample inputs - Refine the system prompt`}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Verify tool usage - Check output format `,_jsx(_components.strong,{children:`Don’t skip this step!`}),`\nTesting before deploying prevents issues.`]}),`\n`]})]}),_jsx(Tab,{title:`Set Up Triggers`,id:`set-up-triggers`,children:_jsxs(_components.p,{children:[`Make your agent autonomous: - `,_jsx(_components.strong,{children:`Jira trigger`}),` - Runs when tickets are\ncreated/updated - `,_jsx(_components.strong,{children:`Slack trigger`}),` - Runs when mentioned in Slack -\n`,_jsx(_components.strong,{children:`Cron trigger`}),` - Runs on a schedule - `,_jsx(_components.strong,{children:`Email trigger`}),` - Runs when\nemails arrive\n`,_jsx(Card,{href:`/agents/triggering-agents`,children:`View all trigger types`})]})}),_jsx(Tab,{title:`Monitor Performance`,id:`monitor-performance`,children:_jsx(_components.p,{children:`Track your agent’s executions: - Success rate - Average duration - User\nfeedback - Evaluation scores`})}),_jsxs(Tab,{title:`Iterate \u0026 Improve`,id:`iterate-%26-improve`,children:[_jsx(_components.p,{children:`Agents improve over time: - Review failed executions - Incorporate user\nfeedback - Use AI suggestions to refine prompts - A/B test different\nversions`}),_jsx(Card,{href:`/improving-agents/ai-suggested-improvements`,children:_jsx(_components.p,{children:`Learn about optimization`})})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`common-patterns`,children:`Common Patterns`}),`\n`,_jsx(Heading,{level:`3`,id:`pattern-alert-enrichment-agent`,children:`Pattern: Alert Enrichment Agent`}),`\n`,_jsx(CodeBlock,{numberOfLines:`16`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`16`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Goal: Automatically enrich security alerts`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Tools Needed:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`- get_sentinelone_alert`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`- search_splunk`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`- virustotal_check_hash`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`- update_jira_ticket`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Trigger: Jira issue created (type=Security Alert)`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Prompt Focus:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`- Extract indicators from alert`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`- Search for related activity`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`- Check threat intelligence`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`- Summarize findings in ticket`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(Heading,{level:`3`,id:`pattern-scheduled-report-agent`,children:`Pattern: Scheduled Report Agent`}),`\n`,_jsx(CodeBlock,{numberOfLines:`16`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`16`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Goal: Weekly access review report`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Tools Needed:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`- list_okta_users`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`- list_aws_iam_roles`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`- list_google_workspace_groups`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`- send_slack_message`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Trigger: Cron (every Monday 9am)`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Prompt Focus:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`- Gather user/permission data`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`- Identify anomalies or stale accounts`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`- Generate formatted report`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`- Post to #security-reports`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(Heading,{level:`3`,id:`pattern-on-demand-research-agent`,children:`Pattern: On-Demand Research Agent`}),`\n`,_jsx(CodeBlock,{numberOfLines:`16`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`16`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Goal: Ad-hoc investigations via chat`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Tools Needed:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`- search_splunk`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`- list_sentinelone_alerts`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`- get_okta_user`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`- virustotal_*`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Trigger: Chat (no automatic trigger)`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Prompt Focus:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`- Help analyst investigate indicators`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`- Provide context and enrichment`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`- Suggest next steps`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`- Generate summary reports`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(Heading,{level:`2`,id:`agent-configuration-options`,children:`Agent Configuration Options`}),`\n`,_jsx(_components.p,{children:`When creating an agent, you can configure:`}),`\n`,_jsxs(AccordionGroup,{children:[_jsxs(Accordion,{title:`Model Selection`,icon:`brain`,id:`model-selection`,children:[_jsx(_components.p,{children:`Choose which LLM powers your agent:`}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`General-purpose hosted model`}),`: Strong reasoning, tool use, and instruction following`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`High-speed/cost-optimized hosted model`}),`: Good fit for simpler tasks or high volume`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Custom or self-hosted`}),`: Bring your own fine-tuned or on-prem model`]}),`\n`]})]}),_jsxs(Accordion,{title:`Planning Mode`,icon:`list-check`,id:`planning-mode`,children:[_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`never`}),`: Agent acts immediately (faster, 1-2 tool calls)`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`auto`}),`: Agent decides if planning helps (balanced)`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`always`}),`: Agent creates detailed plan first (complex multi-step tasks)`]}),`\n`]}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Tip`}),`: Start with `,_jsx(_components.code,{children:`auto`}),`, adjust based on results`]})]}),_jsxs(Accordion,{title:`Tool Access`,icon:`toolbox`,id:`tool-access`,children:[_jsx(_components.p,{children:`Grant only necessary tools. Over-granting tools:`}),_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Increases token usage (all tools described to LLM)`}),`\n`,_jsx(_components.li,{children:`Can confuse the agent`}),`\n`,_jsx(_components.li,{children:`Creates security risk`}),`\n`]}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Best Practice`}),`: Start minimal, add tools as needed`]})]}),_jsxs(Accordion,{title:`Skills`,icon:`copy`,id:`skills`,children:[_jsx(_components.p,{children:`Skills let you attach reusable instructions and supporting files to multiple agents.`}),_jsx(_components.p,{children:`Use them for:`}),_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Standard operating procedures`}),`\n`,_jsx(_components.li,{children:`Shared report formats`}),`\n`,_jsx(_components.li,{children:`Repeatable investigation workflows`}),`\n`]}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Best Practice`}),`: Put reusable workflow logic in skills, and keep the main system prompt focused on the agent’s overall role.`]})]}),_jsxs(Accordion,{title:`Context Documents`,icon:`file-lines`,id:`context-documents`,children:[_jsx(_components.p,{children:`Link up to 10 documents per agent. Documents are loaded into context at runtime.`}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Size Limits`}),`:`]}),_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`50KB per document (plain text equivalent)`}),`\n`,_jsx(_components.li,{children:`Agent has ~200KB total context window`}),`\n`]}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Tip`}),`: Keep docs focused and concise`]})]}),_jsxs(Accordion,{title:`Evaluation Criteria`,icon:`star`,id:`evaluation-criteria`,children:[_jsx(_components.p,{children:`Define how this agent should be evaluated:`}),_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Accuracy of findings`}),`\n`,_jsx(_components.li,{children:`Completeness of investigation`}),`\n`,_jsx(_components.li,{children:`Clarity of output`}),`\n`,_jsx(_components.li,{children:`Appropriate tool usage`}),`\n`]}),_jsx(_components.p,{children:`Used for automated scoring and prompt optimization`})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`tips-for-success`,children:`Tips for Success`}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Start Small`}),`: Create a focused agent that does one thing well. It’s\neasier to expand scope than to debug an overly complex agent.`]})}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Test Extensively`}),`: Use Builder to test many scenarios before deploying\ntriggers. This catches issues early.`]})}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Monitor Early`}),`: Check first 10-20 executions closely. This is when you’ll\ndiscover prompt issues or missing tools.`]})}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Iterate Quickly`}),`: Don’t aim for perfection on first try. Deploy, observe,\nimprove. Agents get better over time.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`troubleshooting-common-issues`,children:`Troubleshooting Common Issues`}),`\n`,_jsxs(AccordionGroup,{children:[_jsx(Accordion,{title:`Agent doesn't use the right tools`,id:`agent-doesnt-use-the-right-tools`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Fix`}),`: Make tool usage more explicit in system prompt: “Always start\nby calling `,_jsx(_components.code,{children:`get_sentinelone_alert`}),` to fetch full alert details”`]})}),_jsx(Accordion,{title:`Output format is inconsistent`,id:`output-format-is-inconsistent`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Fix`}),`: Provide a template in the prompt: “Format your response exactly\nlike this: [template]”`]})}),_jsxs(Accordion,{title:`Agent is too slow`,id:`agent-is-too-slow`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Fix`}),`: - Reduce number of granted tools - Set planning mode to `,_jsx(_components.code,{children:`never`})]}),_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Remove verbose context documents - Check if tools themselves are slow\n(API performance)`}),`\n`]})]}),_jsx(Accordion,{title:`Agent makes wrong decisions`,id:`agent-makes-wrong-decisions`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Fix`}),`: - Add decision criteria to prompt - Provide examples of\ngood/bad decisions - Check if context documents have necessary info -\nVerify tool outputs are correct`]})})]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Creating Agents","description":"Step-by-step guide to creating your first agent","href":"/agents/creating-agents"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Prerequisites","slug":"prerequisites","depth":2,"children":[]},{"title":"Creation Methods","slug":"creation-methods","depth":2,"children":[]},{"title":"Method 1: Create From Scratch","slug":"method-1-create-from-scratch","depth":2,"children":[]},{"title":"Method 2: Create From Template","slug":"method-2-create-from-template","depth":2,"children":[]},{"title":"Method 3: Create From Chat","slug":"method-3-create-from-chat","depth":2,"children":[]},{"title":"What Happens After Creation?","slug":"what-happens-after-creation","depth":2,"children":[]},{"title":"Common Patterns","slug":"common-patterns","depth":2,"children":[{"title":"Pattern: Alert Enrichment Agent","slug":"pattern-alert-enrichment-agent","depth":3,"children":[]},{"title":"Pattern: Scheduled Report Agent","slug":"pattern-scheduled-report-agent","depth":3,"children":[]},{"title":"Pattern: On-Demand Research Agent","slug":"pattern-on-demand-research-agent","depth":3,"children":[]}]},{"title":"Agent Configuration Options","slug":"agent-configuration-options","depth":2,"children":[]},{"title":"Tips for Success","slug":"tips-for-success","depth":2,"children":[]},{"title":"Troubleshooting Common Issues","slug":"troubleshooting-common-issues","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"cotool-bcb49c92","siteName":"Cotool Documentation","title":"Creating Agents - Cotool Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-09-22T20:30:18.802Z","originalFileLocation":"agents/creating-agents.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Step-by-step guide to creating your first agent\">\u003cmeta data-mint-head name=\"application-name\" content=\"Cotool Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/cotool-bcb49c92/LJnfYfYlhELWbHCE/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/cotool-bcb49c92/LJnfYfYlhELWbHCE/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/cotool-bcb49c92/LJnfYfYlhELWbHCE/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/cotool-bcb49c92/LJnfYfYlhELWbHCE/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/cotool-bcb49c92/LJnfYfYlhELWbHCE/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/cotool-bcb49c92/LJnfYfYlhELWbHCE/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/cotool-bcb49c92/LJnfYfYlhELWbHCE/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/cotool-bcb49c92/LJnfYfYlhELWbHCE/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/cotool-bcb49c92/LJnfYfYlhELWbHCE/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Creating Agents - Cotool Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Step-by-step guide to creating your first agent\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Cotool Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.cotool.ai/agents/creating-agents\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://cotool-bcb49c92.mintlify.site/_mintlify/api/og/v2?division=Agents\u0026amp;title=Creating+Agents\u0026amp;description=Step-by-step+guide+to+creating+your+first+agent\u0026amp;theme=9cf48588ea89a0ad039b77ef\u0026amp;signature=ba64504ff1141535746de8f418fa0f821a4482b01c1ba1036fca30a718119211\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Creating Agents - Cotool Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Step-by-step guide to creating your first agent\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://cotool-bcb49c92.mintlify.site/_mintlify/api/og/v2?division=Agents\u0026amp;title=Creating+Agents\u0026amp;description=Step-by-step+guide+to+creating+your+first+agent\u0026amp;theme=9cf48588ea89a0ad039b77ef\u0026amp;signature=ba64504ff1141535746de8f418fa0f821a4482b01c1ba1036fca30a718119211\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/cotool-bcb49c92/LJnfYfYlhELWbHCE/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Cotool Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#A9D5F5\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.cotool.ai/agents/creating-agents\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/agents/creating-agents.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.cotool.ai/#organization\",\"name\":\"Cotool Documentation\",\"url\":\"https://docs.cotool.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/cotool-bcb49c92/2D7q2Y6FoJjh0OqV/logo/light.svg?fit=max\u0026auto=format\u0026n=2D7q2Y6FoJjh0OqV\u0026q=85\u0026s=ed5fa6ba5fadea78cb6d1341380b9873\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.cotool.ai#website\",\"name\":\"Cotool Documentation\",\"url\":\"https://docs.cotool.ai\",\"publisher\":{\"@id\":\"https://docs.cotool.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.cotool.ai/agents/creating-agents#webpage\",\"url\":\"https://docs.cotool.ai/agents/creating-agents\",\"name\":\"Creating Agents\",\"description\":\"Step-by-step guide to creating your first agent\",\"dateModified\":\"2026-09-22T20:30:18.802Z\",\"isPartOf\":{\"@id\":\"https://docs.cotool.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.cotool.ai/agents/creating-agents#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.cotool.ai/agents/creating-agents#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Cotool Documentation\",\"item\":\"https://docs.cotool.ai\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Creating Agents\",\"item\":\"https://docs.cotool.ai/agents/creating-agents\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.cotool.ai/agents/creating-agents#article\",\"headline\":\"Creating Agents\",\"name\":\"Creating Agents\",\"description\":\"Step-by-step guide to creating your first agent\",\"url\":\"https://docs.cotool.ai/agents/creating-agents\",\"mainEntityOfPage\":{\"@id\":\"https://docs.cotool.ai/agents/creating-agents#webpage\"},\"dateModified\":\"2026-09-22T20:30:18.802Z\",\"publisher\":{\"@id\":\"https://docs.cotool.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.cotool.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Cotool Documentation\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Cotool Documentation\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/agents/creating-agents.md","siteName":"Cotool Documentation","nav":{"global":{"anchors":[{"anchor":"Blog","icon":"newspaper","href":"https://cotool.ai/blog"}]},"tabs":[{"tab":"Documentation","groups":[{"group":"Getting Started","pages":[{"title":"Introduction","href":""},{"title":"Getting Started","href":"/getting-started"}]},{"group":"Core Concepts","pages":[{"title":"What is an Agent?","href":"/core-concepts/what-is-an-agent"},{"title":"Tools and Integrations","href":"/core-concepts/tools-and-integrations"},{"title":"System Prompts","href":"/core-concepts/system-prompts"}]},{"group":"Chat","pages":[{"title":"Using Chat","href":"/chat/using-chat"},{"title":"Slash Commands","href":"/chat/slash-commands"},{"title":"File Attachments","href":"/chat/file-attachments"},{"title":"Creating Agents from Chat","href":"/chat/creating-agents-from-chat"},{"title":"Generating Reports","description":"Create formatted reports from chat conversations","href":"/chat/generating-reports"}]},{"group":"Agents","pages":[{"title":"Creating Agents","href":"/agents/creating-agents"},{"title":"Response Agents as Code","description":"Manage response agents as YAML in your own GitHub repo, synced automatically into Cotool","href":"/agents/response-agents-as-code"},{"title":"Skills","href":"/agents/skills"},{"title":"Agent Filesystem","href":"/agents/agent-filesystem"},{"title":"Triggering Agents","href":"/agents/triggering-agents"},{"title":"Context Documents","href":"/agents/context-documents"},{"title":"Planning Modes","href":"/agents/planning-modes"},{"title":"Agent Outputs","href":"/agents/structured-outputs"}]},{"group":"Triage","pages":[{"title":"Alerts","icon":"bell","href":"/alerts/overview"},{"title":"Working Alerts","icon":"list-check","href":"/alerts/working-alerts"},{"title":"Alert Routing","icon":"route","href":"/alerts/routing"}]},{"group":"Hunt","pages":[{"title":"Hunt","icon":"crosshairs","href":"/hunt/overview"}]},{"group":"Log Ingest","pages":[{"title":"Cotool Log Ingest","href":"/log-ingest/overview"},{"title":"Connect Log Sources","href":"/log-ingest/connect-sources"},{"title":"Monitor Log Ingestion","href":"/log-ingest/monitoring"},{"title":"Export Logs to Your Storage","href":"/log-ingest/exporting"},{"title":"Search Logs","href":"/log-ingest/search"}]},{"group":"Detections","pages":[{"title":"Detections Overview","href":"/detections/overview"},{"title":"MITRE Coverage Mapping","href":"/detections/mitre-mapping"},{"title":"Pattern-Based Detection with Agents","href":"/detections/pattern-based-detection"}]},{"group":"Improving Agents","pages":[{"title":"Automatic Evaluations","href":"/improving-agents/evaluations"},{"title":"Acceptance Criteria","href":"/improving-agents/acceptance-criteria"},{"title":"AI-Suggested Improvements","href":"/improving-agents/ai-suggested-improvements"},{"title":"Agent Versioning","href":"/improving-agents/system-prompt-versioning"},{"title":"Manual Feedback","href":"/improving-agents/feedback-system"}]},{"group":"Settings","pages":[{"title":"Audit Logs","href":"/settings/audit-logs"},{"title":"Audit Event Reference","href":"/settings/audit-log-events"},{"title":"Roles \u0026 Permissions Overview","href":"/settings/roles-permissions-overview"},{"title":"Managing Roles \u0026 Users","href":"/settings/managing-roles"},{"title":"Notifications","href":"/settings/notifications"},{"title":"SSO","href":"/settings/sso"}]},{"group":"MCP Server","pages":[{"title":"MCP Server","href":"/mcp/overview"},{"title":"Connect an App","href":"/mcp/connect-clients"}]},{"group":"Integrations","pages":[{"title":"Integrations Overview","href":"/integrations/overview"},{"title":"SAML and SCIM IdP setup","href":"/integrations/identity/saml-scim"},{"title":"Okta Integration","href":"/integrations/identity/okta"},{"title":"Microsoft Graph Admin Integration","href":"/integrations/identity/microsoft-graph-admin"},{"title":"Slack Integration","href":"/integrations/communication/slack"},{"title":"Cotool Email","href":"/integrations/communication/cotool-email"},{"title":"Linear Integration","href":"/integrations/ticketing/linear"},{"title":"Jira Integration","href":"/integrations/ticketing/jira"},{"title":"Zscaler Integration","href":"/integrations/security-tools/network/zscaler"},{"title":"Splunk Integration","href":"/integrations/security-tools/siem/splunk"},{"title":"Microsoft Sentinel Integration","href":"/integrations/security-tools/siem/microsoft-sentinel"},{"title":"Databricks Integration","href":"/integrations/security-tools/siem/databricks"},{"title":"Snowflake Integration","href":"/integrations/security-tools/siem/snowflake"},{"title":"Azure Event Hub Integration","href":"/integrations/security-tools/siem/azure-event-hub"},{"title":"AWS S3/SQS Log Ingestion","href":"/integrations/security-tools/siem/aws-s3-sqs"},{"title":"GCP Pub/Sub Log Ingestion","href":"/integrations/security-tools/siem/gcp-pubsub"},{"title":"Azure Blob Storage Log Ingestion","href":"/integrations/security-tools/siem/azure-blob-storage"},{"title":"GitHub Integration","href":"/integrations/dev-tools/github"},{"title":"IPinfo IP Enrichment","href":"/integrations/threat-intel/ipinfo"}]}]},{"tab":"API Reference","pages":[{"title":"API Reference","href":"/api-reference/introduction"}]},{"tab":"Changelog","pages":[{"title":"Changelog","href":"/changelog"}]}]},"basePath":"","title":"Creating Agents - Cotool Documentation","buildId":"dpl_Fyv1NbzwP68g2bEH2Roy98uY1zmE","deploymentId":"dpl_Fyv1NbzwP68g2bEH2Roy98uY1zmE","dynamics":[],"chunks":[]}