mirror of
https://github.com/rowboatlabs/rowboat.git
synced 2026-06-06 19:35:44 +02:00
Fix/prebuilt cards updates (#263)
* updates to the twitter prebuilt cards * update the default fallback model from gpt-4o to gpt-4.1
This commit is contained in:
parent
1a763dcbd9
commit
893ad87268
10 changed files with 27 additions and 44 deletions
|
|
@ -83,7 +83,7 @@ Name of the agent
|
|||
|
||||
#### Behaviour
|
||||
- **Agent Type**: Choose from `conversation`, `internal`, or `pipeline`
|
||||
- **Model**: Select the LLM model (GPT-4o, GPT-4o-mini, google/gemini-2.5-flash, etc.)
|
||||
- **Model**: Select the LLM model (GPT-4.1, GPT-4o, google/gemini-2.5-flash, etc.)
|
||||
|
||||
#### RAG
|
||||
- **Add Source**: Connect data sources to enable RAG capabilities for the agent
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ However, you can also configure custom LLM providers (e.g. LiteLLM, OpenRouter)
|
|||
|
||||
```bash
|
||||
export PROVIDER_DEFAULT_MODEL=claude-3-7-sonnet-latest
|
||||
export PROVIDER_COPILOT_MODEL=gpt-4o
|
||||
export PROVIDER_COPILOT_MODEL=gpt-4.1
|
||||
```
|
||||
|
||||
**Notes:**
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ from db import write_test_result, get_scenario_by_id
|
|||
from rowboat import Client, StatefulChat
|
||||
|
||||
openai_client = OpenAI()
|
||||
MODEL_NAME = "gpt-4o"
|
||||
MODEL_NAME = "gpt-4.1"
|
||||
ROWBOAT_API_HOST = os.environ.get("ROWBOAT_API_HOST", "http://127.0.0.1:3000").strip()
|
||||
|
||||
async def simulate_simulation(
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ export function validateConfigChanges(configType: string, configChanges: Record<
|
|||
instructions: 'test',
|
||||
prompts: [],
|
||||
tools: [],
|
||||
model: 'gpt-4o',
|
||||
model: 'gpt-4.1',
|
||||
ragReturnType: 'chunks',
|
||||
ragK: 10,
|
||||
connectedAgents: [],
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ import interviewScheduler from './interview-scheduler.json';
|
|||
import meetingPrepAssistant from './meeting-prep-assistant.json';
|
||||
import redditOnSlack from './reddit-on-slack.json';
|
||||
import twitterSentiment from './twitter-sentiment.json';
|
||||
import tweetWithGeneratedImage from './tweet-with-generated-image.json';
|
||||
import tweetAssistant from './tweet-assistant.json';
|
||||
import customerSupport from './customer-support.json';
|
||||
import githubIssueToSlack from './github-issue-to-slack.json';
|
||||
import githubPrToSlack from './github-pr-to-slack.json';
|
||||
|
|
@ -19,7 +19,7 @@ export const prebuiltTemplates = {
|
|||
'Meeting Prep Assistant': meetingPrepAssistant,
|
||||
'Reddit on Slack': redditOnSlack,
|
||||
'Twitter Sentiment': twitterSentiment,
|
||||
'Tweet with generated image': tweetWithGeneratedImage,
|
||||
'Tweet Assistant': tweetAssistant,
|
||||
'Customer Support': customerSupport,
|
||||
'GitHub Issue to Slack': githubIssueToSlack,
|
||||
'GitHub PR to Slack': githubPrToSlack,
|
||||
|
|
|
|||
|
|
@ -3,44 +3,23 @@
|
|||
{
|
||||
"name": "Tweet Assistant",
|
||||
"type": "conversation",
|
||||
"description": "Assists users in creating and posting tweets with images, including crafting tweet text, generating images, and posting to Twitter.",
|
||||
"instructions": "## 🧑💼 Role:\nYou are a helpful assistant that helps users create and post tweets with images. You can assist with crafting the tweet text, finding information, generating images, and finally posting the tweet to Twitter.\n\n---\n## ⚙️ Operating Procedure:\n1. Greet the user and ask for the text they want to include in the tweet. Offer to help them craft it or find information about a topic.\n2. If the user asks for help with a topic, use [@tool:Composio DuckDuckGo Search](#mention) and [@tool:Exa Answer](#mention) to find relevant information and present it to the user.\n3. Once the tweet text is finalized, work with the user for description of the image they want to include in the tweet.\n4. Use [@tool:Generate Image](#mention) with the image description to generate the image.\n5. Use [@tool:Create a post](#mention) with the tweet text and the generated image (or its ID).\n6. Inform the user when the tweet has been successfully posted.\n\n---\n## 🎯 Scope:\n✅ In Scope:\n- Interacting with the user to get tweet text and image description.\n- Offering assistance in crafting tweets and finding information.\n- Generating images from text descriptions.\n- Posting tweets with images to Twitter.\n\n❌ Out of Scope:\n- None, this agent handles the entire workflow.\n\n---\n## 📋 Guidelines:\n✔️ Dos:\n- Always confirm the tweet text and image description with the user.\n- Be proactive in offering help and suggestions for tweet content.\n- Ensure the generated image matches the description.\n- Ensure the tweet text and image are correctly posted.\n\n🚫 Don'ts:\n- Do not fabricate information.\n\n",
|
||||
"description": "Assists users in creating and posting tweets, including crafting tweet text, finding information, and posting to Twitter.",
|
||||
"instructions": "## 🧑💼 Role:\nYou are a helpful assistant that helps users create and post tweets. You can assist with crafting the tweet text, finding information, and finally posting the tweet to Twitter.\n\n---\n## ⚙️ Operating Procedure:\n1. Greet the user and ask for the text they want to include in the tweet. Offer to help them craft it or find information about a topic.\n2. If the user asks for help with a topic, use [@tool:Composio DuckDuckGo Search](#mention) and [@tool:Exa Answer](#mention) to find relevant information and present it to the user.\n3. Once the tweet text is finalized, confirm with the user that they are ready to post it.\n4. Use [@tool:Create a post](#mention) with the tweet text to post the tweet to Twitter.\n5. Inform the user when the tweet has been successfully posted.\n\n---\n## 🎯 Scope:\n✅ In Scope:\n- Interacting with the user to get tweet text.\n- Offering assistance in crafting tweets and finding information.\n- Posting tweets to Twitter.\n\n---\n## 📋 Guidelines:\n✔️ Dos:\n- Always confirm the tweet text with the user before posting.\n- Be proactive in offering help and suggestions for tweet content.\n- Ensure the tweet text is correctly posted.\n\n🚫 Don'ts:\n- Do not fabricate information.\n",
|
||||
"examples": "\n",
|
||||
"model": "",
|
||||
"toggleAble": true,
|
||||
"ragReturnType": "chunks",
|
||||
"ragK": 3,
|
||||
"controlType": "retain",
|
||||
"outputVisibility": "user_facing",
|
||||
"examples": "\n"
|
||||
"controlType": "retain"
|
||||
}
|
||||
],
|
||||
"prompts": [],
|
||||
"tools": [
|
||||
{
|
||||
"name": "Generate Image",
|
||||
"description": "Generate an image using Google Gemini given a text prompt. Returns base64-encoded image data and any text parts.",
|
||||
"isGeminiImage": true,
|
||||
"parameters": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"prompt": {
|
||||
"type": "string",
|
||||
"description": "Text prompt describing the image to generate"
|
||||
},
|
||||
"modelName": {
|
||||
"type": "string",
|
||||
"description": "Optional Gemini model override"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"prompt"
|
||||
],
|
||||
"additionalProperties": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Create a post",
|
||||
"description": "Creates a tweet on twitter; `text` is required unless `card uri`, `media media ids`, `poll options`, or `quote tweet id` is provided.",
|
||||
"mockTool": false,
|
||||
"parameters": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
|
|
@ -221,7 +200,6 @@
|
|||
},
|
||||
"required": []
|
||||
},
|
||||
"mockTool": false,
|
||||
"isComposio": true,
|
||||
"composioData": {
|
||||
"slug": "TWITTER_CREATION_OF_A_POST",
|
||||
|
|
@ -234,6 +212,7 @@
|
|||
{
|
||||
"name": "Exa Answer",
|
||||
"description": "Get answers with citations using the exa api.",
|
||||
"mockTool": false,
|
||||
"parameters": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
|
|
@ -250,7 +229,6 @@
|
|||
"content"
|
||||
]
|
||||
},
|
||||
"mockTool": false,
|
||||
"isComposio": true,
|
||||
"composioData": {
|
||||
"slug": "COMPOSIO_SEARCH_EXA_ANSWER",
|
||||
|
|
@ -263,6 +241,7 @@
|
|||
{
|
||||
"name": "Composio DuckDuckGo Search",
|
||||
"description": "The duckduckgosearch class utilizes the composio duckduckgo search api to perform searches, focusing on web information and details. it leverages the duckduckgo search engine via the composio duckduckgo search api to retrieve relevant web data based on the provided query.",
|
||||
"mockTool": false,
|
||||
"parameters": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
|
|
@ -279,7 +258,6 @@
|
|||
"query"
|
||||
]
|
||||
},
|
||||
"mockTool": false,
|
||||
"isComposio": true,
|
||||
"composioData": {
|
||||
"slug": "COMPOSIO_SEARCH_DUCK_DUCK_GO_SEARCH",
|
||||
|
|
@ -292,9 +270,9 @@
|
|||
],
|
||||
"pipelines": [],
|
||||
"startAgent": "Tweet Assistant",
|
||||
"lastUpdatedAt": "2025-09-11T18:02:35.880Z",
|
||||
"lastUpdatedAt": "2025-09-16T09:18:26.925Z",
|
||||
"name": "Tweet Assistant",
|
||||
"description": "Research topics and create a tweet including generated images.",
|
||||
"description": "Research topics and creates a tweet.",
|
||||
"category": "News & Social",
|
||||
"copilotPrompt": "Give me a brief explanation of this assistant."
|
||||
}
|
||||
}
|
||||
|
|
@ -41,8 +41,8 @@
|
|||
"toggleAble": true,
|
||||
"ragReturnType": "chunks",
|
||||
"ragK": 3,
|
||||
"controlType": "relinquish_to_parent",
|
||||
"outputVisibility": "internal",
|
||||
"controlType": "relinquish_to_parent",
|
||||
"maxCallsPerParentAgent": 3
|
||||
}
|
||||
],
|
||||
|
|
@ -56,6 +56,11 @@
|
|||
"name": "LookbackInHours",
|
||||
"type": "base_prompt",
|
||||
"prompt": "<needs to be added>"
|
||||
},
|
||||
{
|
||||
"name": "ResultCount",
|
||||
"type": "base_prompt",
|
||||
"prompt": "<needs to be added>"
|
||||
}
|
||||
],
|
||||
"tools": [
|
||||
|
|
@ -372,9 +377,9 @@
|
|||
}
|
||||
],
|
||||
"startAgent": "Twitter Sentiment Pipeline",
|
||||
"lastUpdatedAt": "2025-09-11T17:26:48.865Z",
|
||||
"lastUpdatedAt": "2025-09-16T09:24:45.848Z",
|
||||
"name": "Twitter Sentiment",
|
||||
"description": "Searches Twitter for tweets about a company and analyzes their sentiment.",
|
||||
"category": "News & Social",
|
||||
"copilotPrompt": "Give me a brief explanation of this assistant. Also briefly tell me about how to setup a scheduled trigger for this assistant."
|
||||
}
|
||||
}
|
||||
|
|
@ -22,7 +22,7 @@ import { container } from '@/di/container';
|
|||
|
||||
const FILE_PARSING_PROVIDER_API_KEY = process.env.FILE_PARSING_PROVIDER_API_KEY || process.env.OPENAI_API_KEY || '';
|
||||
const FILE_PARSING_PROVIDER_BASE_URL = process.env.FILE_PARSING_PROVIDER_BASE_URL || undefined;
|
||||
const FILE_PARSING_MODEL = process.env.FILE_PARSING_MODEL || 'gpt-4o';
|
||||
const FILE_PARSING_MODEL = process.env.FILE_PARSING_MODEL || 'gpt-4.1';
|
||||
|
||||
const dataSourcesRepository = container.resolve<IDataSourcesRepository>('dataSourcesRepository');
|
||||
const dataSourceDocsRepository = container.resolve<IDataSourceDocsRepository>('dataSourceDocsRepository');
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ import { IProjectsRepository } from "@/src/application/repositories/projects.rep
|
|||
// Provider configuration
|
||||
const PROVIDER_API_KEY = process.env.PROVIDER_API_KEY || process.env.OPENAI_API_KEY || '';
|
||||
const PROVIDER_BASE_URL = process.env.PROVIDER_BASE_URL || undefined;
|
||||
const MODEL = process.env.PROVIDER_DEFAULT_MODEL || 'gpt-4o';
|
||||
const MODEL = process.env.PROVIDER_DEFAULT_MODEL || 'gpt-4.1';
|
||||
|
||||
const openai = createOpenAI({
|
||||
apiKey: PROVIDER_API_KEY,
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ import { PipelineStateManager } from "./pipeline-state-manager";
|
|||
// Provider configuration
|
||||
const PROVIDER_API_KEY = process.env.PROVIDER_API_KEY || process.env.OPENAI_API_KEY || '';
|
||||
const PROVIDER_BASE_URL = process.env.PROVIDER_BASE_URL || undefined;
|
||||
const MODEL = process.env.PROVIDER_DEFAULT_MODEL || 'gpt-4o';
|
||||
const MODEL = process.env.PROVIDER_DEFAULT_MODEL || 'gpt-4.1';
|
||||
|
||||
// Feature flags
|
||||
const USE_NATIVE_HANDOFFS = process.env.USE_NATIVE_HANDOFFS === 'true';
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue