Operator-ready prompt for reuse, tuning, and workspace runs.
This item is set up for developers who want to inspect the original language, fork it into Workspace, and adapt the evidence model without losing the source prompt structure.
Implementation handoffs, eval setup, and prompt tuning where you need the original structure intact.
Inspect first, copy once, then fork into Workspace when you want variants, notes, and model settings attached to the same run.
Swap domain facts, examples, and any hard-coded entities for your own context.
Tighten the evidence or verification requirement if this is headed toward production.
Decide which failure mode you want to evaluate first before you branch the prompt.
This prompt already carries implementation detail, tool context, and a final-output instruction. Keep that structure intact when you tune it, or your comparison runs get noisy fast.
Open this prompt inside Workspace when you want a live iteration loop.
Copy for quick reuse, or run it in Workspace to keep prompt variants, model settings, and prompt-history changes in one place.
Structured source with 63 active lines to adapt.
Already linked to a challenge workflow.
Sign in to keep private prompt variations.
Prompt content
Original prompt text with formatting preserved for inspection and clean copy.
Define three distinct agents using `CrewAI`: a `Researcher` (expert in web searching and information gathering), an `Analyst` (expert in synthesizing and structuring information), and a `Technical Writer` (expert in clear, concise technical communication). Each agent should have specific tools available. The `Researcher` should have a `WebSearchTool` (e.g., using `DuckDuckGoSearchRun` from Langchain). The `Analyst` and `Technical Writer` should have access to `ChromaDB` (via a custom tool) for storing and retrieving research fragments. All agents should use `Gemini 2.5 Pro` via Vertex AI for their LLM backend.
```python
import os
from crewai import Agent, Task, Crew
from crewai_tools import DuckDuckGoSearchRun # Example search tool
from langchain_google_vertexai import VertexAI
from chromadb import Client, Settings
# --- Assume Google Cloud Project and API setup for Vertex AI ---
# Make sure GOOGLE_APPLICATION_CREDENTIALS environment variable is set
# Initialize Vertex AI LLM (Gemini 2.5 Pro)
gemini_llm = VertexAI(model_name="gemini-2.5-pro-preview-0403", temperature=0.7)
# Initialize ChromaDB client (running in-memory for this example)
chroma_client = Client(Settings(allow_reset=True))
chroma_collection = chroma_client.get_or_create_collection(name="tech_research_kb")
# Custom ChromaDB Tool for agents
class ChromaDBTool:
@classmethod
def store_research(cls, topic: str, content: str) -> str:
# In a real scenario, embed content before storing
chroma_collection.add(documents=[content], metadatas=[{"topic": topic}], ids=[f"doc-{len(chroma_collection.get()['ids']) + 1}"])
return f"Stored research for '{topic}'."
@classmethod
def retrieve_research(cls, query: str) -> str:
# In a real scenario, embed query before searching
results = chroma_collection.query(query_texts=[query], n_results=5)
return "\n".join([doc for doc in results['documents'][0]]) if results['documents'] else "No relevant research found."
# Tools available to agents
web_search_tool = DuckDuckGoSearchRun()
chroma_tool = ChromaDBTool()
# Define Agents
researcher = Agent(
role='Senior Research Analyst',
goal='Conduct in-depth research on complex technical topics and gather relevant information.',
backstory='An expert in identifying credible sources and extracting key insights from vast amounts of data.',
llm=gemini_llm,
tools=[web_search_tool, chroma_tool.store_research],
verbose=True
)
analyst = Agent(
role='Technical Data Analyst',
goal='Synthesize research findings, identify patterns, and structure information for clear understanding.',
backstory='A meticulous analyst capable of breaking down complex concepts into digestible components.',
llm=gemini_llm,
tools=[chroma_tool.retrieve_research, chroma_tool.store_research],
verbose=True
)
writer = Agent(
role='Expert Technical Writer',
goal='Translate complex technical information into well-structured, clear, and engaging reports.',
backstory='A gifted communicator who transforms raw data and analysis into compelling narratives.',
llm=gemini_llm,
tools=[chroma_tool.retrieve_research],
verbose=True
)
# Define Tasks (initial tasks, more will be added later)
# Note: Tasks are defined in the next prompt
# Initialize the Crew (will be done in a later prompt once tasks are defined)
# tech_research_crew = Crew(
# agents=[researcher, analyst, writer],
# tasks=[...],
# verbose=2
# )
```Adaptation plan
Keep the source stable, then branch your edits in a predictable order so the next prompt run is easier to evaluate.
Preserve the role framing, objective, and reporting structure so comparison runs stay coherent.
Swap in your own domain constraints, anomaly thresholds, and examples before you branch variants.
Check whether the prompt asks for the right evidence, confidence signal, and escalation path.
Copy once for a pristine source snapshot, then move the prompt into Workspace when you want variants, run history, and side-by-side tuning without losing the original.
Prompt diagnostics
Quick signals for how structured this prompt already is and where adaptation work is likely to happen first.
This prompt already mixes executable detail with instructions, so the safest path is to tune examples and interfaces before you rewrite the overall scaffold.
Collaborative Technical Research Crew
Design and implement a multi-agent system using CrewAI to collaboratively research and synthesize complex technical topics, inspired by detailed historical accounts like RISC-V development or DeepMind documentaries. The crew will consist of specialized agents (e.g., Researcher, Analyst, Technical Writer) working together. They will leverage Gemini 2.5 Pro via Vertex AI for deep understanding and content generation, utilizing ChromaDB as a shared knowledge base for storing research findings and contextual embeddings. Prefect will orchestrate the end-to-end research workflow, managing task dependencies and ensuring robust execution of the multi-agent collaboration.
Use the challenge page to recover the original task boundaries before you tune the prompt. That keeps your variants grounded in the same evaluation target instead of drifting into a different problem.