Execute agentes em uma máquina Prized com modelos OpenRouter
Rode agentes de tarefas em uma máquina Prized com modelos OpenRouter baratos: webhooks, rascunho e revisão em duas etapas e chaves fora da máquina.
Última verificação
Neste guia
Atribua um cartão a um Perfil de agente e uma pequena máquina sempre ligada o pega, faz a pesquisa com as mesmas ferramentas que seus outros agentes têm e devolve o cartão para você revisar. Os modelos rodam no OpenRouter, então nenhuma assinatura é usada e cada cartão custa centavos.
Reserve cerca de uma hora. Você precisa de uma conta Prized, uma conta Takibi com um quadro de tarefas e um Perfil de agente, uma chave OpenRouter e uma conta Tailscale. Adicione uma conta Composio se seus agentes precisarem da web. A máquina custa cerca de $10/mês em um plano Prized; os modelos são cobrados por token pelo OpenRouter.
O que você está construindo
O Takibi envia um webhook assinado quando um cartão é atribuído ao Perfil do agente. Uma máquina Prized o recebe através do Tailscale Funnel, pega o cartão e executa o harness de agente pi duas vezes:
- Rascunho: um modelo rápido lê o cartão e seus artefatos, pesquisa com a CLI
takibie a CLI Composio (Firecrawl para páginas web, Drive e o resto de suas conexões) e escreve um rascunho na máquina. - Revisão: um modelo mais profundo verifica as afirmações do rascunho, aplica os próprios documentos da sua coleção, anexa um artefato final e finaliza o cartão conforme a skill
takibi-usedetermina: uma entrega para o Perfil que o cartão nomeia ou revisão com uma nota.
Toda execução termina em revisão, o único estado que permanece na sua caixa de entrada após o término da execução. Se o agente deixar o cartão em qualquer outro lugar, o worker o move para lá com uma nota que começa com Needs you:.
Crie a máquina
Painel Prized Crie a menor máquina, Nano (2 vCPU, 2 GB, 40 GB de disco). Na nossa, o processo do agente ocupou cerca de 100 MB e passou a maior parte do tempo esperando pelo modelo e pela web. Copie o id da máquina da sua página; a etapa de segredos precisa dele.
Mantenha a máquina acordada. Tráfego de entrada nunca acorda uma máquina Prized pausada, então uma máquina dormindo só vê as tentativas de reenvio do Takibi. Desative a pausa automática na página da máquina agora, ou com PATCH /api/v1/boxes/<id> e {"autoPauseMin": null}, antes de instalar qualquer coisa. Não use horário silencioso também: segundo a documentação da Prized, uma máquina acordada dentro do horário silencioso pausa novamente após 15 minutos. Preço em 2026-10-26: $0.014/h acordada, $0.004/h dormindo, e o plano de $10/mês cobre uma Nano o tempo todo, então dormir economiza quase nada em um plano. Veja estados da máquina e pausa automática e faturamento.
Abra o terminal pela URL simples, /dashboard/boxes/<id>/terminal, ou com prized ssh <box>. Um link de terminal terminado em ?agent=claude (é o que o botão do tour inicial da Prized para abrir no navegador usa) inicia o Claude Code em uma sessão própria, que ocupa cerca de 150–220 MB dos 2 GB. O botão Open terminal reabre o último modo de entrada que você usou; escolha Terminal na seta ao lado dele uma vez. Se uma sessão do Claude Code já estiver rodando e você não precisar dela, tmux kill-session -t claude a encerra.
Instale as CLIs e skills
Terminal Prized Abra o terminal da máquina no painel ou prized ssh <box> do seu laptop. Dê este prompt a um agente lá (o Claude Code vem instalado na máquina) ou siga-o você mesmo no Bash. Ele instala o Node, a CLI takibi e sua skill, o harness pi e, opcionalmente, a CLI Composio. O pi lê skills de ~/.agents/skills, que é onde ambas as skills devem ficar.
BOX / Prized box terminal (dashboard terminal or prized ssh <box>). Use Bash as the box's login user, not root.
Goal: Node 22.21+, the takibi CLI + skill, the pi agent harness, and (if this agent needs the web) the Composio CLI, all for this user.
1. Node: curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash - && sudo apt-get install -y nodejs. node -v must report v22.21.0 or newer (older 22.x ignores NODE_USE_ENV_PROXY, which the worker needs). Stop if it doesn't.
2. CLIs: sudo npm i -g takibibase @earendil-works/pi-coding-agent. takibi --version and pi --version must both print a version.
3. Stop and let the human enter the Takibi key (next step of the guide). Then: mkdir -p ~/.agents/skills && takibi skill --install --force. pi reads skills from ~/.agents/skills; confirm ~/.agents/skills/takibi-use/SKILL.md exists.
4. Gate: takibi projects must list the collection the agent will work on. An empty or unexpected list means the Profile's grants are wrong; stop.
5. Web access (skip if this agent won't use the web): the human runs curl -fsSL https://composio.dev/install | sh, then ~/.composio/composio login. The installer adds ~/.local/bin/composio and the composio-cli skill under ~/.agents/skills. Confirm with composio whoami. Never print or paste any key.
6. Report the versions, the takibi projects result, and the ~/.agents/skills listing. Do not start any service yet.Insira a chave Takibi
App Takibi Abra Configurações → Perfis e crie um Perfil para esta máquina, por exemplo Prized. Quadros de tarefas precisam de uma concessão para toda a coleção, então conceda a ele toda a coleção para cada quadro em que trabalhará. Deixe Criar tarefas desativado. Crie sua chave.
A chave é mostrada uma vez e vai para dois lugares, então mantenha-a na tela até que ambos estejam concluídos:
- Terminal Prized Execute o bloco abaixo você mesmo e digite a chave no prompt oculto. A CLI verifica o formato
<publicId>.<secret>da chave localmente, então este arquivo guarda a chave real, modo600. - Painel Prized Salve a mesma chave como um Prized Secret chamado
TAKIBI_KEY(próxima seção), para que as próprias chamadas de API do worker passem pelo broker.
# TERMINAL / human only. Open Bash in the Prized box terminal.
# Type the key at the hidden prompt, never as a shell command or in chat.
# Refuse placeholders such as <PASTE-KEY-HERE>; preserve any existing key.
(
set +x
umask 077
mkdir -p "$HOME/.takibi" || exit 1
chmod 700 "$HOME/.takibi" || exit 1
if [ -e "$HOME/.takibi/key" ] || [ -L "$HOME/.takibi/key" ]; then
printf '%s\n' 'Key already exists. Review its grants; do not overwrite it.'
exit 1
fi
IFS= read -r -s -p 'Takibi key (hidden): ' takibi_key
printf '\n'
case "$takibi_key" in
''|*'<'*|*'>'*) unset takibi_key; printf '%s\n' 'Empty key or placeholder refused.'; exit 1 ;;
esac
set -C
printf '%s\n' "$takibi_key" > "$HOME/.takibi/key" || exit 1
unset takibi_key
chmod 600 "$HOME/.takibi/key"
)Mantenha a chave do modelo fora da máquina
Painel Prized Adicione a chave OpenRouter como um Prized Secret chamado OPENROUTER_API_KEY e a chave Takibi como TAKIBI_KEY. Conceda cada uma apenas a esta máquina: um segredo não concedido fica acessível a todas as máquinas no seu workspace Prized. A máquina então vê apenas um placeholder dpsec_…. O broker local da Prized troca pelo valor real em requisições HTTPS para os hosts que você permitir, então um placeholder é inútil em qualquer outro lugar.
Isso cobre essas duas chaves, não tudo na máquina. O arquivo de chave da CLI, o login do Composio e o segredo de assinatura do webhook e a autenticação do receptor no arquivo de ambiente do worker são valores reais, legíveis por qualquer coisa rodando como este usuário, incluindo agentes. Trate os arquivos de ambiente e transcrições da máquina como sensíveis.
Laptop Defina o host permitido de cada segredo e monte-o na máquina. Fizemos isso pela API da Prized; dê este prompt a um agente no laptop que possa fazer requisições HTTP, com uma chave de API Prized do seu armazenamento local de segredos. Note os dois placeholders que ele reporta.
LOCAL / laptop, with a Prized API key read from your local secret store (never chat). Inputs: the box id from the dashboard, and the ids of two Prized Secrets the human already created in the dashboard: OPENROUTER_API_KEY and TAKIBI_KEY (the agent Profile's Takibi key).
1. Each secret must be granted to this box only (an ungranted secret is open to every box in the workspace) and allow only its own host. Check with GET https://api.prized.dev/api/v1/secrets, then set hosts where missing:
PATCH https://api.prized.dev/api/v1/secrets/<openrouterSecretId> {"hosts":["openrouter.ai"]}
PATCH https://api.prized.dev/api/v1/secrets/<takibiSecretId> {"hosts":["app.takibibase.com"]}
If a secret has no box grant, stop and tell the human to grant it to this box in the dashboard.
2. Mount both on the box (envName is required):
POST https://api.prized.dev/api/v1/boxes/<boxId>/secrets {"secretId":"<openrouterSecretId>","envName":"OPENROUTER_API_KEY"}
POST https://api.prized.dev/api/v1/boxes/<boxId>/secrets {"secretId":"<takibiSecretId>","envName":"TAKIBI_KEY"}
3. Report each status code and the two dpsec_… placeholders the mounts return (placeholders are not secrets; the real values never leave Prized).
Auth header on every call: Authorization: Bearer <Prized API key>. Never print the key.Duas coisas que o broker precisa e que o systemd não fornece. A Prized injeta o proxy em shells de login através de /etc/profile.d, que serviços nunca leem. E o fetch do Node ignora HTTPS_PROXY a menos que NODE_USE_ENV_PROXY=1 esteja definido, o que requer Node 22.21 ou mais recente. O arquivo de serviço do worker define ambos, além do certificado CA do broker. Para verificar a partir da máquina, chame o /api/v1/key do OpenRouter com o placeholder: 200 através do proxy, 401 sem ele.
Permita que o Takibi alcance a máquina
Máquinas Prized não aceitam conexões da internet. Seus links de porta compartilhados precisam de um login na Prized, que o Takibi não pode fazer, ou expiram em até 30 dias. O Tailscale Funnel funciona em vez disso: a máquina se conecta para fora, e você obtém uma URL HTTPS pública estável sem redirecionamentos, que o remetente de webhook do Takibi exige.
Admin Tailscale Abra Access controls e mescle isso no seu arquivo de política. A concessão substitui a regra padrão de permitir tudo ("src": ["*"]); uma regra mais restrita adicionada ao lado de uma ampla não revoga nada. Depois, ative o MagicDNS e os certificados HTTPS em DNS e gere uma chave de autenticação única, não efêmera, marcada com tag:agent em Settings → Keys, expirando em um dia. Dispositivos marcados nunca atingem a expiração da chave do nó.
{
"tagOwners": {
"tag:agent": ["autogroup:admin"]
},
"grants": [
// Replaces the default allow-all ("src": ["*"]). Tagged devices are not
// members, so tag:agent can't start connections to anything.
// autogroup:member is every member, invited users included; use your own
// login instead if you share the tailnet.
{"src": ["autogroup:member"], "dst": ["*"], "ip": ["*"]}
],
"ssh": [
{"action": "check", "src": ["autogroup:member"], "dst": ["autogroup:self"], "users": ["autogroup:nonroot", "root"]},
{"action": "check", "src": ["autogroup:member"], "dst": ["tag:agent"], "users": ["autogroup:nonroot"]}
],
"nodeAttrs": [
// Only agent boxes may publish a port with Funnel.
{"target": ["tag:agent"], "attr": ["funnel"]}
]
}Terminal Prized Conecte a máquina você mesmo com o bloco abaixo; a chave de autenticação nunca toca no histórico ou em um agente. Anote a URL https://<box>.<tailnet>.ts.net que tailscale funnel status imprime. Até que o worker rode, requisições para ela falham; depois, um POST não assinado recebe 401.
# TERMINAL / human only, in the Prized box terminal, after installing Tailscale
# (curl -fsSL https://tailscale.com/install.sh | sh). Paste the auth key at the hidden
# prompt; it goes to a temporary 600 file, never into history or an agent.
(
set +x
umask 077
IFS= read -r -s -p 'Tailscale auth key (hidden): ' ts_key
printf '\n'
case "$ts_key" in tskey-*) ;; *) unset ts_key; printf '%s\n' 'Not a tskey- auth key.'; exit 1 ;; esac
keyfile=$(mktemp) || exit 1
printf '%s' "$ts_key" > "$keyfile"
unset ts_key
sudo tailscale up --auth-key="file:$keyfile" --advertise-tags=tag:agent --hostname="$(hostname)" --ssh
status=$?
rm -f "$keyfile"
exit $status
)
sudo tailscale funnel --bg 8787
sudo tailscale funnel statusConstrua o worker
Terminal Prized O worker é um arquivo Node sem dependências executado por um serviço de usuário systemd. Crie ~/agent/agent.env a partir do modelo abaixo (o segredo do webhook vem na próxima seção, então deixe-o em branco por enquanto), salve o arquivo de unidade e entregue a especificação a um agente na máquina para escrever ~/agent/agent.mjs. A especificação carrega as regras de assinatura inline, então o agente não precisa de nenhum outro arquivo.
A especificação deixa como finalizar o cartão para a skill takibi-use. Quando o cartão diz assign to @nome, a skill o entrega; caso contrário, move-o para revisão. Quando nosso prompt de wrapper ditava o comando de finalização, as execuções o seguiam, e os cartões ficavam com o agente em vez de chegarem até nós.
# ~/agent/agent.env on the box, mode 600 (chmod 600 ~/agent/agent.env)
# Real values, checked on the box: the broker can't hold these.
WEBHOOK_SECRET=<signing secret, shown once when you create the Takibi endpoint>
RECEIVER_AUTH=Bearer <output of: openssl rand -hex 32>
# Prized placeholders, not the real keys:
TAKIBI_KEY=<dpsec_ placeholder for the Takibi secret>
OPENROUTER_API_KEY=<dpsec_ placeholder for the OpenRouter secret>
TAKIBI_BASE=https://app.takibibase.com
MODEL=openai/gpt-6-luna-pro
REVIEW_MODEL=xiaomi/mimo-v2.6-pro
RUN_TIMEOUT_MIN=20
REVIEW_TIMEOUT_MIN=12# ~/.config/systemd/user/takibi-agent.service
[Unit]
Description=Takibi webhook worker
After=network-online.target
[Service]
EnvironmentFile=%h/agent/agent.env
# Composio installs to ~/.local/bin, which systemd's default PATH lacks.
Environment=PATH=%h/.local/bin:/usr/local/bin:/usr/bin:/bin
# Prized's broker: services don't read /etc/profile.d, so set the proxy here.
Environment=HTTPS_PROXY=http://127.0.0.1:7379
Environment=NO_PROXY=localhost,127.0.0.1,::1,169.254.169.254
Environment=NODE_USE_ENV_PROXY=1
Environment=NODE_EXTRA_CA_CERTS=/usr/local/share/ca-certificates/prized-secretsd.crt
Environment=NODE_NO_WARNINGS=1
ExecStart=/usr/bin/node %h/agent/agent.mjs
Restart=always
RestartSec=5
[Install]
WantedBy=default.target
# then, once agent.env and agent.mjs exist:
# systemctl --user daemon-reload
# sudo loginctl enable-linger "$USER" # loginctl show-user "$USER" -p Linger must say yes
# systemctl --user enable --now takibi-agent.service
# journalctl --user -u takibi-agent -fBOX / write ~/agent/agent.mjs: one dependency-free Node file (node:http, node:crypto, node:child_process, node:fs) that the systemd unit runs. It reads its settings from the environment (agent.env).
Receive (HTTP on 127.0.0.1:8787, POST only):
1. Verify Standard Webhooks signatures: HMAC-SHA256 with WEBHOOK_SECRET over `${webhook-id}.${webhook-timestamp}.${rawBody}`, base64; the webhook-signature header holds one or more space-separated "v1,<sig>" values; compare in constant time; refuse timestamps more than 5 minutes off. If RECEIVER_AUTH is set, the Authorization header must equal it (constant time). Refuse with 401 otherwise.
2. Parse the JSON body; require schemaVersion 1 and deliveryId equal to webhook-id. Dedupe on eventId (keep the seen ids on disk).
3. webhook.ping: answer 200 and log "ping ok". Task events: act only on task.assignment_changed with cause assigned or reassigned (in collapsed deliveries, look through the changes array); for those, persist {taskId: resource.id, projectId} to a pending queue on disk. Answer 200 for everything that verified, then work the queue one card at a time.
Work one card:
4. GET ${TAKIBI_BASE}/v1/tasks/<id>?projectId=<projectId> with "Authorization: Bearer ${TAKIBI_KEY}"; skip if archived, blocked or not in todo. POST …/claim: 200 means it's yours, 409 means another Profile holds it. PATCH status in_progress.
5. Drafter: MODEL, unless the card body has a line "model: <openrouter id>" (allow backticks or bold around it; ignore anything that isn't an id like "vendor/model"). Make a per-card work dir and run pi -p --model openrouter/<drafter> --session-dir <new dir> "<draft prompt>" with RUN_TIMEOUT_MIN as a hard timeout. Draft prompt: the card id and collection id; the run is unattended and ends when it replies; use the takibi-use skill and the takibi CLI, and the composio CLI for the web; write the whole deliverable to draft.md in the work dir with a closing "Notes for the reviewer" section (sources, what couldn't be verified); do not change the card in Takibi.
6. Reviewer: run pi -p --model openrouter/${REVIEW_MODEL} --session-dir <another new dir> "<review prompt>" with REVIEW_TIMEOUT_MIN. Review prompt: this is a review pass, not a redo; verify the draft's key claims and the points in its reviewer notes; check the collection's own docs in Takibi and apply them; fix errors and fill only clear gaps; don't re-scrape what the draft covered or chase what it marks unverifiable; attach ONE final markdown artifact; then finish the card as the takibi-use skill says. Do not tell it which command to finish with: the skill hands the card off when the card names someone, and a dictated command overrides that.
7. If the reviewer times out, run pi once more with the same --session-dir plus --continue and the prompt "Time's up. Stop researching, attach your final deliverable with what you have (mark anything unverified), finish the card as the takibi-use skill says." (3-minute timeout).
8. Close every pi child's stdin right after starting it: pi -p waits on piped stdin otherwise and the run hangs.
9. Afterwards GET the card. If it is not in review, attach draft.md (if any) as a markdown artifact titled "Draft (not reviewed)", then PATCH status review with reviewNote "Needs you: <what happened>". Never mark it blocked: blocked review cards drop out of the inbox. On any error, do the same.
10. Log, per stage: model, seconds, turns and cost (sum message.usage.cost.total from the .jsonl in that stage's session dir).Aponte um webhook Takibi para ele
App Takibi Crie um endpoint de webhook com a URL do Funnel como sua URL de wake e escolha os quadros que ele cobre. Em Gatilhos, mantenha apenas Atribuição, defina Somente cartões mantidos por como o Perfil do agente, defina Pertence a como o mesmo Perfil com Pular as próprias mudanças do dono ativado, para que as próprias movimentações do agente nunca o acordem novamente, e ative Combinar uma ação em uma única entrega. Veja filtros de entrega.
Copie o segredo de assinatura, que é mostrado uma vez, e defina um valor de autenticação do receptor: Bearer mais a saída de openssl rand -hex 32. Coloque ambos em ~/agent/agent.env, não em Prized Secrets: o worker os verifica na máquina, onde o broker não pode ajudar. Inicie o serviço com os comandos no final do arquivo de unidade, depois escolha Testar webhook; o log deve mostrar ping ok.
Novos endpoints começam com entregas desativadas. Quando o teste passar, ative Ativado. Até então, atribuir um cartão não acorda nada.
Execute seu primeiro cartão
App Takibi Crie um cartão em um quadro coberto e termine seu corpo com assign to @<nome do seu Perfil>, usando o nome exato do Perfil marcado como seu, para que o agente saiba para quem devolvê-lo. Atribua o cartão ao Perfil do agente. As entregas podem ficar pendentes por um curto período antes de serem enviadas. O worker pega o cartão, o redator e o revisor rodam, e o cartão chega à sua caixa de entrada com um artefato.
Para testar outro modelo em um cartão, adicione uma linha como model: z-ai/glm-5.3 ao seu corpo; o redator o usará em vez do padrão. Deve ser um id exato do OpenRouter. Atualize o catálogo de modelos do pi com pi update --models quando um modelo for novo, ou sua correspondência difusa pode escolher uma variante aposentada.
Quais modelos escolhemos e por quê
Demos o mesmo cartão de pesquisa SEO recente para cada modelo em 2026-10-26, uma execução de agente por modelo, exceto DeepSeek, que executamos várias vezes. Um punhado de execuções não é um benchmark. Trate isso como um ponto de partida e refaça em seu próprio trabalho.
| Modelo (id OpenRouter) | Tempo | Custo | O que aconteceu |
|---|---|---|---|
openai/gpt-6-luna-pro | 3,5 min | $0,03 | Finalizou, entregou corretamente, cuidadoso com afirmações. Nosso redator. |
xiaomi/mimo-v2.6-pro | 7 min | $0,03 | Finalizou, entregou corretamente, usou mais os documentos da coleção. Nosso revisor. |
z-ai/glm-5.3 | 5 min | $0,10 | Forte, a três vezes o preço. |
deepseek/deepseek-v4-pro | 1–5 min | $0,03–0,09 | Tempo e custo variaram muito entre execuções; uma execução contradisse um termo escrito no cartão. |
inclusionai/ling-3.1-flash | 20 min | $0,03 | Excedeu o tempo: continuou pesquisando e nunca escreveu. |
minimax/minimax-m3.1-flash | 20 min | $0,08 | Excedeu o tempo após 69 comandos. |
Nossa primeira execução em duas etapas naquele cartão, antes de o revisor ter um orçamento, levou cerca de 20 minutos e $0,13: o redator 2 minutos, o revisor 17. Ele deu o resultado mais utilizável do dia, com posicionamento exato, as próprias regras da coleção citadas e uma lista do que não pôde verificar. O orçamento de 12 minutos para revisão e a turno de conclusão existem para que uma revisão de um rascunho quase pronto não leve tanto tempo. Selecionamos a partir dos resultados do tau2-bench airline do OpenRouter, que mede o uso de ferramentas agentic em vez de SEO.
Quando algo quebrar
Combine o sintoma:
- Execução trava, 0 turnos, $0
Terminal Prized
pi -pestá esperando stdin. Feche o stdin do processo filho quando o worker iniciá-lo.- Teste passa, cartões nunca chegam
App Takibi O interruptor Ativado do endpoint ainda está desligado, ou o cartão é mantido por um Perfil diferente do que o filtro do gatilho nomeia.
- OpenRouter 401 da máquina
Terminal Prized O segredo não está montado ou concedido a esta máquina, seu host permitido não é
openrouter.ai, o serviço não tem as variáveis de proxy ou o Node é mais antigo que 22.21.- 404 "free launch period ended"
Terminal Prized O catálogo offline do pi está desatualizado e correspondeu a uma variante
:freeaposentada. Executepi update --modelscom as variáveis de proxy definidas.- Cartão rodou no modelo padrão
App Takibi A linha
model:não foi analisada. Mantenha-a em uma linha comomodel: <id>; ummodel: model:duplicado volta ao padrão.- claim 400 ou 409
App Takibi 400: o worker usa uma chave de proprietário, não a do Perfil do agente. 409: outro Perfil mantém o cartão.
- não elegível (status …)
App Takibi O worker só inicia cartões em A fazer. Mova-o de volta, desatribua e atribua-o ao agente novamente.
- Entrega 401, "rejected delivery"
Terminal Prized O segredo de assinatura ou o valor de autenticação do receptor no arquivo de ambiente não corresponde ao endpoint. O valor de autenticação deve incluir
Bearer.- Etapa de revisão excedeu o tempo
App Takibi O cartão chega com o rascunho não revisado anexado e uma nota
Needs you:. O rascunho é mantido; o que a revisão fez antes da turno de conclusão é perdido. Reexecute assim que o cartão tiver o que faltava.- Modelos flash baratos excedem o tempo
Terminal Prized Em nosso cartão de pesquisa, dois modelos flash nunca decidiram que estavam prontos. Não os testamos em pesquisas restritas, então não assuma que funcionam lá também.
- 422 SECRET_BLOCKED
Terminal Prized O agente tentou escrever uma chave em um cartão, artefato ou nota. O Takibi recusou, como deveria. Descubra por que o agente a tinha.
Mantenha-o em execução
Terminal Prized Um timer de usuário systemd diário executando sudo -n npm i -g takibibase@latest mantém a CLI atualizada. O pi lê a skill de ~/.agents/skills, então siga cada atualização com takibi skill --install --force; novas regras de skill se aplicam no próximo cartão sem reiniciar o worker. Atualize o catálogo de modelos do pi com pi update --models de vez em quando.
A máquina tem um shell, a chave do Perfil do agente e suas conexões Composio ativas. Trate-a como o laptop de um colega: conceda ao Perfil apenas as coleções de que precisa, mantenha-a marcada e isolada do seu tailnet e rotacione qualquer chave que tenha sido colada em algum lugar inadequado.
Pronto para configurar?Crie seu workspace e conecte seu primeiro agente — este guia explica cada etapa.
Crie seu workspace