diff --git a/fern/docs/assets/agents/deployment/agent-is-discoverable.png b/fern/docs/assets/agents/deployment/agent-is-discoverable.png new file mode 100644 index 00000000..507c5be0 Binary files /dev/null and b/fern/docs/assets/agents/deployment/agent-is-discoverable.png differ diff --git a/fern/docs/pages/agent-building.mdx b/fern/docs/pages/agent-building.mdx index bd9e0dda..8bd29dab 100644 --- a/fern/docs/pages/agent-building.mdx +++ b/fern/docs/pages/agent-building.mdx @@ -29,32 +29,48 @@ Access our comprehensive agent building training session. This pre-recorded walk setup and configuration to prompts and data sources.

-
-
- You'll Learn: Agent setup & configuration, as well as the full agent creation cycle -
-
- Perfect For: Anyone looking to build and deploy - an agent with Credal -
+
+
+ You'll Learn: Agent setup & configuration, as well as the + full agent creation cycle
- -
- +
+ Perfect For: Anyone looking to build and deploy an agent + with Credal
+
+ +
+ +
diff --git a/fern/docs/pages/platform/actions/open-source-actions.mdx b/fern/docs/pages/platform/actions/open-source-actions.mdx index 816a5464..f805ca93 100644 --- a/fern/docs/pages/platform/actions/open-source-actions.mdx +++ b/fern/docs/pages/platform/actions/open-source-actions.mdx @@ -1,6 +1,10 @@ # Credal Open Source Actions - + Browse existing actions, open issues, or submit a PR on GitHub: **[github.com/credal-ai/actions-sdk](https://github.com/credal-ai/actions-sdk)** diff --git a/fern/docs/pages/platform/agents/agent-evaluate.mdx b/fern/docs/pages/platform/agents/agent-evaluate.mdx index 99c6471f..d302f112 100644 --- a/fern/docs/pages/platform/agents/agent-evaluate.mdx +++ b/fern/docs/pages/platform/agents/agent-evaluate.mdx @@ -29,18 +29,23 @@ When generating test cases, you can choose which document sources inform the que Once generated, the test cases appear in your Evaluate tab alongside any manually created ones. You can edit the questions and rubrics, or delete any that don't fit your needs. -
+
- ### **Creating Rubrics** For each test question, you can define a custom rubric that specifies what makes a good answer. Rubrics allow you to: diff --git a/fern/docs/pages/platform/agents/agent-testing.mdx b/fern/docs/pages/platform/agents/agent-testing.mdx index 750dc99a..6084cb53 100644 --- a/fern/docs/pages/platform/agents/agent-testing.mdx +++ b/fern/docs/pages/platform/agents/agent-testing.mdx @@ -1,8 +1,8 @@ -You can ask your agent questions through Credal or via third party applications you have published it to. +You can test your agent through Credal's UI or in third-party applications like Slack. -### a. **Hosting Agents through Credal's UI** +## Testing in Credal's UI -To use a agent in Credal, select your agent by clicking _Select Agent_ in the chat menu. +To test an agent in Credal, select your agent by clicking _Select Agent_ in the chat menu. ![agent-select.png](/docs/assets/agents/create-steps/agent-select.png) @@ -13,48 +13,35 @@ Then simply type your questions in the search bar. Your agent will return an ans ![agent-select-query.png](/docs/assets/agents/create-steps/agent-select-query.png) -### b. Using Agents within **third party apps** by API +## Testing in Slack -If you have published your agent to a third-party application, your queries will be directed to your agent through your unique agent API. +If you want to test your agent in Slack before rolling it out broadly: -In Slack, simply enter a query into a Slack channel the agent is connected to to get a response. The agent will respond with a , indicating it is thinking of an answer, before sending a response in a reply. +1. Create a dedicated test channel (e.g., `#agent-testing` or `#hr-bot-beta`) +2. Publish your agent to this test channel following the [Agents in Slack](/user-guide/platform/agent-builder/publishing-agents/agents-in-slack) guide +3. Invite a subset of beta testers to the channel +4. Test various queries and scenarios with your beta group +5. Iterate on your agent's configuration based on feedback +6. Once satisfied, publish to your production channels -How and when your agent responds will depend on what queries you have asked it to respond to in the "Publish" tab and your other configuration settings. +This approach lets you refine your agent's behavior, routing settings, and responses in a controlled environment before exposing it to your entire organization. -### **Example 1: Respond to all messages** +For details on how agents respond in Slack channels and routing configuration options, see [Agents in Slack](/user-guide/platform/agent-builder/publishing-agents/agents-in-slack). -If you have set your agent to respond to “all messages", it will respond to all queries, regardless of whether the question falls within its area of expertise. Here we set Credal’s Information Security Copilot to respond to all messages: +## Iterating on Your Agent's Instructions -![slack_all_messages_query_example.png](/docs/assets/copilots/slack_all_messages_query_example.png) +As you test your agent, you'll likely need to refine its instructions (system prompt) to improve response quality. Pay attention to: -![slack_out_of_scope_response.png](/docs/assets/copilots/slack_out_of_scope_response.png) +- Whether the agent is answering questions accurately +- If the tone and style match your expectations +- How well it handles edge cases or out-of-scope questions +- Whether it's using the right data sources and actions -> _Because this agent is set to be precise, when asked a question outside its expertise it responds that it does not have the context to answer. If this agent was set to creative, it would rely on its general knowledge to set out the rules of pickleball._ +Use the feedback from your testing to iterate on the agent's background prompt, adjusting its role, goals, output format, and specific instructions. -### **Example 2: Respond to relevant messages** +For a comprehensive guide on writing and optimizing agent instructions, see [Writing Instructions](/user-guide/platform/agent-builder/configuration/writing-instructions). -If you have set your agent to respond to only a selection of messages, such as all relevant messages, or those matching a filter, the agent will only respond to queries that match that criteria. - -Here, we set Credal’s Information Security Copilot to only respond to relevant messages: - -![*Here, the Agent responded as the question fell within its scope—questions on information security at Credal.*](/docs/assets/copilots/slack_relevant_query_response.png) - -_Here, the Agent responded as the question fell within its scope—questions on information security at Credal._ - -![*This question fell outside of the Agent's scope, and it did not respond.*](/docs/assets/copilots/slack_ignored_query_example.png) - -_This question fell outside of the Agent's scope, and it did not respond._ - -### c. Creating effective prompts - -A well-engineered prompt can yield better results from your agent. Some strategies to keep in mind as you write your prompts are: - -- Use clear and direct language. -- Leverage keywords or naming conventions in your data set to point your agent to the right information (particularly if you know what documents you want it to look at). -- Focus your prompt on the most complex or important part of the query. -- Use iterative or sequential prompting by structuring your prompts in a logical sequence, especially when trying to explore a topic in depth. Start with a broad prompt and then follow up with more detailed questions. This not only helps in building context but also in creating a framework for the AI to understand the progression of the inquiry. - -For a more in-depth look at prompt optimization, see this [blog post](https://www.credal.ai/blog/takeaways-from-using-llms-on-corporate-documents) or the [Writing Instructions](/user-guide/platform/agent-builder/configuration/writing-instructions) guide. +To evaluate prompt changes at scale and systematically measure their impact on agent performance, use [Evaluations](/user-guide/platform/agent-builder/evaluating-your-agent). This allows you to test different prompt variations against a set of test cases and compare results objectively. --- diff --git a/fern/docs/pages/platform/agents/configure-steps/agent-collaboration.mdx b/fern/docs/pages/platform/agents/configure-steps/agent-collaboration.mdx index ac2e3728..7833fa10 100644 --- a/fern/docs/pages/platform/agents/configure-steps/agent-collaboration.mdx +++ b/fern/docs/pages/platform/agents/configure-steps/agent-collaboration.mdx @@ -1,52 +1,164 @@ -_This is a comprehensive guide for configuring agents that work together. If you're just getting started, check out [Getting Started With AI Agents](/user-guide/getting-started/quickstart)._ +## Summary -Agents allow users to create dedicated assistants that can be focused on specific use cases and tasks. With agents calling other agents, you can open up the space for more complex queries and responses. +Agent collaboration enables you to build sophisticated AI systems by combining multiple specialized agents. Instead of creating one complex agent that tries to do everything, you can create an **orchestrator agent** that intelligently delegates tasks to specialized **subagents**—each focused on a specific domain or function. -This feature allows agents to discover other agents, so that one agent can decide to call another to help answer a query. This can be useful when you have a complex query that requires multiple steps to answer, or when you want to combine the expertise of multiple agents to provide a more comprehensive response. +This approach offers several key benefits: -## 1. **Setting your agent as Discoverable** +- **Modularity** – Build and maintain specialized agents independently, making updates easier +- **Expertise** – Each subagent can be optimized for its specific task with tailored instructions and data sources +- **Scalability** – Add new capabilities by creating new subagents without modifying existing ones +- **Clarity** – Simpler, more focused agent configurations that are easier to understand and debug -_To allow your agent to be called by other agents, you need to change its discoverability settings._ +## The Orchestrator-Subagent Model -To get started: +The orchestrator-subagent pattern works like a team with a manager and specialists: -1. On your left sidebar, Select “Agents”: +- **Orchestrator Agent** – The "manager" that receives user requests, understands the overall goal, and decides which subagent(s) to call to fulfill the request +- **Subagents** – Specialized "experts" that handle specific tasks like querying databases, managing tickets, analyzing documents, or interacting with particular systems -![agent-left-nav](/docs/assets/agents/create-steps/agent-left-nav.png) +When a user sends a query to the orchestrator, it analyzes the request and automatically routes it to the appropriate subagent(s) based on their descriptions and capabilities. The orchestrator can even call multiple subagents in sequence or parallel to handle complex, multi-step workflows. -2. Select the agent you want to set as discoverable by clicking it. +## Creating an Orchestrator Agent -![agent-published.png](/docs/assets/agents/create-steps/agent-published.png) +Let's walk through setting up an orchestrator agent that can delegate to specialized subagents. -3. Navigate to the [Publish tab](/user-guide/platform/agent-builder/publishing-agents/overview) and make the Agent callable. +### Step 1: Create Your Orchestrator -![agent-collaboration-deploy.png](/docs/assets/agents/agent-collaboration-deploy.png) +1. Navigate to **Agents** from the left sidebar and click **Create New Agent** -Great! Now your agent is discoverable by other agents! +2. Give your orchestrator a clear name and description that reflects its role as a coordinator + - **Example Name**: "IT Support Orchestrator" + - **Example Description**: "Routes IT support requests to specialized agents for hardware, software, and access management" -4. You can either make the Agent visible to all other Agents (only possible by an admin), or you can add an eligible caller to provide access on a per-Agent level. User level access coming soon. Today, you can restrict user level access to an action by deploying the Agent to a private Slack channel or creating a user group (contact support@credal.ai to set this up). +3. In the **Instructions** section, write a system prompt that explains the orchestrator's role: +``` +You are an IT support orchestrator. Your job is to understand user requests and +delegate them to the appropriate specialized agent: -## 2. **Connecting to an Agent** +- For hardware issues (laptops, monitors, peripherals), call the Hardware Support agent +- For software problems (applications, licenses, installations), call the Software Support agent +- For access requests (permissions, accounts, credentials), call the Access Management agent -Now that you have some discoverable agents, you can connect other agents to it. To do this, let's connect an agent to the one we just made discoverable: +Always explain which specialist you're consulting and why. +``` -1. Navigate to the Configuration tab of the agent you want calling other agents and scroll down to [Actions](/user-guide/platform/agent-builder/configuration/add-connectors/actions). +4. **Important**: In the orchestrator's configuration, you typically don't need to add data sources. The orchestrator's job is to route requests, not answer them directly. The subagents will have their own specialized data sources. If there is a data source that would be helpful to routing, feel free to include that. -![agent_actions_tab](/docs/assets/copilots/copilot-collaboration/copilot-actions.png) +### Step 2: Connect Subagents -2. Search for the agent you want to connect to, the action will be called `[agent name]`. +Now you'll add subagents that your orchestrator can call. You have two options: select existing agents or create new ones. -![agent_connection_via_actions](/docs/assets/copilots/copilot-collaboration/copilot-add-agent.png) +1. In your orchestrator's **Configuration** tab, scroll to the **Subagents** section -That's it! +2. Click **Add Subagent** to search through available agents or create a new one -## 3. **Using One Agent to Call Another** +#### Option A: Select an Existing Subagent -After the connection handshake has occurred, you are now able to call that agent from your own. +If you already have specialized agents set up or another team has made their agent discoverable: -Requests will automatically be routed to the available agent based on the exact instructions and documentation given to your orchestrator as well as the descriptions of the callee agents. +1. In the search bar, look for existing agents by name or description + ![agent_connection_via_actions](/docs/assets/copilots/copilot-collaboration/copilot-add-agent.png) -## 4. Contact Support +2. Select the agent(s) you want to connect and click **Add** + +3. The subagent will now appear in your orchestrator's subagents list + ![agent_actions_tab](/docs/assets/copilots/copilot-collaboration/copilot-actions.png) + +**Note**: If you don't see the agent you're looking for, it may not be discoverable yet. See the "Requesting Access to Use Someone Else's Agent" section below. + +#### Option B: Create a New Subagent + +If no existing agent fits your needs, you can create a new one directly: + +1. In the **Subagents** section, click **Create New Subagent** + +2. Configure your subagent with: + - **Name**: Descriptive name for the specialty (e.g., "Hardware Support Agent") + - **Description**: Clear explanation of what this agent handles—this description helps the orchestrator decide when to call it + - **Instructions**: Detailed system prompt for handling its specific domain + - **Data Sources**: Connect relevant data sources for this specialty + - **Actions**: Add any actions this subagent needs to perform its tasks + +3. Click **Save** to create the subagent + +The subagent is automatically connected to your orchestrator—no need to publish it separately. Publishing is only required if you want to make your agent discoverable to other teams (see "Making Your Agent Discoverable" below). + +### Step 3: Test Your Orchestrator + +After connecting your subagents: + +1. Go to the orchestrator's **Test** tab + +2. Try queries that should route to different subagents: + - "My laptop screen is flickering" → should call Hardware Support + - "I need access to the finance folder" → should call Access Management + - "Excel keeps crashing" → should call Software Support + +3. Observe which subagent the orchestrator calls and verify it's making the right routing decisions + +The orchestrator will automatically select the appropriate subagent based on your instructions and the subagent descriptions. You can refine the orchestrator's instructions or subagent descriptions if routing isn't working as expected. + + +### Requesting Access to Use Someone Else's Agent + +If you want to use another team's agent as a subagent in your orchestrator, but don't see it available when searching in the Subagents section: + +1. **Find the Agent Owner** + - Ask your AI platform admin if an agent exists or who the owner is for a particular agent + +2. **Request Access** + - Contact the agent owner directly (via Slack, email, etc.) + - Explain your use case and why you need their agent as a subagent + - Provide the name of your orchestrator agent that needs access + +3. **Agent Owner Grants Access** + - The agent owner should make their agent discoverable by following the instructions in "Publishing Your Agent for Discovery" below + +4. **Connect the Agent** + - Once the agent is made discoverable, return to your orchestrator's **Configuration** tab + - Go to the **Subagents** section and search for the newly-accessible agent + - Select it and click **Add** to connect it to your orchestrator + + +### Publishing Your Agent for Discovery + +If you've built a specialized agent that other teams or orchestrators should be able to use, you need to make it discoverable. This allows other agent builders to find and connect to your agent as a subagent. + + +1. Open the agent you want to make available to others + +2. Navigate to the **Publish** tab + +3. Enable the **Callable** toggle to make your agent discoverable + ![agent-collaboration-deploy.png](/docs/assets/agents/agent-collaboration-deploy.png) + +4. Configure who can discover and use your agent: + + **Option 1: All Agents (Admin Only)** + - Makes your agent available to any orchestrator in your organization + - Only organization admins can select this option + - Best for widely-useful agents like "Document Search" or "Data Analysis" + + **Option 2: Specific Agents** + - Add individual orchestrator agents as eligible callers + - Provides granular control over which orchestrators can use your subagent + - Best for specialized agents that should only be used in certain contexts + +5. Write a clear **Description** for your agent—this is what orchestrators will see when deciding whether to call your agent. Include: + - What tasks or questions this agent handles + - What data sources or systems it has access to + - Any limitations or special considerations + + +## Best Practices + +- **Clear Descriptions**: Write detailed descriptions for each subagent so the orchestrator knows when to call them +- **Focused Subagents**: Keep each subagent specialized—don't try to make them do too much +- **Orchestrator Instructions**: Give your orchestrator clear routing logic and examples in its system prompt +- **Iterative Testing**: Test various query types to ensure proper routing, and refine descriptions as needed + + +## Contact Support For questions or support, contact support@credal.ai. diff --git a/fern/docs/pages/platform/agents/configure-steps/connectors/data.mdx b/fern/docs/pages/platform/agents/configure-steps/connectors/data.mdx index d1fb79c3..6ca04d9e 100644 --- a/fern/docs/pages/platform/agents/configure-steps/connectors/data.mdx +++ b/fern/docs/pages/platform/agents/configure-steps/connectors/data.mdx @@ -18,16 +18,14 @@ If none have been attached yet it will look like: If data sources have already been attached you'll see them listed by connector ![attached-data-sources.png](/docs/assets/agents/create-steps/attached-data-sources.png) - **2. Attaching Sources** -You can either select a synced source, sync a URL, or upload your own files. +You can either select a synced source, sync a URL, or upload your own files. If you want to attach a [document collection](/user-guide/platform/agent-builder/configuration/add-connectors/document-collections), this will be under select a source. ![copilot_data_sources.png](/docs/assets/copilots/copilot_data_sources.png) - **2. Bookmarking Data** By bookmarking (or pinning) data sources, you can force your agent to refer to certain sources for _every_ user query, as opposed to just prioritizing the attached data. You should use this for documents that will relate to most queries you expect your agent to address. If you have a document that you always want your agent to refer to, put it here. This could include answers to FAQs or a sales playbook. As pinned sources will be read in their entirety every time a user asks a question, they should only be used for a limited amount of high quality data to avoid overwhelming the AI with too much data on every question. diff --git a/fern/docs/pages/platform/agents/configure-steps/connectors/document-collections.mdx b/fern/docs/pages/platform/agents/configure-steps/connectors/document-collections.mdx index 08a78b52..0a5f4580 100644 --- a/fern/docs/pages/platform/agents/configure-steps/connectors/document-collections.mdx +++ b/fern/docs/pages/platform/agents/configure-steps/connectors/document-collections.mdx @@ -1,9 +1,8 @@ -# Data Processing Tools +# Document Collections ## Summary -Welcome to the feature set for our platform! Below you'll find two key capabilities designed to enhance your workflow with document collections. -Whether you want to ask every document collection about a list of key topics based on your query, or filter semi-structured documents with Smart Filters, there are tools you can use. +Document Collections let you organize files, documents, and web pages into searchable knowledge bases for your AI agents. Once connected to an agent, collections enable it to search and reference your content when answering questions—with two powerful search modes: **Deep Summarize** for comprehensive cross-document insights, and **Smart Filters** for precision filtering using metadata. ### Creating Document collections @@ -26,28 +25,28 @@ You'll be taken to your new collection's configuration page automatically. After creation, your collection has four tabs: 1. Configure -This is where you set up your collection's content and settings: -Metadata -— Edit the name and description of your collection at any time. -Smart Filtering Schema -— Define custom metadata fields for your documents (e.g., department, document type, date). This enables more precise filtering when your agent searches the collection. -Data - — Add content to your collection (see below). -Performance -— If available, enable dedicated search capacity for faster results on large collections. + This is where you set up your collection's content and settings: + Metadata + — Edit the name and description of your collection at any time. + Smart Filtering Schema + — Define custom metadata fields for your documents (e.g., department, document type, date). This enables more precise filtering when your agent searches the collection. + Data + — Add content to your collection (see below). + Performance + — If available, enable dedicated search capacity for faster results on large collections. 2. API -View your collection's unique ID and manage API keys for programmatic access. This tab also links to API documentation if your developers need to integrate with the collection. - - - + View your collection's unique ID and manage API keys for programmatic access. This tab also links to API documentation if your developers need to integrate with the collection. + + + + 3. Preview Semantic Search -Test your collection by running sample searches. This helps you verify that the right documents are being found before connecting the collection to an agent. + Test your collection by running sample searches. This helps you verify that the right documents are being found before connecting the collection to an agent. 4. Monitor -View a log of searches that have been run against your collection. - + View a log of searches that have been run against your collection. #### Adding Content to Your Collection @@ -56,11 +55,12 @@ From the Configure tab, scroll to the Data section. You have three main ways to **Upload new files** — Upload documents directly from your computer. **Public Webpages** — Click the Public Webpages button to add content from publicly accessible web URLs. - - - + + + #### Sharing Your Collection + Click the Share button at the top of your collection's page to manage who has access: Add collaborators by searching for teammates within your organization. Remove collaborators by clicking the remove icon next to their name. @@ -69,7 +69,9 @@ Organization admins automatically have access to all collections. > Note: Every collection must have at least one collaborator. You cannot remove the last remaining collaborator. #### Connecting a Collection to an Agent + To use your collection as a knowledge source for an AI agent: + - Open the agent you want to configure in the Agent Builder. - Go to the Data Sources section (or Connectors, depending on your interface). - Select your document collection as a data source. @@ -77,6 +79,7 @@ To use your collection as a knowledge source for an AI agent: The agent will now be able to search your collection's content when answering user questions, respecting each user's document-level permissions. #### Deleting a Collection + - Open the collection you want to delete. - Click the trash icon button at the top of the page. - Confirm the deletion in the dialog. diff --git a/fern/docs/pages/platform/agents/configure-steps/connectors/overview.mdx b/fern/docs/pages/platform/agents/configure-steps/connectors/overview.mdx index f3960860..ecd8a968 100644 --- a/fern/docs/pages/platform/agents/configure-steps/connectors/overview.mdx +++ b/fern/docs/pages/platform/agents/configure-steps/connectors/overview.mdx @@ -5,19 +5,23 @@ Connectors allow you to integrate the systems you use in your day-to-day work wi ## What You Can Connect - **[Indexed Data](/user-guide/platform/agent-builder/configuration/add-connectors/data)** – Sync and search your data sources + - Best for fast semantic responses - Data is synced nightly - **[Actions](/user-guide/platform/agent-builder/configuration/add-connectors/actions)** – Dynamically interact with your connected systems + - Best for live data extraction and writing to your systems in real time - Supports human-in-the-loop workflows - May have slightly higher latency - **[MCP Servers](/user-guide/platform/mcp-servers/overview)** – Integrate Model Context Protocol servers + - Connect third-party MCP servers instantly - **[Build your own custom MCP servers](/user-guide/platform/mcp-servers/mcp-server-builder/create-new-server)** directly in Credal on top of your data—define custom parameters, descriptions, and logic to tailor exactly how agents interact with your systems - **[Document Collections](/user-guide/platform/agent-builder/configuration/add-connectors/document-collections)** – Curated sets of data for specific use cases + - Curate data for a particular function - Use AI entity extraction to enable granular filtering by date ranges, account names, concepts, and more diff --git a/fern/docs/pages/platform/agents/configure-steps/connectors/saas.mdx b/fern/docs/pages/platform/agents/configure-steps/connectors/saas.mdx index a24cc9a5..d25b2387 100644 --- a/fern/docs/pages/platform/agents/configure-steps/connectors/saas.mdx +++ b/fern/docs/pages/platform/agents/configure-steps/connectors/saas.mdx @@ -5,33 +5,33 @@ title: Actions In this section, you can attach one or more **published actions** to the agent. Actions allow agents to dynamically connect to external systems or trigger workflows based on user input. - Click on **Add Connector** to view all the action providers available to you -![no-attached-actions.png](/docs/assets/actions/no-attached-actions.png) + ![no-attached-actions.png](/docs/assets/actions/no-attached-actions.png) - Use the dropdown to search for an action used within a particular tool/integration -![action-provider-selection.png](/docs/assets/actions/action-provider-selection.png) + ![action-provider-selection.png](/docs/assets/actions/action-provider-selection.png) - Select one or more **read** or **write** published actions - - Read actions will query data and retrieve it for the agent to consume - - Write actions will take real world action and accomplish tasks within tools - - Once all the actions are selected click the "Add" button in the bottom right + + - Read actions will query data and retrieve it for the agent to consume + - Write actions will take real world action and accomplish tasks within tools + - Once all the actions are selected click the "Add" button in the bottom right ![action-selection.png](/docs/assets/actions/action-selection.png) - You'll see it show up in the connectors section of the agent configuration -![attached-actions.png](/docs/assets/actions/attached-actions.png) + ![attached-actions.png](/docs/assets/actions/attached-actions.png) - This is where you can further configure them - - Click on the pencil icon to edit and personalize them + + - Click on the pencil icon to edit and personalize them ![action-details.png](/docs/assets/actions/action-details.png) -- When editing the action you can scroll down to modify the parameters of the action - ![action-parameters.png](/docs/assets/actions/action-parameters.png) +- When editing the action you can scroll down to modify the parameters of the action. Learn more about [customizing action parameters](/user-guide/platform/governed-actions/action-parameters). + ![action-parameters.png](/docs/assets/actions/action-parameters.png) - If you scroll even further you'll be able to see the optional human in the loop settings. This setting makes sure that the agent asks for permission every time it needs to take this action. It will wait for the user to approve usage of the action before proceeding. - ![action-governance.png](/docs/assets/actions/action-governance.png) + ![action-governance.png](/docs/assets/actions/action-governance.png) - Once added you'll notice the small orange hammer icon on the action - ![action-with-gov-icon.png](/docs/assets/actions/action-with-gov-icon.png) - + ![action-with-gov-icon.png](/docs/assets/actions/action-with-gov-icon.png) Attaching the right actions ensures that your agent can not only respond to questions but also execute real-world tasks across integrated systems. - diff --git a/fern/docs/pages/platform/agents/configure-steps/prompt.mdx b/fern/docs/pages/platform/agents/configure-steps/prompt.mdx index 473aa9c3..0e93a69c 100644 --- a/fern/docs/pages/platform/agents/configure-steps/prompt.mdx +++ b/fern/docs/pages/platform/agents/configure-steps/prompt.mdx @@ -124,7 +124,6 @@ information at a specific point, or look at specific data before making a decisi Craft detailed instructions that anticipate potential pitfalls and standard operational procedures. Your Agent will only know as much as you tell it. Noticing that the responses are too long? Specify response length! Think there's too much fluff in the language? Ask for concise language. - ## Provided Prompt Snippets Credal has prompt snippets right under the background prompt in the Agent Configuration tab. This is a great way to drop phrases into the background prompt that can help improve agents. This can take the form diff --git a/fern/docs/pages/platform/agents/deployment/agents-and-mcp-servers.mdx b/fern/docs/pages/platform/agents/deployment/agents-and-mcp-servers.mdx new file mode 100644 index 00000000..ead18844 --- /dev/null +++ b/fern/docs/pages/platform/agents/deployment/agents-and-mcp-servers.mdx @@ -0,0 +1,54 @@ +# Agents and MCP Servers + +Agents can be made available as tools within MCP servers, allowing MCP servers to leverage agent capabilities when called by other agents. + +## Publishing Agents for Use in MCP Servers + +When you publish an agent to be callable, it becomes available as a tool that MCP servers can use. This enables MCP servers to orchestrate complex workflows by calling specialized agents. + +### Making Your Agent Available + +1. Navigate to your agent's **Publish** tab + +2. Enable the **Callable** toggle in the Agents and MCP Servers section to make your agent available as a tool + + ![agent-is-discoverable.png](/docs/assets/agents/deployment/agent-is-discoverable.png) + +3. Configure access permissions: + + **Option 1: All Agents (Admin Only)** + - Makes your agent available to any MCP server or orchestrator in your organization + - Only organization admins can select this option + - Best for widely-useful agents like document search or data analysis + + **Option 2: Specific Callers** + - Add specific MCP servers or agents as eligible callers + - Provides granular control over which systems can call your agent + - Best for specialized or sensitive agents + +4. Write a clear **Description** explaining: + - What tasks or questions this agent handles + - What data sources or systems it has access to + - Any limitations or special considerations + - Example use cases for when to call this agent + +### How MCP Servers Use Published Agents + +Once an agent is published as callable: + +1. MCP server builders can see the agent in their available tools list +2. They can add the agent as a tool in their MCP server configuration +3. When the MCP server is called by another agent, it can invoke your published agent as needed +4. The agent executes the task and returns results to the MCP server, which then returns them to the calling agent + +## Agent Collaboration + +For information about making agents discoverable to other agents (orchestrator-subagent pattern), see [Agent Collaboration](/user-guide/platform/agent-builder/configuration/agent-collaboration). + +## Best Practices + +- **Clear Descriptions**: Write detailed descriptions so MCP server builders understand when and how to use your agent +- **Focused Purpose**: Keep agents specialized—each agent should do one thing well +- **Appropriate Access**: Use specific caller access when you need fine-grained control +- **Test Integration**: After publishing, test your agent when called through an MCP server to ensure it behaves as expected +- **Document Parameters**: If your agent expects specific input formats, document them clearly in the description diff --git a/fern/docs/pages/platform/agents/deployment/slack-deployment.mdx b/fern/docs/pages/platform/agents/deployment/slack-deployment.mdx index 89567650..b19602b3 100644 --- a/fern/docs/pages/platform/agents/deployment/slack-deployment.mdx +++ b/fern/docs/pages/platform/agents/deployment/slack-deployment.mdx @@ -98,6 +98,34 @@ Custom bots and the Credal bot behave separately, so if you have both a Custom b --- +## Examples: How Routing Works in Practice + +### Example 1: Respond to All Messages + +If you have set your agent to respond to "all messages", it will respond to all queries, regardless of whether the question falls within its area of expertise. Here we set Credal's Information Security Copilot to respond to all messages: + +![slack_all_messages_query_example.png](/docs/assets/copilots/slack_all_messages_query_example.png) + +![slack_out_of_scope_response.png](/docs/assets/copilots/slack_out_of_scope_response.png) + +> _Because this agent is set to be precise, when asked a question outside its expertise it responds that it does not have the context to answer. If this agent was set to creative, it would rely on its general knowledge to set out the rules of pickleball._ + +### Example 2: Respond to Relevant Messages + +If you have set your agent to respond to only a selection of messages, such as all relevant messages, or those matching a filter, the agent will only respond to queries that match that criteria. + +Here, we set Credal's Information Security Copilot to only respond to relevant messages: + +![*Here, the Agent responded as the question fell within its scope—questions on information security at Credal.*](/docs/assets/copilots/slack_relevant_query_response.png) + +_Here, the Agent responded as the question fell within its scope—questions on information security at Credal._ + +![*This question fell outside of the Agent's scope, and it did not respond.*](/docs/assets/copilots/slack_ignored_query_example.png) + +_This question fell outside of the Agent's scope, and it did not respond._ + +--- + ## Advanced Settings By enabling the advanced settings option, the user will see additional options. diff --git a/fern/docs/pages/platform/integrations/data-sources.mdx b/fern/docs/pages/platform/integrations/data-sources.mdx deleted file mode 100644 index 948cab20..00000000 --- a/fern/docs/pages/platform/integrations/data-sources.mdx +++ /dev/null @@ -1,30 +0,0 @@ -## Native Integrations - -Credal integrates with many different data sources and action providers. The table below provides the status of each of the current integrations and what functionality is currently available. -Some of these integrations require an admin to enable them as specified below—as an admin, they are configurable at https://app.credal.ai/admin/data-sources. - -| Data Source | Permissions aware data syncing | Actions Support | -| ------------------------------- | --------------------------------------------------------------------------------- | -------------------- | -| Slack | Fully supported via one time admin login | One-time Admin Login | -| Confluence | Fully supported via one time admin login | Per-user Login | -| Google Drive/Docs/Sheets/Slides | Fully supported via per user login | Per-user Login | -| Microsoft SharePoint, OneDrive | Fully supported via per user login | Per-user Login | -| Box | Fully supported via per user login | Per-user Login | -| Salesforce | Fully supported via one time admin login | Per-user Login | -| Zendesk | Fully supported via one time admin login | Per-user Login | -| Intercom | Fully supported via one time admin login | Per-user Login | -| MongoDB | Fully supported via one time admin login (perms not applicable) | One-time Admin Login | -| Web Pages | Fully supported (perms not applicable) | Preconfigured | -| Notion | Public Within Your Organization via one time admin login (Notion API Limitations) | Per-user OAuth | -| Asana | Fully supported via one time admin login | Per-user Login | -| Snowflake | Fully supported via one time admin login | One-time Admin Login | -| Jira | Fully supported via one time admin login | Per-user Login | -| Looker | Fully supported via one time admin login | One-time Admin Login | -| Github | Fully supported via per user login | Per-user Login | -| Gong | Fully supported via per user login (Beta) | Per-user Login | -| Hubspot | Fully supported via per user login (Beta) | Per-user Login | -| Ashby | Fully supported via per user login (Beta) | Per-user Login | -| Workday | Fully supported via per user login (Beta) | Per-user Login | -| Jamf Pro | Fully supported via per user login (Alpha) | Per-user Login | - -If you don't yet see the data source you're looking for, check out [Bring Your Own Custom Data Sources](/user-guide/platform/integrations/bring-your-own-custom-data-sources) for options to integrate unsupported systems. You can also use [Smart Filtering](/user-guide/platform/integrations/metadata-and-smart-filtering/smart-filtering-beta) to filter across any of the synced sources above using metadata fields. diff --git a/fern/docs/pages/platform/mcp-servers/publishing-server.mdx b/fern/docs/pages/platform/mcp-servers/publishing-server.mdx index 19e25bc5..af01aeef 100644 --- a/fern/docs/pages/platform/mcp-servers/publishing-server.mdx +++ b/fern/docs/pages/platform/mcp-servers/publishing-server.mdx @@ -28,7 +28,10 @@ Here is an example of how you can directly publish to all users in ChatGPT ### For Other MCP Clients -For all other surfaces, such as Cursor, Windsurf, or any custom MCP client, each server must be connected individually by copying the server's direct URL and adding it to the client manually. +For all other surfaces, such as Lovable, Cursor, Windsurf, or any custom MCP client, each user must connect the URL individually: + +- **Lovable**: `https://app.credal.ai/api/user/lovable/mcp` — this single URL gives Lovable access to all your published MCP servers. +- **Other clients (e.g., Cursor, Windsurf)**: Copy each server's direct URL from the Publish tab and add it to the client manually. ## Access Control diff --git a/fern/docs/pages/quickstart.mdx b/fern/docs/pages/quickstart.mdx index ae7250df..1253fac2 100644 --- a/fern/docs/pages/quickstart.mdx +++ b/fern/docs/pages/quickstart.mdx @@ -97,7 +97,7 @@ _--------- End Context ---------_ 5. **Data** - The data you provide will be the source of truth for your agent. Your agent will rely on this data (along with the prompt and Q&A pairs) to answer user queries. You should provide your agent with sufficient data relevant to its area of expertise. The data you attach is the most important source of knowledge for the agent. + The data you provide will be the source of truth for your agent. Your agent will rely on this data (along with the prompt and Q&A pairs) to answer user queries. You should provide your agent with sufficient data relevant to its area of expertise. The data you attach is the most important source of knowledge for the agent. There are two ways you can provide data to the agent: @@ -114,7 +114,7 @@ _--------- End Context ---------_ Alternatively, you may want to allow the user to attach one or more source documents at the time of their question. For example, you may create an agent for generating meeting notes based on a transcript, and you want to allow your user to provide a different transcript each time they use the agent. This can be accomplished by creating a user input. **Advanced Settings** - There are some advanced settings you can use to control how your agent searches through the attached data. For most use cases, you should leave the default settings. + There are some advanced settings you can use to control how your agent searches through the attached data. For most use cases, you should leave the default settings. For advanced use cases, you can specify how many of the most relevant chunks (a chunk is roughly 2-3 sentences) the agent should read. You can also set a relevancy score cutoff. diff --git a/fern/docs/pages/tutorials/slack-workflows/slack-workflows.mdx b/fern/docs/pages/tutorials/slack-workflows/slack-workflows.mdx index 57f3d398..fa9b11a2 100644 --- a/fern/docs/pages/tutorials/slack-workflows/slack-workflows.mdx +++ b/fern/docs/pages/tutorials/slack-workflows/slack-workflows.mdx @@ -7,7 +7,13 @@ Credal now supports triggering agents via Slack Workflows — on a schedule or b src="https://www.loom.com/embed/4515a790e2c84bab995a335b821cfd41" frameBorder="0" allowFullScreen - style={{ position: "absolute", top: 0, left: 0, width: "100%", height: "100%" }} + style={{ + position: "absolute", + top: 0, + left: 0, + width: "100%", + height: "100%", + }} >
@@ -22,7 +28,9 @@ Before setting up a Slack Workflow trigger, your agent must already be published In your agent's **Publish** settings, go to **Slack Channels**, enable **Talk to your agent in Slack**, and add the agent to the channel where your Slack Workflow will post. - Make sure the body text of your Slack Workflow message is structured to trigger the agent correctly based on your agent's routing settings (e.g. matching a filter, or triggering on all messages). + Make sure the body text of your Slack Workflow message is structured to + trigger the agent correctly based on your agent's routing settings (e.g. + matching a filter, or triggering on all messages). ### Step 2: Copy your Workflow ID from Slack diff --git a/fern/docs/user-guide.yml b/fern/docs/user-guide.yml index 7b02d314..487a89a3 100644 --- a/fern/docs/user-guide.yml +++ b/fern/docs/user-guide.yml @@ -66,10 +66,20 @@ navigation: path: ./pages/platform/agents/configure-steps/connectors/data.mdx - page: Actions path: ./pages/platform/agents/configure-steps/connectors/saas.mdx - - page: Document Collections - path: ./pages/platform/agents/configure-steps/connectors/document-collections.mdx - # - page: Credal MCP Servers - # path: ./pages/platform/agents/configure-steps/connectors/mcp-servers.mdx + - section: Document Collections + contents: + - page: Overview + path: ./pages/platform/agents/configure-steps/connectors/document-collections.mdx + - page: Smart Filtering (beta) + path: ./pages/platform/integrations/metadata-and-smart-filtering/smart-filtering.mdx + - page: Collection Schemas + path: ./pages/platform/integrations/metadata-and-smart-filtering/collection-schemas.mdx + - page: AI Entity Extraction (beta) + path: ./pages/platform/integrations/metadata-and-smart-filtering/ai-entity-extraction.mdx + - page: Bring Your Own Custom Data Sources + path: ./pages/platform/integrations/bring-your-own-data.mdx + - page: Credal MCP Servers + path: ./pages/platform/agents/configure-steps/connectors/mcp-servers.mdx - page: Agent Collaboration path: ./pages/platform/agents/configure-steps/agent-collaboration.mdx - page: Memory and Feedback @@ -90,6 +100,8 @@ navigation: path: ./pages/tutorials/slack-workflows/slack-workflows.mdx - page: API Deployment path: ./pages/platform/agents/deployment/api-deployment.mdx + - page: Agents and MCP Servers + path: ./pages/platform/agents/deployment/agents-and-mcp-servers.mdx - section: Governed Actions contents: - page: Overview @@ -129,21 +141,6 @@ navigation: - page: Bulk Analysis # Soon to be turned into workflows, but the credal way :) path: ./pages/platform/bulk-analysis.mdx - - section: Integrations - # Soon to be renamed Document Collections - contents: - - page: Data Sources / Action Providers - path: ./pages/platform/integrations/data-sources.mdx - - section: Metadata and Smart Filtering - contents: - - page: Smart Filtering (beta) - path: ./pages/platform/integrations/metadata-and-smart-filtering/smart-filtering.mdx - - page: Collection Schemas - path: ./pages/platform/integrations/metadata-and-smart-filtering/collection-schemas.mdx - - page: AI Entity Extraction (beta) - path: ./pages/platform/integrations/metadata-and-smart-filtering/ai-entity-extraction.mdx - - page: Bring Your Own Custom Data Sources - path: ./pages/platform/integrations/bring-your-own-data.mdx - section: Administration # Soon to be renamed Admin Control Center contents: