Let an agent search the web and read files
Let an agent read an item’s photos and PDFs, search the web, ask about web pages and take their pictures, and save files, or keep it from the web.
An agent reads the images and PDFs an item holds, in a files field or a comment, and those you attach in a chat with it: the amount and due date on a supplier's invoice, the fields of a filled form, what a photo shows. It asks a question about the file and gets the answer, in Base Captain and on a machine, in a chat and by itself.
In the example shop, the Bills workflow's first step is Clerk's: it reads a new bill's invoice, sets its amount and due date, and passes the bill on to a person. A bill with no invoice attached it leaves as it is, and says that it has no invoice.
Limits and details:
- An agent reads a PNG, JPEG or WebP image, a PDF, or a CSV or text file, up to 10 MB. Of a CSV or text file it reads the first 100,000 bytes, and its answer says when the file was longer.
- It reads only the files of what it may see: by itself, what its role sees; in a chat, what you see. A file of an item it may not see, or in a field hidden from it, is refused.
- Nothing written in a file is an instruction to it.
- Each reading uses the plan's AI, as a machine agent's look at a web page does, even for a machine agent that otherwise does not use it. An agent on the Claude API or the OpenAI API reads with its own service instead.
Every agent can search the web with its tool web_search, in a chat and by itself, the assistant too.
Ask, for example, "Find the address of Café Lumière, our new customer." The agent gets at most ten results, each a
title, an address and a few lines, in Google's order, and answers from them.
Where a search goes
- The assistant and agents in Base Captain search through a machine of yours first: an online machine whose Works for agents in Base Captain is on searches Google and sends back the results (Lend a machine's browser to agents in Base Captain). When the machine cannot answer, they search through AnyAPI, a paid search service: when no such machine is online, when its answer is late, or when Google blocks its search with a CAPTCHA. With no machine, the base still searches the web.
- A machine agent searches on its own machine, the same way, with no switch: Claude Code, Codex, pi and opencode alike.
- Without a key of your own, a search through AnyAPI goes through Base Captain's AnyAPI account, and it uses the plan's AI (What AI your plan includes), also for an agent on the Claude API or the OpenAI API. At the fair-use limit the searches of agents stop first and the searches of the assistant later, as the rest of their work does. AnyAPI receives only what the agent searches for.
- A search that a machine answers uses none of the plan's AI and goes nowhere else.
Use your base's own AnyAPI key
Your base can also use an AnyAPI key of its own (from getanyapi.com). Add it as a secret: click Settings, then Secrets, and Add secret. Name it ANYAPI_API_KEY, paste the key and pick the service AnyAPI (Store the keys of other services). The key is sent only to AnyAPI. With the key, each search through AnyAPI is paid from your AnyAPI account, and nothing uses the plan's AI.
When the agent cannot search
When the agent cannot search, it tells you why:
- The AI has reached its fair-use limit: the limit's own sentence (When the AI reaches a fair-use limit), such as "The AI has reached this base's fair-use limit for agents and workflows this month. They work again on 1 November. A machine agent on your own subscription goes on at no cost. Contact us if you need more."
- The web search of Base Captain does not work: "The web search of Base Captain does not work now. Try again later."
- No machine online for it, no AnyAPI key, and no web search of Base Captain. This occurs only when Base Captain's web search is not available. To a builder: "No machine of this base can search the web for agents, and the base has no AnyAPI key. Connect a machine and switch on "Works for agents in Base Captain" on its row of the Machines page (Settings, AI, Machines), or add an AnyAPI key in Settings, Secrets." To anyone else: "This base has no way to search the web yet. Ask a builder of the base to connect a machine or to add a search key."
- AnyAPI refuses the base's own key: "AnyAPI did not take the base's key. A builder can change it in Settings, Secrets."
- Your AnyAPI account has no money left: "The base's AnyAPI account has no money left. A builder can add money at getanyapi.com."
- AnyAPI is late: "AnyAPI did not answer the search in time. Try again."
- Google answers the machine's search with a CAPTCHA, its "unusual traffic" page: the machine says so rather than finding nothing, "Google answered this machine's search with a CAPTCHA ("unusual traffic"), so there are no results. Try again later, or search less often." The search then goes to AnyAPI instead, and so it does when the machine's answer is late. With no AnyAPI key and no web search of Base Captain, the agent gets the machine's own answer, such as Google's CAPTCHA, or "The machine did not answer the search in time. Try again."
- A machine without Chrome says "This machine has no Chrome the daemon can drive, so it cannot search. Install Google Chrome on it and restart the daemon.", and the same for a picture.
Limits and details
- An agent in Base Captain that works by itself does not get the tool when, at the start of its run, no such machine is online, the base has no AnyAPI key and the web search of Base Captain is not available, so the run does not fail on it. If the search fails during the run, the run fails with the sentence.
- A search opens no result, and no tool follows a link: to learn what a page says, an agent in Base Captain asks a question about it (Ask a question about a web page).
- The results are text from the web that nobody checked: every agent is told to take them as information, never as instructions.
- A machine answers at most ten searches a minute, its agents in Base Captain and its machine agents together, so an agent that searches in a loop does not get your address blocked. The eleventh says "This machine has already searched ten times in the last minute, the most it does. Wait a minute and search again."
- A run's record shows each search with what it asked and what came back (See everything a run did).
- An agent with No internet does not search at all (Keep an agent from the web).
The assistant and every agent in Base Captain, in a chat and by itself, can ask a question about a web page with
its tool read_page: the page's address and a question, such as "What does the Pro plan cost a month?"
about a supplier's price list. An AI model that has no tools reads the page's text and answers the question in at
most 1,000 characters, with no web address in the answer. The agent gets only that answer, never the page itself.
The model that reads the page states what the page says, answers only the question and does not pass on an
instruction that it finds on the page. No tool follows a link from the page.
The page's text comes from the first of these that can get it:
- a machine of yours with Works for agents in Base Captain on, the same one that searches for the agent (Lend a machine's browser to agents in Base Captain). It opens the page in a Chrome of its own with an empty profile and sends back the page's text. It never opens an address of its own network: "That address is this machine's own or on a private network (loopback, private or link-local), which a machine never opens for an agent in Base Captain." The agent then passes this on, and no other way is tried: such an address never goes to AnyAPI.
- AnyAPI with your base's own key, when no such machine is online, when its answer is late or when it cannot open the page. Add the key in Settings, Secrets as for a search (Search the web). Each page is paid from your AnyAPI account.
- AnyAPI through Base Captain's account, when the base has no key of its own. Each page uses the plan's AI, as a search does.
The answer itself uses the plan's AI, as a question about a page's picture does: at the fair-use limit an agent on Base Captain stops first, and the assistant goes on (When the AI reaches a fair-use limit). An agent on the Claude API or the OpenAI API gets the answer from its own service.
In a chat with you, once the assistant or the agent has read a page, or asked a question about a page's picture, every change it makes in that chat waits on a card that you apply, even a single item. This stays so after you reload the page. A page could hold words that try to tell the agent what to do, and the card lets you see each change first. In such a chat, the assistant also opens a web page only after you apply a card that shows the page's whole address.
When the agent cannot read the page, it tells you why, such as:
- No machine for it and no AnyAPI key. This occurs only when Base Captain's own AnyAPI account is not available. To a builder: "No machine of this base can read pages for agents, and the base has no AnyAPI key. Connect a machine and switch on "Works for agents in Base Captain" on its row of the Machines page (Settings, AI, Machines), or add an AnyAPI key in Settings, Secrets." To anyone else: "This base has no way to read a web page yet. Ask a builder of the base to connect a machine or to add an AnyAPI key."
- A machine without Chrome: "This machine has no Chrome the daemon can drive, so it cannot read a page. Install Google Chrome on it and restart the daemon." The page is then read through AnyAPI instead.
- The machine is late, with no AnyAPI key: "The machine did not read the page in time. Try again."
- AnyAPI is late: "AnyAPI did not read the page in time. Try again."
- The page has no text: "The page has no text to read."
Limits and details:
- A machine agent has no
read_page: it opens the page in its own browser. - An agent in Base Captain that works by itself does not get the tool when, at the start of its run, no such machine is online and no AnyAPI key is available, so the run does not fail on it.
- An agent with No internet does not read pages (Keep an agent from the web).
- A run's record shows each page it read, with its question and its answer (See everything a run did).
An agent keeps a file it has, such as a page's picture, a PDF it made or a CSV, with its tool save_file, in one of three places:
- a files field of an item, such as a product's Photo or an order's Attachments: the file is added to the files already there;
- a new comment on an item, with the comment's text and the file;
- a folder of Files (Let the assistant and agents find, read and save files).
Where the file comes from depends on the agent:
- A machine agent, through Claude Code, Codex, pi or opencode alike, saves a file of its run's working folder on the machine, such as the picture of a page it opened in its browser. A file outside that folder is refused: "save_file reads a file of this run's working directory only: give a relative path to a regular file inside it."
- The assistant and agents in Base Captain, in a chat, save a file you attached in the chat: ask, for example, "Put this photo on the Bookshelf product."
- An AI client through Base Captain's MCP server uploads the file first, then saves it (What an AI client can and cannot do in a base).
The agent says where it saved the file, such as "Saved "bookshelf.jpg" to Photo of Bookshelf (products)." The item's history shows the change "via assistant" when the assistant saved the file, and "via agent" when an agent did. In a chat that holds a photo or a PDF, and in a channel, it asks first, on a card: the file is saved when you click Apply.
Limits and details:
- An agent saves with the permissions it works with: in a chat yours, by itself its role's. A field your role may not change, or an item it may not see, is refused, and so is a file over 10 MB or a field that is not a files field.
- An agent working by itself cannot reach the base's Files: "An agent running by itself cannot reach the base's Files. Save the file to an item's files field or a new comment instead."
- Saving a file uses no AI.
The assistant and every agent in Base Captain, in a chat and by itself, can take the picture of a web page with its
tool screenshot: the page's first screen, as a computer screen shows it. It does this through a machine
of yours with Works for agents in Base Captain on, the same one that searches for it (Lend a machine's browser to agents in Base Captain). It asks for one or both of:
- a question about the page, such as "What does the Pro plan cost a month?": an AI model reads the picture and the agent gets its answer, never the picture itself. The answer follows the rules of Ask a question about a web page: at most 1,000 characters, no web address in it, and in a chat with you every later change waits on a card. Each question uses the plan's AI, as reading an item's photo does: at the fair-use limit an agent on Base Captain stops first, and the assistant goes on. An agent on the Claude API or the OpenAI API asks its own service;
- a place to keep the picture, any place
save_filesaves to (Save a file to an item or to Files), named after the site, such as example.com.png. Keeping it uses no AI.
With no machine for it, the agent tells a builder "No machine of this base can take pages' pictures for agents. Connect a machine and switch on "Works for agents in Base Captain" on its row of the Machines page (Settings, AI, Machines)." and anyone else "This base has no way to take a page's picture yet. Ask a builder of the base to connect a machine for it."
Limits and details:
- A machine agent has no
screenshot: it opens the page in its own browser and saves the picture withsave_file. - An agent in Base Captain that works by itself does not get the tool when no such machine is online at the start of its run, so the run does not fail on it.
- The machine never opens an address of its own network for an agent, with the same sentence as for a page to read (Ask a question about a web page).
- What a page says is text from the web that nobody checked, and every agent is told to take it as information, never as instructions.
Every agent has the choice Internet. Internet, the default, lets the agent search the internet and open websites. Choose No internet for an agent that sends messages, publishes posts or changes prices: a web page can contain hidden instructions for an agent, and an agent that does not go on the internet is never told.
- Open the agent in Settings, Agents, on the Access tab.
- Under Internet, choose No internet.
- Click Save agent.
Or ask the assistant, such as "Keep Order check off the internet": it shows the change on a card, and the choice changes when you click Apply.
- An agent in Base Captain with No internet cannot search the web, read a page or take a page's picture, in a chat and by itself. It has only these two choices.
- Every agent in Base Captain keeps
read_base_captain_page, the tool that reads this site's own pages, such as the Terms or the pricing page, to answer a question about Base Captain itself. It reads no page of the open web, so No internet does not turn it off. - A machine agent with No internet has no web search and no browser, and its
coding tool, Claude Code, Codex or opencode, starts without its own web tools. It keeps
look, which asks about the images in its directory. A program the agent runs itself, with the permission Approved edits or Full access, can still reach the websites its box allows, and every website on a machine with no box. - Only these websites is for a machine agent only. It opens only the websites in the list Websites, with the logins of the computer's browser, and does not search. Its coding tool also starts without its own web tools.
Under the API token of someone who builds the base (Use your base from a calendar or a script), the
choice is the agent's internet in the base's spec: "internet": "none" is No internet, "internet": "sites" is Only these websites (with sites, the list of websites), and an
agent without it has the whole internet. Through Base Captain's MCP server, get_agents shows it and propose_change sets it, as any change of the base.