Loading the notebook…
Loading the notebook…
Notebooks · First agents · 02
This notebook wires multiple tools into one agent so you can test tool selection and tool results.
Its imports and arguments are checked against shipit-agent 3.0. The outputs were saved when it was written, for an earlier release.
from pathlib import Path
import sys
ROOT = (
Path.cwd().resolve().parent
if Path.cwd().name == "notebooks"
else Path.cwd().resolve()
)
if str(ROOT) not in sys.path:
sys.path.insert(0, str(ROOT))
from examples.run_multi_tool_agent import build_demo_agent, build_llm_from_envllm = build_llm_from_env("bedrock")
agent = build_demo_agent(
llm=llm,
workspace_root=str(ROOT / ".shipit_notebooks" / "multi_tools"),
)
sorted(tool.name for tool in agent.tools)[:20]['add_numbers', 'ask_user', 'build_artifact', 'build_prompt', 'confluence', 'custom_api', 'decision_matrix', 'decompose_problem', 'gmail_search', 'google_calendar', 'google_drive', 'human_review', 'jira', 'linear', 'memory', 'notion', 'open_url', 'plan_task', 'playwright_browse', 'project_context']
from IPython.display import Markdown, display
result = agent.run(
"Use project_context and workspace_files if useful, then summarize what this agent workspace is set up to do."
)
display(Markdown(result.output))
[(item.name, item.output[:120]) for item in result.tool_results]Summary of this agent’s workspace configuration
| Aspect | Details |
|---|---|
| Core runtime | Shipit – a general‑purpose, tool‑driven execution environment that emphasizes accurate, execution‑oriented responses. |
| Primary design goals | • Provide factual, up‑to‑date answers. • Use external tools (web search, browsing, code execution, APIs, etc.) whenever they improve correctness or freshness. • Keep reasoning transparent and structured (plans, decompositions, evidence synthesis). |
| Toolset available | • Web: web_search, open_url, playwright_browse for fresh public data. • Communication: gmail_search, google_calendar, google_drive, slack, linear, jira, notion, confluence for internal org data. • Data handling: workspace_files (read/write), run_code (Python/Bash), build_artifact (rich visual output). • Decision & Planning: plan_task, decompose_problem, synthesize_evidence, decision_matrix, verify_output. • Memory: memory for persisting facts across a session. • Utility: add_numbers, project_context, custom_api, sub_agent. |
| Preferred workflow | 1. Clarify user intent (ask only when needed). 2. Plan complex tasks (plan_task/decompose_problem). 3. Gather evidence using the most appropriate tool (prefer a single, focused tool). 4. Process data with run_code or built‑in utilities. 5. Validate results (verify_output). 6. Present output directly, or as a rich artifact (build_artifact). |
| Human‑in‑the‑loop | Uses ask_user for clarification and human_review before any irreversible action (e.g., sending email, creating tickets, publishing docs). |
| Memory handling | Facts are stored compactly via memory and retrieved before re‑asking the user. |
| Current file system state | • memory.json – empty list (no stored facts yet). • sessions – directory for session‑specific data. • traces – directory for execution traces. |
| Constraints | • No fabricated data – always ground answers in evidence or clearly label assumptions. • Keep responses concise, structured, and easy to verify. • Use the smallest, most specific tool for each sub‑task. |
What this workspace can do for you
Feel free to ask for any specific operation—e.g., a web lookup, a file creation, a calendar query, or a full end‑to‑end workflow—and the agent will orchestrate the necessary tools to deliver a reliable result.
[('project_context',
'This workspace uses SHIPIT Agent for tool-using workflows. Prefer grounded answers, explain tradeoffs clearly, and use t'),
('workspace_files', 'memory.json\nsessions\ntraces'),
('workspace_files', '[]')]