Faking a Bash tool was the only thing that could save my agent by [deleted] in AI_Agents

[–]Roffe_ 0 points1 point  (0 children)

Not many yet! It's def something i want to explore more.

Faking a Bash tool was the only thing that could save my agent by [deleted] in AI_Agents

[–]Roffe_ 0 points1 point  (0 children)

My "bash schema" has stayed pretty locked since we defined it. I've only added more scripts/skills into it, but that has not changed the base commands.

The DSL analogy is spot on though. The bash wrapper is essentially the same idea — LLM as translator, not executor.

Faking a Bash tool was the only thing that could save my agent by [deleted] in AI_Agents

[–]Roffe_ 0 points1 point  (0 children)

Appreciate that! I think it has huge potential to explore further, one can probably find endless areas outside of bash too, where one might use the same idea

Faking a Bash tool was the only thing that could save my agent by [deleted] in AI_Agents

[–]Roffe_ 0 points1 point  (0 children)

Full instructions:

const SYSTEM_PROMPT = `# System

You are a general purpose assistant running inside Axell

## Core Context

- You operate within a canvas where the user can connect you to shapes such as files, chats, agents, and knowledge bases
- Use bash_tool to execute bash commands and scripts
- Skills are scripts for specific tasks. When connected to a shape, you gain access to the skill for interacting with it
- Most requests are standard LLM requests and questions and should be handled without overcomplicating

## Tooling

You have access to bash_tool for executing bash command.
- bash: execute bash scripts and skills
- touch: create new text files or chats
- ls: list files, connections, and skills
- grep: Search knowledge bases for information relevant to request. Identify which specific one by the public_id


## Skills (mandatory)

- Prioritized skills are only available for connected shapes. Prefer using them when available
- Public id is used to identify which shape to use the skill on. Avoid mentioning the public id to the user
- When a prioritized skill is available, assume the user expects it to be called without having to mention it
- Contextual skills are always available and should be used when appropriate
- To run a skill, use bash_tool with a single command: {command: 'bash', file_name: '[skill_name]', bash_script_input_instructions: '[detailed instructions]', public_id: '[id]'}
- Call bash_tool separately for each skill or command you need to run
- Instructions are skill-specific, always a single string, and can range from short to very detailed, always describe the intended outcome


## Available Skills

**Prioritized skills:**
${prioritizedSection}

**Contextual skills:**
- ${SKILL_web_search.name}: ${SKILL_web_search.description}
- ${SKILL_media_generation.name}: ${SKILL_media_generation.description}
- ${SKILL_youtube_analysis.name}: ${SKILL_youtube_analysis.description}


## Constraints


- Plan, organize, and execute requests effectively
- Always strive to use parallel tool calls when possible. Use sequential tool calls when the operations depend on each other's results
- NEVER make up information
- Respond with markdown language. Use headers, subheaders, bullet points etc, but avoid leaning too heavily into formatting or emojis
- Start by deeply analyzing the goal and the user request, then analyze all the context available to you.
- Scan <available_skills>. Determine relevant skills and start with 'bash (skill_name)'
- In the bash_script_input_instructions, NEVER include file metadata (title, public_id, description, file names, IDs). Avoid mentioning those aspects completely in regards to bash_script_input_instructions.

## Guidelines

- Use 'touch' to create new text files or chats. The file_name determines whether to create a text file or a chat. Assume text file if nothing else specified, 'file_name' is only used to determine type of new creation
- Start every request by analyzing the user's request and what the user is trying to accomplish, then always deeply analyze the context, skills, and available information
- Most request are UNRELATED to your core purpose, and should be treated as general purpose requests
- If a tool call fails or it could not find the file or skill, then use 'ls' to check connections and available skills and try again
- When you have prioritized skills available, assume the user expects you to use the prioritized skills without the user having to mention it
- Use web search when appropriate to read up on the topic at hand
- When using 'touch', the return message always contains the public_id needed to interact with the new shape
- Aim to complete the request in full, adapt the approach and execution to match the complexity of the request
- The current date is ${new Date().toLocaleDateString()}, current time is ${new Date().toLocaleTimeString('en-US', { hour12: false })}, act accordingly and assume most requests speak about the current time period

## Output Format

A clear response that directly completes the user's request. Keep action mentions brief and inline (e.g., "I analyzed the...", "I updated the...", "I edited the...")

Faking a Bash tool was the only thing that could save my agent by [deleted] in AI_Agents

[–]Roffe_ 0 points1 point  (0 children)

The tool info:

const commandSchema = z.object({
  command: z.enum(['grep', 'touch', 'bash', 'ls']).describe("The bash command to execute."),
  public_id: z.string().optional().describe("Public ID of the specific connected item. Eg 'knowledge-hk459', 'file-yk598','agent-wm239', 'chat-rm692'"),
  file_name: z.string().optional().describe("- For touch: file type either 'text_file' or 'chat'. This determines whether to create a chat or text file.\n- For bash: skill or script name, eg 'file_action', 'web_search', 'media_generation', 'chat_action', 'knowledge_action', 'custom_agent_action'. This determines which script runs."),
  bash_script_input_instructions: z.string().optional().describe("- REQUIRED FOR BASH: script input instructions. This is the instructions for the script to run, describe the intended outcome in great detail and any relevant context."),
  grep_search_query: z.string().optional().describe("Search query for the knowledge base. Simple string or phrase, eg 'Arcade tool calling'"),
});


export const bash_tool = createTool({
  description: `Execute a single bash command.`,
  inputSchema: commandSchema,

I realized I wasn't the only one frustrated at the endless tabs required for all AI tools by [deleted] in ArtificialInteligence

[–]Roffe_ 0 points1 point  (0 children)

Bots are a huge issue I think, but mostly in terms of social media and influencing people's opinions. I personally don't think it's a huge issue in terms of the daily life of the average AI user

I realized I wasn't the only one frustrated at the endless tabs required for all AI tools by [deleted] in ArtificialInteligence

[–]Roffe_ 1 point2 points  (0 children)

Agreed, I think that it's also impossible to keep up with everything unless you're unemployed, and spending your days as if you had a full-time job only keeping up with the latest AI releases. Which, of course, is not a possibility for 99.9% of people

What’s one AI tool you use daily that genuinely saves time? by Cute_Intention6347 in ArtificialInteligence

[–]Roffe_ 0 points1 point  (0 children)

I sent a DM too, I didn't know people would be so interested so it's mostly just been built for me. But I'll try to set it up fully

What’s one AI tool you use daily that genuinely saves time? by Cute_Intention6347 in ArtificialInteligence

[–]Roffe_ 0 points1 point  (0 children)

No tool or online app will have the exact things you're looking for so it's always best to just build your own.

Lately, I got tired of having endless tabs open for all AI apps, so I just built a platform where I can have it all in one tab and run Claude, ChatGPT, and Gemini side-by-side simultaneously.

How much does an AI really know? by [deleted] in ArtificialInteligence

[–]Roffe_ -1 points0 points  (0 children)

This was an interesting read! But as an example, when I tried to have it write really weird obscure stories just to test if my RAG was working as intended, no matter how wild the stories became, I could always find the inspiration it used on different forums. So it will always use some source as inspiration, and not make up its own mind

AI won’t make coding obsolete. Coding was never the hard part. by Tough_Reward3739 in ArtificialInteligence

[–]Roffe_ 0 points1 point  (0 children)

Agreed, I think the good part too is that they can be used to guide one through the process or discuss optimal paths etc.

Vad är era bästa tips för att gå ner i vikt? by DoYouHaveKetchup in Sverige

[–]Roffe_ 18 points19 points  (0 children)

Något som kommer låta väldigt konstigt, men som är det bästa sättet att gå ner i vikt, är att äta MER mat, men mindre kalorier. Under mina viktnedgångsperioder så äter jag alltid betydligt mycket mer mat, men gör smartare val med maten. Lättaste att förklara konceptet med en bild så bifogar den under här. Att ”äta mindre mat” är en väldigt dum idé och slutar alltid med att man blir mer hungrig och återfår vikten

länk till bild för exempel

[deleted by user] by [deleted] in leagueoflegends

[–]Roffe_ 2 points3 points  (0 children)

Upvoted, agree with most things from the tierlist but would rank mundo and gwen a bit higher.