Skip to main content

aec-agent-core

The shared core of LLM agents that review and produce architecture, engineering and construction (AEC) documents. It holds what an agent runs below its chat page: the model connections, the vision calls and the file tools beside them, the figure helper with its plotting box, the agent's guards, limits and kept work, Word and Excel in and out, the run record and its checks, and the switches. It has no user interface of its own.

Two applications are built on it:

  • GeotechStaffEngineer (pip install geotech-staff-engineer), the geotechnical engineering agent, which pins this package exactly;
  • Document Review (pip install aec-document-review), a document review application, which pins this package exactly.

Status

1.0.1 (2026-11-10). Fixes from a deployment review of Document Review (GeotechStaffEngineer's BACKLOG, TA-36): a control character in text no longer loses a Word or Excel file, and Excel text that opens with "=" is written as text; a file name that climbs out of the working folder is not found; the primary agent's model-call budget is noted on the turn, so a host does not start another pass with a new one; a document-tools setting that is not a number falls back to its default.

1.0.0, the first release. The app split's step 11 moved the code in, in three merges (BACKLOG INF-32; plan module_work/APP_SPLIT_PLAN.md in GeotechStaffEngineer's repository):

  • (a) model connections and vision calls: engine_config, palantir_sdk_engine, tinyapps_engine (the Prompter connection), http_trace, deep.databricks_bridge, deep.pacing, deep.vision_engine, deep.inline_images, vision_tools, vision_view, image_view, vision_probe, inline_store, turn_question, error_text, _fileio;
  • (b) the figure helper: deep.figure_helper, the plotting box (plot_box), the chart stack behind plot_data (charts) with its worked examples, drawing_wait, progress_notes, arg_checks, method_call;
  • (c) everything else both agents run: the guards and records (deep.keep_work, deep.limits, deep.tool_guards, deep.scratch_guard, deep.busy_retry, deep.delivered_log, deep.result_map, deep.strict_args, deep.warm_imports, deep.calculate_tool with safe_expr, deep.held_records, runtime_check, review_flags); Word and Excel (docx_renderer, xlsx_writer, office_text); the run record and its checks (activity_log, run_mirror, cited_pages, cited_documents, coverage); the document tools' binding to planlens.review (document_tools, with measure_tool, scale_labels, dxf_notes); the tools' assembly (deep.vision_kit); the assembly both pages' agents share (deep.assembly: the guards round every helper, the general-purpose helper, the summarizer, one compile step); and the review suite's framework (review_eval: the runner, the checks, the Task type and task selection, document lookup).

The core imports nothing of either application. Where it needs something only an application knows, it asks for a hook (aec_agent_core.hooks), which the application fills:

Hook What the application hands in
prompter.get_setting, prompter.resolve_for, prompter.tester_keys_possible how its settings are read, whose Prompter key serves a caller
vision_tools.reference_read_roots, .read_reference_figure, .view_worked_example_source its reference library's folders and readers
held_records.record_fields the shapes of the records a stopped helper held
cited_documents.reference_modules its reference modules' names
review_eval.page_host its chat page's turn path, for the review suite
review_eval.open_tasks its review tasks
review_eval.document_dirs, .fetch_document, .fixture where its tasks' documents are found
app.details its name, distribution and package (aec_agent_core.app_details.hand_in): the run record's version, the default Word and markup authors, the runtime messages

The chart lines plot_data and the plotting box can draw are handed in by a registration, aec_agent_core.charts.register_reference_charts. Unfilled, each place says what it does without the hook.

A deployment can add its own instructions to every agent and helper (deep.instructions, applied by deep.assembly for both applications). GEOTECH_INSTRUCTIONS names a folder: all.md goes to every agent and helper, then one <role>.md per role (main for the main agent, else the helper's name). Each role's text goes last in its prompt, under protected rules it cannot switch off, at most 4,000 characters a role. The setting is read from the environment only; unset, the prompts are unchanged.

aec_agent_core.install_aliases lets a module keep answering to its old import path after it moved here, as the same module object (so an import or a test patch by either name reaches the one copy of the code); GeotechStaffEngineer keeps its old names this way until the split's step 16.

1.0.0 is the first real release (the split's step 12, on PyPI since 2026-11-10, published before the applications that pin it). GeotechStaffEngineer's CI installs the core from its own repository (pip install -e packages/aec-agent-core), so every change is tested with the core beside it. Its "core-only" CI job installs this package with planlens and nothing geotech, imports every module, runs these tests and builds the document review page on it.

Install

pip install aec-agent-core
pip install "aec-agent-core[anthropic]" # with Claude through LangChain

Python 3.11 or later. An application installs it for you: each pins the core it was tested with.

Licence

MIT, as GeotechStaffEngineer. See LICENSE.

Metadata

Release files for aec-agent-core 1.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for aec-agent-core 1.0.1
File Size Uploaded Provenance Actions
aec_agent_core-1.0.1.tar.gz 538.7 kB With provenance Details for aec_agent_core-1.0.1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for aec-agent-core 1.0.1
File Interpreter ABI Platform Actions
aec_agent_core-1.0.1-py3-none-any.whl Python 3 none any Details for aec_agent_core-1.0.1-py3-none-any.whl

Total release size: 1.1 MB

Release files / aec_agent_core-1.0.1.tar.gz

Download URL aec_agent_core-1.0.1.tar.gz
Size 538.7 kB
Tags Source
SHA-256 checksum
How to use checksums
c61e5ae703878d4659ab8e1d1fcf4cce7607bee3c66a1f8a199c5c6639341b2f
BLAKE2b-256 checksum
How to use checksums
75dfd3d57787b145b303f6ec71f73fa4f19112c2d431ce8540a10619fd59dcc3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 10, 2026.

Transparency log

Release files / aec_agent_core-1.0.1-py3-none-any.whl

Download URL aec_agent_core-1.0.1-py3-none-any.whl
Size 575.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
999c91c16f6e6f9b4d575318406fdef8e674c26db3f6a8b4ed31306f4e52d4f8
BLAKE2b-256 checksum
How to use checksums
ca30df913e945da9ffc832e2790ab55286a899b6b211d3313ab96fde70ed8292
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 10, 2026.

Transparency log

Security for aec-agent-core 1.0.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

Both files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for aec_agent_core-1.0.1.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 10, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page