@piagent/platform 1.2.16 → 1.2.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +14 -0
- package/README.md +3 -3
- package/docs/README.md +1 -1
- package/docs/command-reference-vietnamese.md +2 -2
- package/docs/distribution-standard.md +7 -7
- package/docs/operator-manual-vietnamese.md +7 -7
- package/docs/release-install-policy.md +6 -6
- package/docs/security-threat-model.md +1 -1
- package/docs/team-onboarding.md +2 -2
- package/docs/vercel-docs-site.md +7 -5
- package/docs-site/architecture.html +12 -6
- package/docs-site/assets/docs.css +52 -1
- package/docs-site/assets/docs.js +4 -2
- package/docs-site/benchmark.html +12 -6
- package/docs-site/commands.html +12 -6
- package/docs-site/content/en/architecture.html +33 -0
- package/docs-site/content/en/benchmark.html +164 -0
- package/docs-site/content/en/commands.html +39 -0
- package/docs-site/content/en/context-engine.html +30 -0
- package/docs-site/content/en/index.html +85 -0
- package/docs-site/content/en/mcp-approval.html +74 -0
- package/docs-site/content/en/mcp-auth.html +57 -0
- package/docs-site/content/en/mcp-servers.html +91 -0
- package/docs-site/content/en/mcp.html +90 -0
- package/docs-site/content/en/permissions.html +19 -0
- package/docs-site/content/en/profiles.html +27 -0
- package/docs-site/content/en/quickstart.html +126 -0
- package/docs-site/content/en/runtime.html +27 -0
- package/docs-site/content/en/scope.html +45 -0
- package/docs-site/content/en/security.html +33 -0
- package/docs-site/content/en/team.html +14 -0
- package/docs-site/content/en/workflows.html +21 -0
- package/docs-site/content/quickstart.html +1 -1
- package/docs-site/context-engine.html +12 -6
- package/docs-site/en/architecture.html +166 -0
- package/docs-site/en/benchmark.html +297 -0
- package/docs-site/en/commands.html +172 -0
- package/docs-site/en/context-engine.html +163 -0
- package/docs-site/en/index.html +203 -0
- package/docs-site/en/mcp-approval.html +207 -0
- package/docs-site/en/mcp-auth.html +190 -0
- package/docs-site/en/mcp-servers.html +224 -0
- package/docs-site/en/mcp.html +223 -0
- package/docs-site/en/permissions.html +152 -0
- package/docs-site/en/profiles.html +160 -0
- package/docs-site/en/quickstart.html +259 -0
- package/docs-site/en/runtime.html +160 -0
- package/docs-site/en/scope.html +178 -0
- package/docs-site/en/security.html +166 -0
- package/docs-site/en/team.html +143 -0
- package/docs-site/en/workflows.html +154 -0
- package/docs-site/index.html +12 -6
- package/docs-site/mcp-approval.html +12 -6
- package/docs-site/mcp-auth.html +12 -6
- package/docs-site/mcp-servers.html +12 -6
- package/docs-site/mcp.html +12 -6
- package/docs-site/permissions.html +12 -6
- package/docs-site/profiles.html +12 -6
- package/docs-site/quickstart.html +13 -7
- package/docs-site/runtime.html +12 -6
- package/docs-site/scope.html +12 -6
- package/docs-site/security.html +12 -6
- package/docs-site/team.html +12 -6
- package/docs-site/workflows.html +12 -6
- package/package.json +1 -1
- package/packages/piagent-core/package.json +1 -1
- package/scripts/build-docs-site.mjs +224 -50
- package/scripts/verify-local.sh +6 -0
- package/scripts/verify-release-identity.mjs +15 -6
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
<section class="section">
|
|
2
|
+
<h2 id="start">Where to start</h2>
|
|
3
|
+
<p>Enter <span class="inline-code">/piagent-mcp</span> to open a menu. You do not need to memorize subcommands:</p>
|
|
4
|
+
<pre><code>MCP
|
|
5
|
+
Servers — 2/3 ready
|
|
6
|
+
Doctor — 1 need attention (recommended)
|
|
7
|
+
Inspect a server
|
|
8
|
+
Approve a repository server — 1 waiting
|
|
9
|
+
Turn a server off
|
|
10
|
+
Add a server
|
|
11
|
+
All subcommands</code></pre>
|
|
12
|
+
<p>The menu reflects the current project. It does not offer "turn back on" when no server is disabled or "approve" when nothing is waiting. When an action requires a server, it asks which one unless only one choice exists.</p>
|
|
13
|
+
<p>Every menu item also has a direct command:</p>
|
|
14
|
+
<pre><code>/piagent-mcp doctor show what is blocked and what it needs
|
|
15
|
+
/piagent-mcp status show the full table
|
|
16
|
+
/mcp show live connection state from the adapter
|
|
17
|
+
/mcp-auth <name> authenticate one OAuth server</code></pre>
|
|
18
|
+
<p>In a terminal, use the same command family without the slash: <span class="inline-code">piagent-mcp list</span> or <span class="inline-code">piagent-mcp doctor</span>. Adding and removing server definitions is terminal-only. See <a href="/en/mcp-servers">Server management</a>.</p>
|
|
19
|
+
</section>
|
|
20
|
+
|
|
21
|
+
<section class="section">
|
|
22
|
+
<h2 id="three-similar-names">Three similar names that are not connected</h2>
|
|
23
|
+
<p>No code maps a capability name to an MCP server ID. Declaring <span class="inline-code">"github"</span> in <span class="inline-code">mcpCapabilities</span> does <strong>not</strong> enable the MCP server named <span class="inline-code">github</span>, and the reverse is also false.</p>
|
|
24
|
+
<div class="table-wrap">
|
|
25
|
+
<table>
|
|
26
|
+
<thead><tr><th>Item</th><th>Location</th><th>Meaning</th></tr></thead>
|
|
27
|
+
<tbody>
|
|
28
|
+
<tr><td><span class="inline-code">mcpCapabilities: ["github"]</span></td><td><span class="inline-code">.pi/piagent-profile.json</span></td><td>A capability label for the tool registry</td></tr>
|
|
29
|
+
<tr><td><span class="inline-code">toolCapabilities</span></td><td><span class="inline-code">base-policy.json</span></td><td>Maps a tool <strong>named</strong> <span class="inline-code">github</span> to a capability</td></tr>
|
|
30
|
+
<tr><td><span class="inline-code">github</span> server</td><td><span class="inline-code">~/.config/mcp/mcp.json</span></td><td>The actual MCP server, running through Docker</td></tr>
|
|
31
|
+
</tbody>
|
|
32
|
+
</table>
|
|
33
|
+
</div>
|
|
34
|
+
</section>
|
|
35
|
+
|
|
36
|
+
<section class="section">
|
|
37
|
+
<h2 id="four-config-layers">Four configuration layers</h2>
|
|
38
|
+
<p>All four files are read. The <span class="inline-code">--scope</span> option of <span class="inline-code">piagent-mcp</span> uses these names.</p>
|
|
39
|
+
<div class="table-wrap">
|
|
40
|
+
<table>
|
|
41
|
+
<thead><tr><th>Scope</th><th>File</th><th>Use</th></tr></thead>
|
|
42
|
+
<tbody>
|
|
43
|
+
<tr><td><span class="inline-code">global</span></td><td><span class="inline-code">~/.config/mcp/mcp.json</span></td><td>Default shared configuration for multiple agents and projects</td></tr>
|
|
44
|
+
<tr><td><span class="inline-code">pi-global</span></td><td><span class="inline-code">~/.pi/agent/mcp.json</span></td><td>Pi-specific global overrides</td></tr>
|
|
45
|
+
<tr><td><span class="inline-code">project</span></td><td><span class="inline-code">.mcp.json</span></td><td>Repository-specific, committable server definitions</td></tr>
|
|
46
|
+
<tr><td><span class="inline-code">pi-project</span></td><td><span class="inline-code">.pi/mcp.json</span></td><td>Pi-specific overrides for one repository</td></tr>
|
|
47
|
+
</tbody>
|
|
48
|
+
</table>
|
|
49
|
+
</div>
|
|
50
|
+
<div class="callout">
|
|
51
|
+
<strong>The final two layers travel with the repository</strong>
|
|
52
|
+
<p>Cloning a repository also brings its <span class="inline-code">.mcp.json</span>. Servers from these scopes must pass the <a href="/en/mcp-approval">approval gate</a> before use.</p>
|
|
53
|
+
</div>
|
|
54
|
+
</section>
|
|
55
|
+
|
|
56
|
+
<section class="section">
|
|
57
|
+
<h2 id="presets">Pinned presets</h2>
|
|
58
|
+
<p><span class="inline-code">piagent-setup</span> and <span class="inline-code">piagent-install</span> install <span class="inline-code">pi-mcp-adapter</span> and seed the <span class="inline-code">core</span> preset by default. Skip this with <span class="inline-code">--no-mcp</span>.</p>
|
|
59
|
+
<div class="table-wrap">
|
|
60
|
+
<table>
|
|
61
|
+
<thead><tr><th>Preset</th><th>Servers</th><th>Purpose</th></tr></thead>
|
|
62
|
+
<tbody>
|
|
63
|
+
<tr><td><span class="inline-code">minimal</span></td><td>—</td><td>Safe settings only</td></tr>
|
|
64
|
+
<tr><td><span class="inline-code">docs</span></td><td>Context7</td><td>Current framework and library docs</td></tr>
|
|
65
|
+
<tr><td><span class="inline-code">browser</span></td><td>Chrome DevTools, Playwright</td><td>UI/runtime inspection and browser automation</td></tr>
|
|
66
|
+
<tr><td><span class="inline-code">github</span></td><td>GitHub MCP</td><td>Issue, PR, repository, and release workflows</td></tr>
|
|
67
|
+
<tr><td><span class="inline-code">design</span></td><td>Figma remote</td><td>Design-to-code through Figma OAuth</td></tr>
|
|
68
|
+
<tr><td><span class="inline-code">design-local</span></td><td>Figma desktop</td><td>Local Dev Mode MCP</td></tr>
|
|
69
|
+
<tr><td><span class="inline-code">web</span></td><td>Context7, Chrome DevTools, Playwright</td><td>Frontend and web workflows</td></tr>
|
|
70
|
+
<tr><td><span class="inline-code">core</span></td><td>Context7, Chrome DevTools, GitHub</td><td>Default team baseline</td></tr>
|
|
71
|
+
<tr><td><span class="inline-code">popular</span></td><td>core + Playwright + Figma</td><td>A broader development baseline</td></tr>
|
|
72
|
+
<tr><td><span class="inline-code">all</span></td><td>popular + Figma desktop</td><td>Complete preset</td></tr>
|
|
73
|
+
</tbody>
|
|
74
|
+
</table>
|
|
75
|
+
</div>
|
|
76
|
+
<p>Every server is pinned by version or digest. An MCP server is code running on the operator's machine with the operator's credentials, so floating tags would turn each session into an unattended supply-chain decision.</p>
|
|
77
|
+
<div class="callout">
|
|
78
|
+
<strong>Writing configuration does not prove readiness</strong>
|
|
79
|
+
<p>Servers connect lazily and are not checked until first use. <a href="/en/mcp-auth">Authentication and readiness</a> explains which servers can actually run.</p>
|
|
80
|
+
</div>
|
|
81
|
+
</section>
|
|
82
|
+
|
|
83
|
+
<section class="section">
|
|
84
|
+
<h2 id="token-efficiency">Token efficiency</h2>
|
|
85
|
+
<p><span class="inline-code">pi-mcp-adapter</span> exposes all servers through one proxy tool named <span class="inline-code">mcp</span> instead of loading every tool schema into startup context. Defaults include <span class="inline-code">directTools: false</span>, <span class="inline-code">outputGuard</span>, and <span class="inline-code">idleTimeout</span>.</p>
|
|
86
|
+
<div class="callout">
|
|
87
|
+
<strong>Warning when enabling <span class="inline-code">toolRegistry: enforce</span></strong>
|
|
88
|
+
<p>The proxy tool <span class="inline-code">mcp</span> is not in <span class="inline-code">alwaysAllowedTools</span> or <span class="inline-code">toolCapabilities</span>, so enforce mode blocks <strong>all</strong> MCP access. Adding <span class="inline-code">mcpCapabilities</span> cannot bypass that earlier block. The only exception is <span class="inline-code">trusted-full-access</span>.</p>
|
|
89
|
+
</div>
|
|
90
|
+
</section>
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
<section class="section">
|
|
2
|
+
<div class="table-wrap">
|
|
3
|
+
<table>
|
|
4
|
+
<thead><tr><th>Mode</th><th>Use it for</th><th>Boundary</th><th>Command</th></tr></thead>
|
|
5
|
+
<tbody>
|
|
6
|
+
<tr><td><span class="inline-code">read-only</span></td><td>Scouting, audits, mapping, and reviews without source edits.</td><td>Allows read, grep, find, ls, and Piagent tools; blocks shell, write, and unknown tools.</td><td><span class="inline-code">/permission read-only</span></td></tr>
|
|
7
|
+
<tr><td><span class="inline-code">workspace-write</span></td><td>Normal implementation inside the repository.</td><td>Default guarded mode with protected paths, shell policy, capabilities, and verification gates.</td><td><span class="inline-code">/permission workspace-write</span></td></tr>
|
|
8
|
+
<tr><td><span class="inline-code">trusted-full-access</span></td><td>Automation in a trusted repository with a clearly bounded task.</td><td>Expands autonomy while retaining protected paths, redaction, integrity locks, and confirmation gates.</td><td><span class="inline-code">/permission full-access</span></td></tr>
|
|
9
|
+
</tbody>
|
|
10
|
+
</table>
|
|
11
|
+
</div>
|
|
12
|
+
|
|
13
|
+
<div class="command-grid">
|
|
14
|
+
<article class="command-card"><header><span>Show permission</span><button class="clip-btn" data-clip="/permission status">Copy</button></header><pre><code>/permission status</code></pre></article>
|
|
15
|
+
<article class="command-card"><header><span>Read-only session</span><button class="clip-btn" data-clip="/permission read-only">Copy</button></header><pre><code>/permission read-only</code></pre></article>
|
|
16
|
+
<article class="command-card"><header><span>Workspace write</span><button class="clip-btn" data-clip="/permission workspace-write">Copy</button></header><pre><code>/permission workspace-write</code></pre></article>
|
|
17
|
+
<article class="command-card"><header><span>Full access with a task</span><button class="clip-btn" data-clip="/permission full-access Run the trusted local verification suite.">Copy</button></header><pre><code>/permission full-access Run the trusted local verification suite.</code></pre></article>
|
|
18
|
+
</div>
|
|
19
|
+
</section>
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
<section class="section">
|
|
2
|
+
<div class="command-grid">
|
|
3
|
+
<article class="command-card"><header><span>Show concise status</span><button class="clip-btn" data-clip="/profile">Copy</button></header><pre><code>/profile</code></pre></article>
|
|
4
|
+
<article class="command-card"><header><span>List options</span><button class="clip-btn" data-clip="/profile list">Copy</button></header><pre><code>/profile list</code></pre></article>
|
|
5
|
+
<article class="command-card"><header><span>Apply detected profile</span><button class="clip-btn" data-clip="/profile auto">Copy</button></header><pre><code>/profile auto</code></pre></article>
|
|
6
|
+
<article class="command-card"><header><span>Interactive setup</span><button class="clip-btn" data-clip="/profile setup /profile tech setup fullstack">Copy</button></header><pre><code>/profile setup
|
|
7
|
+
/profile tech setup fullstack</code></pre></article>
|
|
8
|
+
<article class="command-card"><header><span>Deterministic tech selection</span><button class="clip-btn" data-clip="/profile tech apply fullstack frontend=nextjs backend=nestjs database=prisma">Copy</button></header><pre><code>/profile tech apply fullstack frontend=nextjs backend=nestjs database=prisma</code></pre></article>
|
|
9
|
+
<article class="command-card"><header><span>Frontend</span><button class="clip-btn" data-clip="/profile web-frontend">Copy</button></header><pre><code>/profile web-frontend
|
|
10
|
+
/profile fe</code></pre></article>
|
|
11
|
+
<article class="command-card"><header><span>Backend/API</span><button class="clip-btn" data-clip="/profile backend-api">Copy</button></header><pre><code>/profile backend-api</code></pre></article>
|
|
12
|
+
<article class="command-card"><header><span>Read-only backend, writable frontend</span><button class="clip-btn" data-clip="/profile be-readonly-fe">Copy</button></header><pre><code>/profile be-readonly-fe
|
|
13
|
+
/profile be-fe</code></pre></article>
|
|
14
|
+
<article class="command-card"><header><span>Full stack</span><button class="clip-btn" data-clip="/profile fullstack">Copy</button></header><pre><code>/profile fullstack
|
|
15
|
+
/profile full</code></pre></article>
|
|
16
|
+
<article class="command-card"><header><span>Docs only</span><button class="clip-btn" data-clip="/profile docs">Copy</button></header><pre><code>/profile docs</code></pre></article>
|
|
17
|
+
</div>
|
|
18
|
+
|
|
19
|
+
<div class="tag-list">
|
|
20
|
+
<span class="tag">generic</span><span class="tag">node-typescript</span><span class="tag">python</span><span class="tag">web-frontend</span><span class="tag">backend-api</span><span class="tag">fullstack</span><span class="tag">be-readonly-fe</span><span class="tag">data</span><span class="tag">devops</span><span class="tag">mobile</span><span class="tag">docs</span>
|
|
21
|
+
</div>
|
|
22
|
+
|
|
23
|
+
<div class="callout">
|
|
24
|
+
<strong>Technology stack by role</strong>
|
|
25
|
+
<p>Frontend profiles select frontend technology and an optional database; backend profiles select backend technology and an optional database; full-stack profiles select frontend, backend, and database. The platform then writes <span class="inline-code">.pi/tech-stack.json</span> and a compact Context7 snapshot under <span class="inline-code">.pi/tech-context/*</span>.</p>
|
|
26
|
+
</div>
|
|
27
|
+
</section>
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
<section class="section">
|
|
2
|
+
<div class="steps">
|
|
3
|
+
<article class="step">
|
|
4
|
+
<div>
|
|
5
|
+
<h3 id="install-two-commands">Install with two commands</h3>
|
|
6
|
+
<p>Requires Node.js 22.19.0 or newer. You do not need to install Pi Coding Agent first: <span class="inline-code">piagent-setup</span> installs the exact host version pinned by the current release. Run it inside the project directory. It installs the Pi package, initializes <span class="inline-code">.pi/</span>, installs the MCP baseline and subagents, and runs doctor. Use <span class="inline-code">--no-mcp</span>, <span class="inline-code">--no-subagents</span>, <span class="inline-code">--no-herdr</span>, or <span class="inline-code">--global-only</span> to omit optional parts.</p>
|
|
7
|
+
<div class="table-wrap compact-table">
|
|
8
|
+
<table>
|
|
9
|
+
<thead><tr><th>Runtime</th><th>Rollout status</th></tr></thead>
|
|
10
|
+
<tbody>
|
|
11
|
+
<tr><td>macOS Apple Silicon + Bash</td><td>Verified for this release.</td></tr>
|
|
12
|
+
<tr><td>Linux x64 + Bash</td><td>Verified in CI.</td></tr>
|
|
13
|
+
<tr><td>macOS Intel / Linux ARM64 + Bash</td><td>Supported target; run doctor and smoke tests before broad rollout.</td></tr>
|
|
14
|
+
<tr><td>Native Windows / WSL2</td><td>Not a team rollout target; WSL2 remains experimental.</td></tr>
|
|
15
|
+
</tbody>
|
|
16
|
+
</table>
|
|
17
|
+
</div>
|
|
18
|
+
<div class="command-card">
|
|
19
|
+
<header><span>Two commands</span><button class="clip-btn" data-clip="npm install -g @piagent/platform piagent-setup">Copy</button></header>
|
|
20
|
+
<pre><code>npm install -g @piagent/platform
|
|
21
|
+
piagent-setup</code></pre>
|
|
22
|
+
</div>
|
|
23
|
+
<p>Because setup runs from the installed package, the source written to <span class="inline-code">.pi/settings.json</span> is <span class="inline-code">npm:@piagent/platform@<version></span>. It resolves consistently on teammate machines and can be committed.</p>
|
|
24
|
+
<p>If you use <a href="https://herdr.dev/docs/install/">Herdr</a>, install it <strong>first</strong>. <span class="inline-code">piagent-setup</span> installs the Herdr Pi integration when <span class="inline-code">herdr</span> is present on <span class="inline-code">PATH</span>. Otherwise it skips the integration with a warning; after installing Herdr, run <span class="inline-code">piagent-setup --global-only</span>.</p>
|
|
25
|
+
<div class="command-card">
|
|
26
|
+
<header><span>Herdr (optional, install first)</span><button class="clip-btn" data-clip="brew install herdr">Copy</button></header>
|
|
27
|
+
<pre><code>brew install herdr # macOS
|
|
28
|
+
curl -fsSL https://herdr.dev/install.sh | sh # macOS or Linux</code></pre>
|
|
29
|
+
</div>
|
|
30
|
+
<p>The <span class="inline-code">curl</span> form executes a downloaded installer. For an auditable path, use <span class="inline-code">brew</span> or download from <a href="https://github.com/ogulcancelik/herdr/releases">GitHub releases</a>. Herdr stable supports macOS and Linux; Windows remains preview.</p>
|
|
31
|
+
<p>See the <a href="https://github.com/Vt-mmm/piagent/blob/main/docs/release-install-policy.md">release and install policy</a> for pinned rollout, updates, rollback, and the latest channel for personal machines.</p>
|
|
32
|
+
</div>
|
|
33
|
+
</article>
|
|
34
|
+
|
|
35
|
+
<article class="step">
|
|
36
|
+
<div>
|
|
37
|
+
<h3 id="open-project-repository">Open the project repository</h3>
|
|
38
|
+
<p>Start Pi from the repository directory. In a trusted repository, use the trusted-run wrapper only when controlled automation is needed.</p>
|
|
39
|
+
<div class="command-card">
|
|
40
|
+
<header><span>Start</span><button class="clip-btn" data-clip="cd /path/to/project && pi">Copy</button></header>
|
|
41
|
+
<pre><code>cd /path/to/project
|
|
42
|
+
pi</code></pre>
|
|
43
|
+
</div>
|
|
44
|
+
<p>For multiple parallel agents, run <span class="inline-code">herdr</span> instead of <span class="inline-code">pi</span> and assign one role per pane: implementation, read-only review, verification, or notes. Herdr coordinates terminals and sessions; it is not a security boundary. Gates remain in the Pi extension and OAuth still occurs in Pi. See the <a href="https://github.com/Vt-mmm/piagent/blob/main/docs/herdr-workflow.md">Herdr workflow</a>.</p>
|
|
45
|
+
</div>
|
|
46
|
+
</article>
|
|
47
|
+
|
|
48
|
+
<article class="step">
|
|
49
|
+
<div>
|
|
50
|
+
<h3 id="onboard-context">Onboard context</h3>
|
|
51
|
+
<p>Run this once in a new repository to record project context, verification matrices, and protected areas under <span class="inline-code">.pi/</span>. <span class="inline-code">/onboard</span> opens the menu and status; <span class="inline-code">run</span> launches the project-reading workflow.</p>
|
|
52
|
+
<div class="command-card">
|
|
53
|
+
<header><span>Onboard</span><button class="clip-btn" data-clip="/onboard /onboard run">Copy</button></header>
|
|
54
|
+
<pre><code>/onboard
|
|
55
|
+
/onboard run</code></pre>
|
|
56
|
+
</div>
|
|
57
|
+
</div>
|
|
58
|
+
</article>
|
|
59
|
+
|
|
60
|
+
<article class="step">
|
|
61
|
+
<div>
|
|
62
|
+
<h3 id="select-profile-and-tech">Select profile and technology</h3>
|
|
63
|
+
<p>Use <span class="inline-code">/profile setup</span> for the interactive selector: choose the profile, then the technology by role. Full-stack setup selects frontend, backend, and database.</p>
|
|
64
|
+
<div class="command-card">
|
|
65
|
+
<header><span>Profile and tech setup</span><button class="clip-btn" data-clip="/profile setup /profile tech setup fullstack">Copy</button></header>
|
|
66
|
+
<pre><code>/profile setup
|
|
67
|
+
/profile tech setup fullstack</code></pre>
|
|
68
|
+
</div>
|
|
69
|
+
</div>
|
|
70
|
+
</article>
|
|
71
|
+
|
|
72
|
+
<article class="step">
|
|
73
|
+
<div>
|
|
74
|
+
<h3 id="select-permission">Select a permission mode</h3>
|
|
75
|
+
<p>Use read-only for scouting, workspace-write for normal coding, and guarded full access for trusted automation.</p>
|
|
76
|
+
<div class="command-card">
|
|
77
|
+
<header><span>Permission</span><button class="clip-btn" data-clip="/permission status /permission workspace-write">Copy</button></header>
|
|
78
|
+
<pre><code>/permission status
|
|
79
|
+
/permission workspace-write</code></pre>
|
|
80
|
+
</div>
|
|
81
|
+
</div>
|
|
82
|
+
</article>
|
|
83
|
+
|
|
84
|
+
<article class="step">
|
|
85
|
+
<div>
|
|
86
|
+
<h3 id="run-workflow">Run a workflow</h3>
|
|
87
|
+
<p>Use the command that matches the intent so the agent does not spend context rediscovering the process. Start a fresh session for context-heavy work.</p>
|
|
88
|
+
<div class="command-card">
|
|
89
|
+
<header><span>Workflow</span><button class="clip-btn" data-clip="/workflow task Implement the requested bounded change. /workflow review current diff /fresh task Implement the requested bounded change.">Copy</button></header>
|
|
90
|
+
<pre><code>/workflow task Implement the requested bounded change.
|
|
91
|
+
/workflow review current diff
|
|
92
|
+
/fresh task Implement the requested bounded change.</code></pre>
|
|
93
|
+
</div>
|
|
94
|
+
</div>
|
|
95
|
+
</article>
|
|
96
|
+
|
|
97
|
+
<article class="step">
|
|
98
|
+
<div>
|
|
99
|
+
<h3 id="verify-before-handoff">Verify before handoff</h3>
|
|
100
|
+
<p>The final gate trusts only commands that actually ran, exited successfully, and matched the verification plan. After pinning or upgrading a version, run doctor in the project:</p>
|
|
101
|
+
<div class="command-card">
|
|
102
|
+
<header><span>Doctor</span><button class="clip-btn" data-clip="piagent-doctor">Copy</button></header>
|
|
103
|
+
<pre><code>piagent-doctor</code></pre>
|
|
104
|
+
</div>
|
|
105
|
+
<p>Platform maintainers also run <span class="inline-code">npm run verify</span> in the source repository. See <a href="https://github.com/Vt-mmm/piagent/blob/main/CONTRIBUTING.md">CONTRIBUTING</a>.</p>
|
|
106
|
+
</div>
|
|
107
|
+
</article>
|
|
108
|
+
|
|
109
|
+
<article class="step">
|
|
110
|
+
<div>
|
|
111
|
+
<h3 id="uninstall">Uninstall when no longer needed</h3>
|
|
112
|
+
<p><span class="inline-code">piagent-uninstall</span> is a dry run by default. Add <span class="inline-code">--apply</span> to make changes because it edits Pi settings that other tools may also use. The default removes only the platform's Pi package; add-ons, the Pi host, and project state are opt-in.</p>
|
|
113
|
+
<div class="command-card">
|
|
114
|
+
<header><span>Uninstall in two steps</span><button class="clip-btn" data-clip="piagent-uninstall piagent-uninstall --apply">Copy</button></header>
|
|
115
|
+
<pre><code>piagent-uninstall
|
|
116
|
+
piagent-uninstall --apply</code></pre>
|
|
117
|
+
</div>
|
|
118
|
+
<p>Add-ons, the Pi host, project state, and the global npm helper each have separate opt-in flags listed by <span class="inline-code">piagent-uninstall --help</span>. Removal follows packages registered in Pi settings, so registrations created by older releases are still found.</p>
|
|
119
|
+
<div class="callout ok-callout">
|
|
120
|
+
<strong>Never removed</strong>
|
|
121
|
+
<p>Credentials, trust decisions, sessions, todos, and <span class="inline-code">.pi/memory/</span> remain under every flag combination. Generated files that may have been edited, such as <span class="inline-code">AGENTS.md</span>, <span class="inline-code">.pi/settings.json</span>, and <span class="inline-code">project-context.md</span>, are listed for manual review. In <span class="inline-code">.pi/settings.json</span>, only the package entry that points to the platform is removed.</p>
|
|
122
|
+
</div>
|
|
123
|
+
</div>
|
|
124
|
+
</article>
|
|
125
|
+
</div>
|
|
126
|
+
</section>
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
<section class="section">
|
|
2
|
+
<div class="command-grid">
|
|
3
|
+
<article class="command-card"><header><span>Global setup</span><button class="clip-btn" data-clip="piagent-setup --mcp-preset core --subagents-preset safe">Copy</button></header><pre><code>piagent-setup --mcp-preset core --subagents-preset safe</code></pre></article>
|
|
4
|
+
<article class="command-card"><header><span>Full update</span><button class="clip-btn" data-clip="npm install -g --ignore-scripts @earendil-works/pi-coding-agent@0.82.0 npm install -g --ignore-scripts @piagent/platform@X.Y.Z piagent-install --stable --dry-run piagent-install --stable">Copy</button></header><pre><code>npm install -g --ignore-scripts @earendil-works/pi-coding-agent@0.82.0
|
|
5
|
+
npm install -g --ignore-scripts @piagent/platform@X.Y.Z
|
|
6
|
+
piagent-install --stable --dry-run
|
|
7
|
+
piagent-install --stable</code></pre></article>
|
|
8
|
+
<article class="command-card"><header><span>Pi package only</span><button class="clip-btn" data-clip="piagent-install --version vX.Y.Z --resolve-tag --dry-run piagent-install --version vX.Y.Z --resolve-tag">Copy</button></header><pre><code>piagent-install --version vX.Y.Z --resolve-tag --dry-run
|
|
9
|
+
piagent-install --version vX.Y.Z --resolve-tag</code></pre></article>
|
|
10
|
+
<article class="command-card"><header><span>Initialize a project</span><button class="clip-btn" data-clip="piagent-init /path/to/project">Copy</button></header><pre><code>piagent-init /path/to/project</code></pre></article>
|
|
11
|
+
<article class="command-card"><header><span>Doctor</span><button class="clip-btn" data-clip="piagent-doctor /path/to/project">Copy</button></header><pre><code>piagent-doctor /path/to/project</code></pre></article>
|
|
12
|
+
<article class="command-card"><header><span>Smoke benchmark</span><button class="clip-btn" data-clip="piagent-benchmark --dry-run piagent-benchmark">Copy</button></header><pre><code>piagent-benchmark --dry-run
|
|
13
|
+
piagent-benchmark</code></pre></article>
|
|
14
|
+
<article class="command-card"><header><span>Production benchmark</span><button class="clip-btn" data-clip="piagent-benchmark --production --dry-run piagent-benchmark --production --surfaces piagent,codex-cli --model openai-codex/gpt-5.6-sol --thinking xhigh">Copy</button></header><pre><code>piagent-benchmark --production --dry-run
|
|
15
|
+
piagent-benchmark --production --surfaces piagent,codex-cli \
|
|
16
|
+
--model openai-codex/gpt-5.6-sol --thinking xhigh</code></pre></article>
|
|
17
|
+
<article class="command-card"><header><span>Compare codex-cli</span><button class="clip-btn" data-clip="piagent-benchmark --surfaces piagent,codex-cli --model openai-codex/gpt-5.6-sol --thinking xhigh">Copy</button></header><pre><code>piagent-benchmark --surfaces piagent,codex-cli \
|
|
18
|
+
--model openai-codex/gpt-5.6-sol --thinking xhigh</code></pre></article>
|
|
19
|
+
<article class="command-card"><header><span>Trusted run</span><button class="clip-btn" data-clip="piagent-auto --full-access -p "Run the trusted local benchmark suite."">Copy</button></header><pre><code>piagent-auto --read-only -p "Scout payment mapping. Do not edit source."
|
|
20
|
+
piagent-auto --full-access -p "Run the trusted local benchmark suite."</code></pre></article>
|
|
21
|
+
<article class="command-card"><header><span>Capabilities</span><button class="clip-btn" data-clip="piagent-capabilities catalog --check piagent-capabilities doctor --profile .pi/piagent-profile.json">Copy</button></header><pre><code>piagent-capabilities catalog --check
|
|
22
|
+
piagent-capabilities doctor --profile .pi/piagent-profile.json</code></pre></article>
|
|
23
|
+
<article class="command-card"><header><span>Verification</span><button class="clip-btn" data-clip="npm run verify npm test npm run typecheck">Copy</button></header><pre><code>npm run verify
|
|
24
|
+
npm test
|
|
25
|
+
npm run typecheck</code></pre></article>
|
|
26
|
+
</div>
|
|
27
|
+
</section>
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
<section class="section">
|
|
2
|
+
<h2 id="not-a-new-agent">This is not a new agent</h2>
|
|
3
|
+
<p>The platform has no model, runtime, or agent loop of its own. It runs as a Pi extension and adds one thing: <strong>a repeatable operating model</strong> that every repository can reuse.</p>
|
|
4
|
+
<p>General coding agent CLIs already provide sandboxes, approvals, and project configuration. The useful question is not which agent is stronger. It is who configures those controls, and whether the configuration stays consistent across twenty repositories.</p>
|
|
5
|
+
|
|
6
|
+
<div class="table-wrap">
|
|
7
|
+
<table>
|
|
8
|
+
<thead>
|
|
9
|
+
<tr><th>Area</th><th>General agent CLI</th><th>What this platform adds</th></tr>
|
|
10
|
+
</thead>
|
|
11
|
+
<tbody>
|
|
12
|
+
<tr><td>Role</td><td>A coding agent operating on a local repository with tool and command selection.</td><td>A governance layer for Pi: policy, profiles, and workflows represented as files instead of prompt conventions.</td></tr>
|
|
13
|
+
<tr><td>Team customization</td><td>Instructions, settings, permissions, hooks, skills, and MCP configured per repository.</td><td>Profile adapters, base policy, command guards, capability packs, docs, and scripts defined once and distributed with <span class="inline-code">piagent-init</span>.</td></tr>
|
|
14
|
+
<tr><td>Execution permissions</td><td>OS or process sandboxing, per-action approval, and workspace boundaries.</td><td>Three named modes: <span class="inline-code">read-only</span>, <span class="inline-code">workspace-write</span>, and <span class="inline-code">trusted-full-access</span>, changed with one command.</td></tr>
|
|
15
|
+
<tr><td>Secret safety</td><td>Sandbox, approval, and network policy beneath the tool layer.</td><td>Application-level policy after a tool call: protected paths, shell checks, symlink aliases, output redaction, and integrity locks.</td></tr>
|
|
16
|
+
<tr><td>Distinct value</td><td>A complete agent experience and broad tool ecosystem.</td><td>Repeatability: the same profiles, guard, and verification discipline across repositories, with differences visible in files.</td></tr>
|
|
17
|
+
</tbody>
|
|
18
|
+
</table>
|
|
19
|
+
</div>
|
|
20
|
+
</section>
|
|
21
|
+
|
|
22
|
+
<section class="section">
|
|
23
|
+
<h2 id="complementary-layers">The two layers are complementary</h2>
|
|
24
|
+
<p>The host sandbox controls processes: a process cannot open files outside its permitted scope. The platform guard controls tool calls: it can inspect the <em>arguments</em> the agent intends to use, including paths, destinations, and external payloads.</p>
|
|
25
|
+
<div class="split">
|
|
26
|
+
<div class="card">
|
|
27
|
+
<h3 id="lower-layer">The lower layer sees processes</h3>
|
|
28
|
+
<p>It can tell that a process is writing outside the workspace. It cannot tell whether that process is <span class="inline-code">npm test</span> or a script generated during the current turn.</p>
|
|
29
|
+
</div>
|
|
30
|
+
<div class="card">
|
|
31
|
+
<h3 id="upper-layer">The upper layer sees intent</h3>
|
|
32
|
+
<p>It knows the tool, arguments, and capability. That is enough to block <span class="inline-code">.env</span> by name, redact tokens in output, and reject an MCP server supplied by a repository.</p>
|
|
33
|
+
</div>
|
|
34
|
+
</div>
|
|
35
|
+
<div class="callout">
|
|
36
|
+
<strong>Removing either layer leaves a gap</strong>
|
|
37
|
+
<p>An application guard cannot replace a sandbox once a process is running. A sandbox does not know why <span class="inline-code">.env</span> differs from <span class="inline-code">.env.example</span>. The platform assumes the lower layer remains enabled.</p>
|
|
38
|
+
</div>
|
|
39
|
+
</section>
|
|
40
|
+
|
|
41
|
+
<section class="section">
|
|
42
|
+
<h2 id="when-not-needed">When you may not need it</h2>
|
|
43
|
+
<p>For one person, one repository, no meaningful secrets, and no shared operating process, Pi's native configuration may be sufficient.</p>
|
|
44
|
+
<p>The platform becomes useful when no one can remember which permissions are active across many repositories, or when "has this been verified?" needs the same evidence-based answer everywhere.</p>
|
|
45
|
+
</section>
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
<section class="section">
|
|
2
|
+
<div class="grid cols-2">
|
|
3
|
+
<article class="card"><h3 id="protected-paths">Protected paths</h3><p>Controlled tools block reads and writes to files such as <span class="inline-code">.env</span>, <span class="inline-code">auth.json</span>, local trust files, profile locks, and sensitive settings.</p></article>
|
|
4
|
+
<article class="card"><h3 id="shell-hardening">Shell hardening</h3><p>The guard uses shell parsing and controlled-command rules to catch globs, braces, redirects, bare-word symlinks, and xargs composition before runtime expansion.</p></article>
|
|
5
|
+
<article class="card"><h3 id="secret-redaction">Secret redaction</h3><p>Text tool output passes through a redactor for provider tokens, secret keyword patterns, and common sensitive values. Current benchmarks are synthetic and internal; the model continues to evolve.</p></article>
|
|
6
|
+
<article class="card"><h3 id="capability-lock">Capability lock</h3><p>Capability packs have digests and tamper detection. An invalid lock fails closed and never expands permissions automatically.</p></article>
|
|
7
|
+
<article class="card"><h3 id="human-action-gate">Human-action gate</h3><p>Destructive or external-provider actions require explicit operator confirmation even in full-access mode. The gate covers direct tools, decoded MCP proxy calls, GitHub CLI writes, and non-GET HTTP shell forms.</p></article>
|
|
8
|
+
<article class="card"><h3 id="verify-evidence">Verification evidence</h3><p>A completed handoff requires observed bash results, not an unsupported statement that tests passed.</p></article>
|
|
9
|
+
</div>
|
|
10
|
+
|
|
11
|
+
<div class="callout">
|
|
12
|
+
<strong>Important boundary</strong>
|
|
13
|
+
<p>The guard depends on controlled tool paths and the shell syntax it can observe. It cannot stop another process running with the same OS permissions outside the guard, and it does not replace operating-system sandboxing.</p>
|
|
14
|
+
<ul>
|
|
15
|
+
<li>Symlinks, encodings, nested payloads, shell expansion, or newly introduced tools can affect coverage.</li>
|
|
16
|
+
<li>Redaction is a leak-reduction backstop, not permission to place real secrets in prompts or outputs.</li>
|
|
17
|
+
<li>The context index is a local cache containing source bodies. Owner-only mode limits cross-account access, but processes under the same OS account must still be trusted.</li>
|
|
18
|
+
<li>Untrusted workloads require a container or VM with filesystem, process, network, and credential boundaries.</li>
|
|
19
|
+
</ul>
|
|
20
|
+
</div>
|
|
21
|
+
|
|
22
|
+
<div class="callout">
|
|
23
|
+
<strong>Redaction still requires independent audit</strong>
|
|
24
|
+
<p>Current benchmarks are synthetic internal regression and release gates, not an external security audit. The project publishes its <a href="https://github.com/Vt-mmm/piagent/blob/main/docs/security-threat-model.md" target="_blank" rel="noopener noreferrer">threat model and attack-vector map</a>. Broader parser fuzzing, third-party review, and LTS guarantees remain higher assurance levels that are not currently claimed. Published npm packages do include signed provenance through GitHub Actions and Sigstore.</p>
|
|
25
|
+
</div>
|
|
26
|
+
|
|
27
|
+
<div class="callout">
|
|
28
|
+
<strong>Dependency gates separate two trees</strong>
|
|
29
|
+
<p>Releases audit the small terminal-helper dependency tree separately from the exact Pi host and pinned add-ons. The helper tree is clean. The current Pi host tree has one high and eleven moderate advisories; the project reports those numbers instead of claiming zero runtime vulnerabilities.</p>
|
|
30
|
+
<p>The high advisory is <span class="inline-code">GHSA-mh99-v99m-4gvg</span> in <span class="inline-code">brace-expansion</span>, a denial-of-service issue rather than privilege escalation or data exposure. The published Pi host shrinkwrap pins the affected version and overrides cannot replace it. The release gate exempts only this named advisory with a source-controlled rationale and expires the exemption on <span class="inline-code">2026-08-25</span> or when upstream publishes a fix. Every other high or critical advisory still blocks release.</p>
|
|
31
|
+
<p>The eleven moderate findings belong to two upstream advisories: encoded-backslash path traversal on Windows in a Hono adapter and a protobuf parser denial of service. Native Windows and WSL2 are not team rollout targets, but both findings remain tracked.</p>
|
|
32
|
+
</div>
|
|
33
|
+
</section>
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
<section class="section">
|
|
2
|
+
<div class="split">
|
|
3
|
+
<article class="card"><h3 id="do">Do</h3><p>Run <span class="inline-code">/onboard run</span>, apply <span class="inline-code">/profile auto</span>, use <span class="inline-code">/workflow</span>, execute real verification, and state blockers clearly.</p></article>
|
|
4
|
+
<article class="card"><h3 id="avoid">Avoid</h3><p>Do not place tokens, authentication files, caches, sessions, private examples, or project-specific business logic in the public core package.</p></article>
|
|
5
|
+
</div>
|
|
6
|
+
<div class="callout ok-callout">
|
|
7
|
+
<strong>Handoff standard</strong>
|
|
8
|
+
<p>A final response should briefly state what changed, which verification ran, whether subagents were used, and which risks or next steps require review.</p>
|
|
9
|
+
</div>
|
|
10
|
+
<div class="callout">
|
|
11
|
+
<strong>Release documentation gate</strong>
|
|
12
|
+
<p>A new docs version is promoted to Vercel only after tag-triggered CI passes and the stable dry run resolves the exact commit SHA. Promotion uses the tagged commit without an intervening merge or docs-only edit. The canonical domain is <span class="inline-code">piagent.io.vn</span>; the apex is the Vercel primary and <span class="inline-code">www</span> redirects to it.</p>
|
|
13
|
+
</div>
|
|
14
|
+
</section>
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
<section class="section">
|
|
2
|
+
<div class="callout ok-callout">
|
|
3
|
+
<strong>Git in Pi Agent</strong>
|
|
4
|
+
<p>There is no separate <span class="inline-code">/git</span> namespace. Use <span class="inline-code">/workflow commit</span> for a reviewed local commit and <span class="inline-code">/workflow pr</span> to prepare a pull request. Actions such as <span class="inline-code">git push</span> or broad staging with <span class="inline-code">git add -A</span> still require operator confirmation.</p>
|
|
5
|
+
</div>
|
|
6
|
+
<div class="callout">
|
|
7
|
+
<strong>Solo-first orchestration</strong>
|
|
8
|
+
<p>Use <span class="inline-code">/piagent-orchestration</span> to inspect mode, subagent limits, review lenses, Field Guide, and writer policy. The parent agent owns the task by default; subagents are used only when scouting, planning, or review has an independent lane worth the token cost.</p>
|
|
9
|
+
</div>
|
|
10
|
+
<div class="command-grid">
|
|
11
|
+
<article class="command-card"><header><span>Bounded implementation</span><button class="clip-btn" data-clip="/workflow task Fix the failing checkout test and verify.">Copy</button></header><pre><code>/workflow task Fix the failing checkout test and verify.</code></pre></article>
|
|
12
|
+
<article class="command-card"><header><span>Read-only scout</span><button class="clip-btn" data-clip="/workflow scout Map the auth flow and risk areas.">Copy</button></header><pre><code>/workflow scout Map the auth flow and risk areas.</code></pre></article>
|
|
13
|
+
<article class="command-card"><header><span>Plan before coding</span><button class="clip-btn" data-clip="/workflow plan Add multi-tenant billing support.">Copy</button></header><pre><code>/workflow plan Add multi-tenant billing support.</code></pre></article>
|
|
14
|
+
<article class="command-card"><header><span>Review a diff</span><button class="clip-btn" data-clip="/workflow review current diff">Copy</button></header><pre><code>/workflow review current diff</code></pre></article>
|
|
15
|
+
<article class="command-card"><header><span>Guarded local commit</span><button class="clip-btn" data-clip="/workflow commit "feat: add guarded git workflow"">Copy</button></header><pre><code>/workflow commit "feat: add guarded git workflow"</code></pre></article>
|
|
16
|
+
<article class="command-card"><header><span>Prepare a pull request</span><button class="clip-btn" data-clip="/workflow pr "Prepare PR for guarded git workflow"">Copy</button></header><pre><code>/workflow pr "Prepare PR for guarded git workflow"</code></pre></article>
|
|
17
|
+
<article class="command-card"><header><span>Backend spec to frontend</span><button class="clip-btn" data-clip="/profile be-readonly-fe /workflow be-to-fe Implement frontend support for the new user status endpoint.">Copy</button></header><pre><code>/profile be-readonly-fe
|
|
18
|
+
/workflow be-to-fe Implement frontend support for the new user status endpoint.</code></pre></article>
|
|
19
|
+
<article class="command-card"><header><span>Improve the platform</span><button class="clip-btn" data-clip="/workflow platform-improve Harden command docs and run verification.">Copy</button></header><pre><code>/workflow platform-improve Harden command docs and run verification.</code></pre></article>
|
|
20
|
+
</div>
|
|
21
|
+
</section>
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
<article class="step">
|
|
5
5
|
<div>
|
|
6
6
|
<h3 id="cai-hai-lenh">Cài — hai lệnh</h3>
|
|
7
|
-
<p>Cần Node.js 22.19.0 trở lên. Không cần cài Pi Coding Agent trước: <span class="inline-code">piagent-setup</span> tự cài đúng bản
|
|
7
|
+
<p>Cần Node.js 22.19.0 trở lên. Không cần cài Pi Coding Agent trước: <span class="inline-code">piagent-setup</span> tự cài đúng bản host mà release hiện tại đang pin. Chạy nó ngay trong thư mục project — nó cài Pi package, khởi tạo <span class="inline-code">.pi/</span>, cài MCP baseline cùng subagents, rồi chạy doctor. Thêm <span class="inline-code">--no-mcp</span>, <span class="inline-code">--no-subagents</span>, <span class="inline-code">--no-herdr</span> hoặc <span class="inline-code">--global-only</span> để bỏ bớt.</p>
|
|
8
8
|
<div class="table-wrap compact-table">
|
|
9
9
|
<table>
|
|
10
10
|
<thead>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<!doctype html>
|
|
2
|
-
<html lang="vi">
|
|
2
|
+
<html lang="vi" data-copy-success="Đã lấy" data-copy-fallback="Chọn lệnh">
|
|
3
3
|
<head>
|
|
4
4
|
<meta charset="utf-8" />
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
@@ -7,6 +7,9 @@
|
|
|
7
7
|
<meta name="description" content="Index local, retrieval có xếp hạng, tool loading theo task, semantic compaction và telemetry minh bạch cho Agent Watch." />
|
|
8
8
|
<meta name="theme-color" content="#050505" />
|
|
9
9
|
<link rel="canonical" href="https://piagent.io.vn/context-engine" />
|
|
10
|
+
<link rel="alternate" hreflang="vi" href="https://piagent.io.vn/context-engine" />
|
|
11
|
+
<link rel="alternate" hreflang="en" href="https://piagent.io.vn/en/context-engine" />
|
|
12
|
+
<link rel="alternate" hreflang="x-default" href="https://piagent.io.vn/context-engine" />
|
|
10
13
|
<link rel="icon" href="/favicon.svg" type="image/svg+xml" />
|
|
11
14
|
<meta property="og:title" content="Ít context hơn, giữ nguyên chất lượng model · Pi Agent Platform Docs" />
|
|
12
15
|
<meta property="og:description" content="Index local, retrieval có xếp hạng, tool loading theo task, semantic compaction và telemetry minh bạch cho Agent Watch." />
|
|
@@ -27,8 +30,11 @@
|
|
|
27
30
|
<span>Pi Agent Platform</span>
|
|
28
31
|
</a>
|
|
29
32
|
<div class="top-actions">
|
|
30
|
-
<span class="pill"><span class="pill-dot"></span>v1.2.
|
|
31
|
-
<
|
|
33
|
+
<span class="pill"><span class="pill-dot"></span>v1.2.17 docs · VI</span>
|
|
34
|
+
<nav class="language-switch" aria-label="Ngôn ngữ">
|
|
35
|
+
<a class="language-option current" href="/context-engine" hreflang="vi" lang="vi" aria-current="true">VI</a>
|
|
36
|
+
<a class="language-option" href="/en/context-engine" hreflang="en" lang="en">EN</a>
|
|
37
|
+
</nav>
|
|
32
38
|
<a class="button social" href="https://github.com/Vt-mmm/piagent" target="_blank" rel="noopener noreferrer" aria-label="Mở GitHub repository">
|
|
33
39
|
<svg viewBox="0 0 24 24" fill="none" aria-hidden="true">
|
|
34
40
|
<path d="M7 17 17 7M9 7h8v8" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" />
|
|
@@ -36,7 +42,7 @@
|
|
|
36
42
|
GitHub
|
|
37
43
|
</a>
|
|
38
44
|
<button class="button mobile-menu" type="button" data-menu>Lộ trình</button>
|
|
39
|
-
<a class="button" href="/commands">Commands</a>
|
|
45
|
+
<a class="button top-command-link" href="/commands">Commands</a>
|
|
40
46
|
</div>
|
|
41
47
|
</header>
|
|
42
48
|
|
|
@@ -162,10 +168,10 @@ piagent-context efficiency</code></pre>
|
|
|
162
168
|
|
|
163
169
|
<footer class="footer">
|
|
164
170
|
<p>Pi Agent Platform docs · static HTML · governed agent workflow</p>
|
|
165
|
-
<div class="footer-links" aria-label="
|
|
171
|
+
<div class="footer-links" aria-label="Liên kết ngoài">
|
|
166
172
|
<a href="https://piagent.io.vn" target="_blank" rel="noopener noreferrer">piagent.io.vn</a>
|
|
167
173
|
<a href="https://github.com/Vt-mmm/piagent" target="_blank" rel="noopener noreferrer">GitHub repository</a>
|
|
168
|
-
<a href="
|
|
174
|
+
<a href="/en/context-engine" hreflang="en">English</a>
|
|
169
175
|
<a href="https://www.facebook.com/vinhtam0544/" target="_blank" rel="noopener noreferrer">Facebook profile</a>
|
|
170
176
|
</div>
|
|
171
177
|
</footer>
|